Re: [BUG] set_mempolicy(MPOL_INTERLEAV) cause kernel panic

From: KAMEZAWA Hiroyuki
Date: Fri Jul 24 2009 - 23:17:08 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/