Thread (21 messages) 21 messages, 7 authors, 2011-01-24

Re: [patch] mm: fix deferred congestion timeout if preferred zone is not allowed

From: David Rientjes <rientjes@google.com>
Date: 2011-01-19 01:53:29

On Wed, 19 Jan 2011, Minchan Kim wrote:
quoted
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2034,6 +2034,18 @@ restart:
        */
       alloc_flags = gfp_to_alloc_flags(gfp_mask);

+       /*
+        * If preferred_zone cannot be allocated from in this context, find the
+        * first allowable zone instead.
+        */
+       if ((alloc_flags & ALLOC_CPUSET) &&
+           !cpuset_zone_allowed_softwall(preferred_zone, gfp_mask)) {
+               first_zones_zonelist(zonelist, high_zoneidx,
+                               &cpuset_current_mems_allowed, &preferred_zone);
This patch is one we need. but I have a nitpick.
I am not familiar with CPUSET so I might be wrong.

I think it could make side effect of statistics of ZVM on
buffered_rmqueue since you intercept and change preferred_zone.
It could make NUMA_HIT instead of NUMA_MISS.
Is it your intention?
It depends on the semantics of NUMA_MISS: if no local nodes are allowed by 
current's cpuset (a pretty poor cpuset config :), then it seems logical 
that all allocations would be a miss.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help