[lkml]   [2009]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [BUG] set_mempolicy(MPOL_INTERLEAV) cause kernel panic
    On Sat, 25 Jul 2009, KAMEZAWA Hiroyuki wrote:

    > _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.

    That's not true, cpuset_track_online_nodes() will call
    scan_for_empty_cpusets() on top_cpuset, which works from the root to
    leaves updating each cpuset's mems_allowed by intersecting it with
    node_states[N_HIGH_MEMORY]. This is done as part of the MEM_OFFLINE
    callback in the cpuset code, so N_HIGH_MEMORY represents the nodes still

    The nodemask for each task is updated to reflect the removal of a node and
    it calls mpol_rebind_mm() with the new nodemask.

    This is admittedly pretty late to be removing mems from cpusets (and
    mempolicies) when the unplug has already happened. We should look at
    doing the rebind for MEM_GOING_OFFLINE.

     \ /
      Last update: 2009-07-27 19:59    [W:0.046 / U:10.084 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site