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

From: KAMEZAWA Hiroyuki
Date: Mon Jul 27 2009 - 20:27:38 EST


On Mon, 27 Jul 2009 17:14:32 -0700 (PDT)
David Rientjes <rientjes@xxxxxxxxxx> wrote:

> On Tue, 28 Jul 2009, KAMEZAWA Hiroyuki wrote:
>
> > > The nodemask for each task is updated to reflect the removal of a node and
> > > it calls mpol_rebind_mm() with the new nodemask.
> > >
> > yes, but _not_ updated at online.
> >
>
> Well, I disagreed that we needed to alter any pre-existing mempolicies for
> MEM_GOING_ONLINE or MEM_ONLINE since it may diverge from the original
> intent of the policy. MPOL_PREFERRED certain shouldn't change,
> MPOL_INTERLEAVE would be unbalanced, and MPOL_BIND could diverge from
> memory isolation or affinity requirements.
>
> I'd be interested to hear any real world use cases for MEM_ONLINE updating
> of mempolicies.
>
Sorry, I was a bit condused. I thought I said about task->mems_allowed.
Not each policy.

Because we dont' update, task->mems_allowed need to be initilaized as
N_POSSIBLE_NODES. At usual thinking, it should be N_HIGH_MEMORY or
N_ONLINE_NODES, as my patch does.

> > What I felt at reading cpuset/mempolicy again is that it's too complex ;)
> > The 1st question is why mems_allowed which can be 1024bytes when max_node=4096
> > is copied per tasks....
>
> The page allocator needs lockless access to mems_allowed.
>
Hmm, ok, I'll take care of that.

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/