Commit a1e565a
memory-hotplug: do not allocate pgdat if it was not freed when offline.
Since there is no way to guarentee the address of pgdat/zone is not on
stack of any kernel threads or used by other kernel objects without
reference counting or other symchronizing method, we cannot reset
node_data and free pgdat when offlining a node. Just reset pgdat to 0
and reuse the memory when the node is online again.
The problem is suggested by Kamezawa Hiroyuki. The idea is from Wen
Congyang.
NOTE: If we don't reset pgdat to 0, the WARN_ON in free_area_init_node()
will be triggered.
[akpm@linux-foundation.org: fix warning when CONFIG_NEED_MULTIPLE_NODES=n]
[akpm@linux-foundation.org: fix the warning again again]
Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
Reviewed-by: Wen Congyang <wency@cn.fujitsu.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Jiang Liu <jiang.liu@huawei.com>
Cc: Jianguo Wu <wujianguo@huawei.com>
Cc: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Wu Jianguo <wujianguo@huawei.com>
Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>1 parent d822b86 commit a1e565a
1 file changed
Lines changed: 16 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1017 | 1017 | | |
1018 | 1018 | | |
1019 | 1019 | | |
1020 | | - | |
1021 | | - | |
1022 | | - | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
1023 | 1025 | | |
1024 | | - | |
| 1026 | + | |
| 1027 | + | |
1025 | 1028 | | |
1026 | 1029 | | |
1027 | 1030 | | |
| |||
1074 | 1077 | | |
1075 | 1078 | | |
1076 | 1079 | | |
1077 | | - | |
| 1080 | + | |
| 1081 | + | |
1078 | 1082 | | |
1079 | 1083 | | |
1080 | 1084 | | |
| |||
1085 | 1089 | | |
1086 | 1090 | | |
1087 | 1091 | | |
1088 | | - | |
| 1092 | + | |
| 1093 | + | |
| 1094 | + | |
| 1095 | + | |
| 1096 | + | |
| 1097 | + | |
1089 | 1098 | | |
1090 | 1099 | | |
1091 | 1100 | | |
1092 | 1101 | | |
1093 | | - | |
1094 | 1102 | | |
1095 | 1103 | | |
1096 | 1104 | | |
| |||
1102 | 1110 | | |
1103 | 1111 | | |
1104 | 1112 | | |
1105 | | - | |
| 1113 | + | |
1106 | 1114 | | |
1107 | 1115 | | |
1108 | 1116 | | |
| |||
0 commit comments