[lkml]   [2012]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectStatus of Nohz cpusets (adaptive tickless kernel) for January 2012
    Hi everyone,

    I haven't yet fully addressed all the reviews I got when I posted the
    nohz cpusets patchset last time (,
    which is why I haven't yet posted the patches for a v2.

    Meanwhile I'm still working on it and some progress has been made since
    then so I've been thinking it could be nice to report the current status.

    One of the steps that have been achieved so far is the detection of illegal uses
    of RCU read side critical section while in RCU idle mode (extended quiescent
    state). This was a necessary piece for the nohz cpuset because we extend the
    RCU idle mode to userspace there. As it happened to become pretty error prone,
    this debugging feature became mandatory (and indeed helped me to spot and
    fix some bugs in my code).

    In the meantime these changes have initiated a split between the nohz and idle
    logics, reducing a bit the amount of changes in my tree.

    So I have rebased my tree on top of latest rcu/core changes (those that have
    been merged for 3.3-rc1) and continue to work on it.

    Still several things to do before posting the patches of a v2
    but things are moving forward. Also I have started a TODO list
    there that I'll feed by the time:

    Result of the work in progress as of today can be found at:


    Changes in this tree since v1:

    - Rebase against latest rcu/core branch for v3.3-rc1

    - Adapt against latest rcu changes: introduce new APIs
    rcu_user_enter(), rcu_user_exit(), rcu_user_enter_irq()
    and rcu_user_exit_irq()

    - Handle RCU idle mode with do_notify_resume() path

    - Fix deadlock after double rq lock on schedule:
    schedule() -> rq_lock -> next is idle task ->
    tick_nohz_restart_sched_tick() -> wake up softirq ->
    rq lock

    - Fix lockup while issuing flush times IPI on exit path:

    CPU 0 CPU 1

    smp_call_function(CPU 1)
    * deadlock *

    - Many namespace renames (cpuset_* to tick_nohz_*) and code migration
    from sched.c to tick-sched.c

    - Seperate code that determine if we can stop the idle tick and don't
    use it for adaptive tickless mode.

    - Fix adaptive tickless mode set on idle incidentally. TIF_NOHZ was
    then missing on the following task that ran tickless, issuing some
    illegal uses of RCU.

     \ /
      Last update: 2012-01-18 01:53    [W:0.029 / U:8.740 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site