Re: [Approach #2] [RFC][PATCH] Remove cgroup member from structpage

From: Dave Hansen
Date: Wed Sep 10 2008 - 18:21:20 EST


On Tue, 2008-09-09 at 18:20 -0700, Balbir Singh wrote:
> + start = pgdat->node_start_pfn;
> + end = pgdat->node_start_pfn + pgdat->node_spanned_pages;
> + size = (end - start) * sizeof(struct page_cgroup);
> + printk("Allocating %lu bytes for node %d\n", size, n);
> + pcg_map[n] = alloc_bootmem_node(pgdat, size);
> + /*
> + * We can do smoother recovery
> + */
> + BUG_ON(!pcg_map[n]);
> + return 0;
> }

This will really suck for sparse memory machines. Imagine a machine
with 1GB of memory at 0x0 and another 1GB of memory at 1TB up in the
address space.

You also need to consider how it works with memory hotplug and how
you're going to grow it at runtime.

Oh, and doesn't alloc_bootmem() panic() if it fails internally anyway?

I need to look at your other approach. :)

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