All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] fix cpu hotplug
@ 2006-02-02  2:25 Anton Blanchard
  2006-02-02  2:47 ` Andrew Morton
  0 siblings, 1 reply; 2+ messages in thread
From: Anton Blanchard @ 2006-02-02  2:25 UTC (permalink / raw)
  To: akpm, torvalds; +Cc: linux-kernel


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)
 {

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] fix cpu hotplug
  2006-02-02  2:25 [PATCH] fix cpu hotplug Anton Blanchard
@ 2006-02-02  2:47 ` Andrew Morton
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Morton @ 2006-02-02  2:47 UTC (permalink / raw)
  To: Anton Blanchard; +Cc: torvalds, linux-kernel

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.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-02-02  2:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-02  2:25 [PATCH] fix cpu hotplug Anton Blanchard
2006-02-02  2:47 ` Andrew Morton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.