[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
VM cache policy change
From: |
Justus Winter |
Subject: |
VM cache policy change |
Date: |
Sat, 21 Feb 2015 16:02:00 +0100 |
Hello,
Richard's patch for the VM cache policy has the potential to speed up
Hurd systems a lot by allowing for more VM objects to be cached.
Previously there was a fixed limit (4000), whereas with this patch
almost the entire memory can be used as cache.
He mentions three problems preventing the patch to be merged as-is:
a) thread storms in filesystem pagers, b) linear scans through the
objects when trying to evict pages, and c) chance of swapping
deadlocks.
We dealt with a) by using a userspace queue and a fixed number of
threads in libpager. b) is adressed in this patch series by
introducing a list of clean pages and evicting those first. I cannot
comment on c).
* [PATCH gnumach 1/3] VM cache policy change
This is Richard's patch, unchanged.
* [PATCH gnumach 2/3] vm: keep track of clean pages
Hat tip to coccinelle for writing most of this patch for me :)
* [PATCH gnumach 3/3] vm: evict clean pages first
This is a (maybe somewhat naive) modification to the pageout daemon to
make it evict (all) clean pages first. If a clean page is still
deemed unsuitable for eviction, it is moved to the end of the queue.
This seems to work very well on my development machine.
Please comment :)
Justus
- VM cache policy change,
Justus Winter <=
- [PATCH gnumach 1/3] VM cache policy change, Justus Winter, 2015/02/21
- [PATCH gnumach 3/3] vm: evict clean pages first, Justus Winter, 2015/02/21
- [PATCH gnumach 2/3] vm: keep track of clean pages, Justus Winter, 2015/02/21
- Re: VM cache policy change, Samuel Thibault, 2015/02/22
- Re: VM cache policy change, Richard Braun, 2015/02/22