diff options
| author | Lee Schermerhorn <[email protected]> | 2009-12-14 17:58:36 -0800 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2009-12-15 08:53:13 -0800 |
| commit | 39da08cb074cf19cb249832a2a955dfb28837e65 (patch) | |
| tree | fded7c1757adb29aa682f86251addc66549b6907 /include/linux/node.h | |
| parent | 4faf8d950ec438c49ae4526b897c30f8a2cad741 (diff) | |
hugetlb: offload per node attribute registrations
Offload the registration and unregistration of per node hstate sysfs
attributes to a worker thread rather than attempt the
allocation/attachment or detachment/freeing of the attributes in the
context of the memory hotplug handler.
I don't know that this is absolutely required, but the registration can
sleep in allocations and other mem hot plug handlers do it this way. If
it turns out this is NOT required, we can drop this patch.
N.B., Only tested build, boot, libhugetlbfs regression.
i.e., no memory hotplug testing.
Signed-off-by: Lee Schermerhorn <[email protected]>
Reviewed-by: Andi Kleen <[email protected]>
Cc: KAMEZAWA Hiroyuki <[email protected]>
Cc: Lee Schermerhorn <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Randy Dunlap <[email protected]>
Cc: Nishanth Aravamudan <[email protected]>
Cc: David Rientjes <[email protected]>
Cc: Adam Litke <[email protected]>
Cc: Andy Whitcroft <[email protected]>
Cc: Eric Whitney <[email protected]>
Cc: Christoph Lameter <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux/node.h')
| -rw-r--r-- | include/linux/node.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/node.h b/include/linux/node.h index dae1521e1f05..06292dac3eab 100644 --- a/include/linux/node.h +++ b/include/linux/node.h @@ -21,9 +21,14 @@ #include <linux/sysdev.h> #include <linux/cpumask.h> +#include <linux/workqueue.h> struct node { struct sys_device sysdev; + +#if defined(CONFIG_MEMORY_HOTPLUG_SPARSE) && defined(CONFIG_HUGETLBFS) + struct work_struct node_work; +#endif }; struct memory_block; |
