Re: [problem] raid performance loss with 2.6.26-rc8 on 32-bit x86(bisected)

From: Linus Torvalds
Date: Thu Jul 03 2008 - 04:18:18 EST




On Thu, 3 Jul 2008, Mel Gorman wrote:

> diff -rup -X /usr/src/patchset-0.6/bin//dontdiff linux-2.6.26-rc8-clean/mm/page_alloc.c linux-2.6.26-rc8-fix-kswapd-on-numa/mm/page_alloc.c
> --- linux-2.6.26-rc8-clean/mm/page_alloc.c 2008-06-24 18:58:20.000000000 -0700
> +++ linux-2.6.26-rc8-fix-kswapd-on-numa/mm/page_alloc.c 2008-07-02 21:14:16.000000000 -0700
> @@ -2328,7 +2328,8 @@ static void build_zonelists(pg_data_t *p
> static void build_zonelist_cache(pg_data_t *pgdat)
> {
> pgdat->node_zonelists[0].zlcache_ptr = NULL;
> - pgdat->node_zonelists[1].zlcache_ptr = NULL;
> + if (NUMA_BUILD)
> + pgdat->node_zonelists[1].zlcache_ptr = NULL;
> }

This makes no sense.

That whole thing is inside a

#ifdef CONFIG_NUMA
... numa code ..
#else
... this code ..
#endif

so CONFIG_NUMA will _not_ be set, and NUMA_BUILD is always 0.

So why do that

if (NUMA_BUILD)
..

at all, when it is known to be false?

So the patch may be correct, but wouldn't it be better to just remove the
line entirely, instead of moving it into a conditional that cannot be
true?

Also, I'm not quite seeing why those zonelists should be zeroed out at
all. Shouldn't a non-NUMA setup always aim to have node_zonelists[0] ==
node_zonelists[1] == all appropriate zones?

I have to say, the whole mmzoen thing is confusing. The code makes my eyes
bleed. I can't really follow it.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/