Messages in this thread |  | | | Date | Sat, 25 Jul 2009 12:15:10 +0900 (JST) | | Subject | Re: [BUG] set_mempolicy(MPOL_INTERLEAV) cause kernel panic | | From | "KAMEZAWA Hiroyuki" <> |
| |
KAMEZAWA Hiroyuki wrote: > KAMEZAWA Hiroyuki wrote: > Then, here is a much easier fix. for trusting cpuset more. > just a memo about memory hotplug
_Direct_ use of task->mems_allowed is only in cpuset and mempolicy. If no policy is used, it's not checked. (See alloc_pages_current())
memory hotplug's notifier just updates top_cpuset's mems_allowed. But it doesn't update each task's ones. Then, task's bahavior is
- tasks which don't use mempolicy will use all nodes, N_HIGH_MEMORY. - tasks under cpuset will be controlled under their own cpuset. - tasks under mempolicy will use their own policy. but no new policy is re-calculated and, then, no new mask.
Now, even if all memory on nodes a removed, pgdat just remains. Then, cpuset/mempolicy will never access NODE_DATA(nid) which is NULL.
Thanks, -Kame
|  |