lkml.org 
[lkml]   [2012]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 0/4] CPU hotplug, cpusets: Fix CPU online handling related to cpusets

    * Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:

    > On Thu, 2012-02-09 at 16:11 +0100, Ingo Molnar wrote:
    >
    > > > My understanding of the code is that when a CPU is taken
    > > > offline, it is removed from all the cpusets and then the
    > > > scan_for_empty_cpusets() function is run to move tasks from
    > > > empty cpusets to their parent cpusets.
    > >
    > > Why is that done that way? offlining a CPU should be an
    > > invariant as far as cpusets are concerned.
    >
    > Can't, tasks need to run someplace. There's two choices, add a
    > still online cpu to the now empty cpuset or move the tasks to
    > a parent that still has online cpus.
    >
    > Both are destructive.

    You aren't thinking hard enough ;-) There's several solutions
    off the top of my mind:

    1) refuse the "impossible" offlining of the CPU, with a clear
    enough error to make it actionable

    2) offer a 'forced' offlinign of a CPU that will SIGTERM all
    tasks that are on the now offline CPU and can only be there.

    3) offer a 'nice' offlining variant that moves all orphan tasks
    to their or any other well-defined fallback CPU.

    4) *allow* 'impossible' cpusets and just run them on CPU#0 or
    any other natural approximation. Don't touch the cpuset!

    All of these would be exception mechanisms with no need to do
    anything at hot-replug time.

    Thanks,

    Ingo


    \
     
     \ /
      Last update: 2012-02-11 14:43    [W:5.021 / U:0.324 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site