Re: [PATCH 01/10] mm: Introduce the memory regions data structure

From: Dave Hansen
Date: Fri May 27 2011 - 11:31:22 EST


On Fri, 2011-05-27 at 18:01 +0530, Ankita Garg wrote:
> +typedef struct mem_region_list_data {
> + struct zone zones[MAX_NR_ZONES];
> + int nr_zones;
> +
> + int node;
> + int region;
> +
> + unsigned long start_pfn;
> + unsigned long spanned_pages;
> +} mem_region_t;
> +
> +#define MAX_NR_REGIONS 16

Don't do the foo_t thing. It's out of style and the pg_data_t is a
dinosaur.

I'm a bit surprised how little discussion of this there is in the patch
descriptions. Why did you choose this structure? What are the
downsides of doing it this way? This effectively breaks up the zone's
LRU in to MAX_NR_REGIONS LRUs. What effects does that have?

How big _is_ a 'struct zone' these days? This patch will increase their
effective size by 16x.

Since one distro kernel basically gets run on *EVERYTHING*, what will
MAX_NR_REGIONS be in practice? How many regions are there on the
largest systems that will need this? We're going to be doing many
linear searches and iterations over it, so it's pretty darn important to
know. What does this do to lmbench numbers sensitive to page
allocations?

-- Dave

--
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/