Messages in this thread | | | Date | Wed, 1 Feb 2006 18:47:06 -0800 | From | Andrew Morton <> | Subject | Re: [PATCH] fix cpu hotplug |
| |
Anton Blanchard <anton@samba.org> wrote: > > > Hi, > > CPU hotplug was broken by the __meminit changes. Avoid the madness of > creating a mem+cpu hotplug init attribute and just make them __devinit. > > Anton > > Signed-off-by: Anton Blanchard <anton@samba.org> > --- > > Index: build/mm/page_alloc.c > =================================================================== > --- build.orig/mm/page_alloc.c 2006-02-02 12:20:50.000000000 +1100 > +++ build/mm/page_alloc.c 2006-02-02 13:14:56.000000000 +1100 > @@ -1799,7 +1799,7 @@ void zonetable_add(struct zone *zone, in > memmap_init_zone((size), (nid), (zone), (start_pfn)) > #endif > > -static int __meminit zone_batchsize(struct zone *zone) > +static int __devinit zone_batchsize(struct zone *zone) > { > int batch; > > @@ -1893,7 +1893,7 @@ static struct per_cpu_pageset > * Dynamically allocate memory for the > * per cpu pageset array in struct zone. > */ > -static int __meminit process_zones(int cpu) > +static int __devinit process_zones(int cpu) > { > struct zone *zone, *dzone; > > @@ -1934,7 +1934,7 @@ static inline void free_zone_pagesets(in > } > } > > -static int __meminit pageset_cpuup_callback(struct notifier_block *nfb, > +static int __devinit pageset_cpuup_callback(struct notifier_block *nfb, > unsigned long action, > void *hcpu) > {
These are __cpuinit in Linus's current tree. Which probably means that we're busted with hotplug-memory && !hotplug-cpu.
I don't think we want to make these __devinit, because that would penalise systems which are hotplug && !hotplug-memory && !hotplug-cpu, which are the systems which can least afford the memory waste.
So really, yes, we need the madness of mem+cpu.
Or we can do
static int __cpuinit __meminit foo(void) { }
Which actually seems to work. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |