Messages in this thread | | | Date | Wed, 22 Apr 2009 13:34:27 -0700 (PDT) | From | David Rientjes <> | Subject | Re: [PATCH 16/22] Do not setup zonelist cache when there is only one node |
| |
On Wed, 22 Apr 2009, Lee Schermerhorn wrote:
> > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > > > index 7f45de1..e59bb80 100644 > > > --- a/mm/page_alloc.c > > > +++ b/mm/page_alloc.c > > > @@ -1467,8 +1467,11 @@ this_zone_full: > > > if (NUMA_BUILD) > > > zlc_mark_zone_full(zonelist, z); > > > > If zonelist caching is never used for UMA machines, why should they ever > > call zlc_mark_zone_full()? It will always dereference > > zonelist->zlcache_ptr and immediately return without doing anything. > > > > Wouldn't it better to just add > > > > if (num_online_nodes() == 1) > > continue; > > > > right before this call to zlc_mark_zone_full()? This should compile out > > the remainder of the loop for !CONFIG_NUMA kernels anyway. > > Shouldn't it already do that? NUMA_BUILD is defined as 0 when > !CONFIG_NUMA to avoid #ifdef's in the code while still allowing compiler > error checking in the dead code. >
Yeah, but adding the check on num_online_nodes() also prevents needlessly calling zlc_mark_zone_full() on CONFIG_NUMA kernels when running on an UMA machine.
| |