On 22.07.2013 18:48, Zlatko Calusic wrote:On 19.07.2013 22:55, Johannes Weiner wrote:The way the page allocator interacts with kswapd creates aging
imbalances, where the amount of time a userspace page gets in memory
under reclaim pressure is dependent on which zone, which node the
allocator took the page frame from.
#1 fixes missed kswapd wakeups on NUMA systems, which lead to some
nodes falling behind for a full reclaim cycle relative to the other
nodes in the system
#3 fixes an interaction where kswapd and a continuous stream of page
allocations keep the preferred zone of a task between the high and
low watermark (allocations succeed + kswapd does not go to sleep)
indefinitely, completely underutilizing the lower zones and
thrashing on the preferred zone
These patches are the aging fairness part of the thrash-detection
based file LRU balancing. Andrea recommended to submit them
separately as they are bugfixes in their own right.
I have the patch applied and under testing. So far, so good. It looks
like it could finally fix the bug that I was chasing few months ago
(nicely described in your bullet #3). But, few more days of testing will
be needed before I can reach a quality verdict.
Well, only 2 days later it's already obvious that the patch is perfect! :)
In the attached image, in the left column are the graphs covering last day and a half. It can be observed that zones are really balanced, and that aging is practically perfect. Graphs on the right column cover last 10 day period, and the left side of the upper graph shows how it would look with the stock kernel after about 20 day uptime (although only a few days is enough to reach such imbalance). File pages in the Normal zone are extinct species (red) and the zone is choke full of anon pages (blue). Having seen a lot of this graphs, I'm certain that it won't happen anymore with your patch applied. The balance is restored! Thank you for your work. Feel free to add:
Tested-by: Zlatko Calusic <zcalusic@xxxxxxxxxxx>