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 <[email protected] >
Cc: Paul Jackson <[email protected] >
Signed-off-by: Andrew Morton <[email protected] >
Signed-off-by: Linus Torvalds <[email protected] >
2006-09-26 08:48:47 -07:00
..
2006-09-19 12:43:58 +01:00
2006-09-19 12:43:58 +01:00
2006-09-07 15:57:12 +01:00
2006-09-24 19:28:47 -07:00
2006-09-22 14:55:33 -07:00
2006-09-19 12:43:58 +01:00
2006-09-22 15:20:20 -07:00
2006-09-22 14:55:33 -07:00
2006-09-19 12:43:58 +01:00
2006-09-19 12:43:58 +01:00
2006-09-22 23:25:01 -04:00
2006-09-19 12:43:58 +01:00
2006-09-19 12:43:58 +01:00
2006-09-24 11:13:19 -04:00
2006-08-31 00:02:15 -04:00
2006-09-06 11:00:02 -07:00
2006-09-11 13:32:30 -04:00
2006-09-23 21:03:52 -05:00
2006-09-26 08:48:45 -07:00
2006-09-24 11:13:19 -04:00
2006-09-21 11:46:23 +10:00
2006-09-22 23:24:30 -04:00
2006-09-24 17:56:32 -03:00
2006-09-01 11:39:08 -07:00
2006-09-24 11:13:19 -04:00
2006-09-24 11:13:19 -04:00
2006-09-24 11:13:19 -04:00
2006-09-22 15:18:10 -07:00
2006-09-22 15:18:47 -07:00
2006-09-24 13:50:45 -07:00
2006-09-22 15:18:51 -07:00
2006-09-26 08:48:47 -07:00
2006-09-26 08:48:46 -07:00
2006-09-06 11:00:01 -07:00
2006-09-22 15:20:29 -07:00
2006-09-22 14:53:50 -07:00
2006-09-22 15:07:00 -07:00
2006-09-22 15:18:29 -07:00
2006-09-22 15:18:01 -07:00
2006-09-22 14:53:32 -07:00
2006-09-22 15:20:25 -07:00
2006-09-24 11:13:19 -04:00
2006-09-24 11:13:19 -04:00
2006-09-24 22:06:48 +01:00
2006-09-23 11:34:42 -07:00
2006-09-06 11:00:02 -07:00
2006-09-25 15:33:09 -04:00
2006-09-24 11:13:19 -04:00
2006-09-26 08:48:47 -07:00
2006-09-24 11:13:19 -04:00
2006-09-26 08:48:46 -07:00
2006-09-26 08:48:47 -07:00
2006-09-20 15:58:25 +02:00
2006-09-24 11:13:19 -04:00
2006-09-24 11:13:19 -04:00
2006-09-22 14:54:04 -07:00
2006-09-22 14:54:20 -07:00
2006-09-24 10:15:13 -07:00
2006-09-22 15:18:31 -07:00
2006-09-22 15:19:51 -07:00
2006-09-22 14:53:54 -07:00
2006-09-02 15:33:49 -05:00
2006-09-22 23:24:54 -04:00
2006-09-24 11:13:19 -04:00
2006-09-22 23:24:32 -04:00
2006-09-22 23:24:53 -04:00
2006-09-23 15:33:43 -05:00
2006-09-26 08:48:47 -07:00
2006-09-22 15:18:12 -07:00
2006-09-24 11:13:19 -04:00
2006-09-24 11:13:19 -04:00
2006-09-24 11:13:19 -04:00
2006-09-26 08:48:44 -07:00
2006-09-22 14:55:02 -07:00
2006-09-21 11:46:16 +10:00
2006-09-01 11:39:08 -07:00
2006-09-22 14:53:36 -07:00
2006-09-22 14:53:53 -07:00
2006-09-26 08:48:45 -07:00
2006-09-24 11:13:19 -04:00
2006-09-22 14:55:16 -07:00
2006-09-22 08:00:42 +01:00
2006-09-26 08:48:47 -07:00
2006-09-22 15:20:25 -07:00
2006-09-13 07:32:15 -07:00
2006-09-24 11:13:19 -04:00
2006-09-10 13:45:55 -03:00
2006-09-10 13:45:55 -03:00
2006-09-26 08:48:45 -07:00
2006-09-26 08:48:47 -07:00
2006-09-26 08:48:44 -07:00
2006-09-22 15:08:35 -07:00