Messages in this thread | | | Subject | Re: [Approach #2] [RFC][PATCH] Remove cgroup member from struct page | From | Dave Hansen <> | Date | Wed, 10 Sep 2008 15:21:00 -0700 |
| |
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
| |