Martin Peschke 7ff6f08295 [PATCH] CPU hotplug compatible alloc_percpu()
This patch splits alloc_percpu() up into two phases.  Likewise for
free_percpu().  This allows clients to limit initial allocations to online
cpu's, and to populate or depopulate per-cpu data at run time as needed:

  struct my_struct *obj;

  /* initial allocation for online cpu's */
  obj = percpu_alloc(sizeof(struct my_struct), GFP_KERNEL);

  ...

  /* populate per-cpu data for cpu coming online */
  ptr = percpu_populate(obj, sizeof(struct my_struct), GFP_KERNEL, cpu);

  ...

  /* access per-cpu object */
  ptr = percpu_ptr(obj, smp_processor_id());

  ...

  /* depopulate per-cpu data for cpu going offline */
  percpu_depopulate(obj, cpu);

  ...

  /* final removal */
  percpu_free(obj);

Signed-off-by: Martin Peschke <mp3@de.ibm.com>
Cc: Paul Jackson <pj@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-09-26 08:48:47 -07:00
..
2006-09-26 08:48:44 -07:00
2006-09-26 08:48:44 -07:00
2006-01-11 18:42:13 -08:00
2006-09-26 08:48:44 -07:00
2006-07-03 15:27:07 -07:00
2006-09-26 08:48:45 -07:00
2006-09-26 08:48:47 -07:00
2006-06-30 11:25:36 -07:00
2005-04-16 15:20:36 -07:00
2006-06-26 18:35:02 +02:00
2006-09-26 08:48:44 -07:00
2006-09-26 08:48:45 -07:00
2006-08-27 11:01:28 -07:00
2006-09-26 08:48:45 -07:00
2006-09-26 08:48:44 -07:00