lkml.org 
[lkml]   [2009]   [Oct]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    Subject[PATCH tip/core/rcu 0/3] rcu: clean up locking for ->completed and ->gpnum fields
    Hello!

    This patch series imposes a clear locking model on accesses to the
    ->completed and ->gpnum fields, significantly increasing the reliability
    of RCU. To be fair, in order to induce failures in current -tip,
    you have to run long rcutorture tests on particular hardware with
    particular kernel configuration parameters, while having modified the RCU
    implementation itself to invoke force_quiescent_state() several times as
    often as normal. By "particular hardware", I do mean specific machines
    that appear otherwise identical to other machines with much lower (and
    sometimes even nonexistent) failure rates. After all, these are race
    conditions, and as such can be affected by very subtle factors.

    That said, RCU really needs to stand up to whatever abuse shows up,
    hence these patches.

    1. The first patch puts non-NO_HZ accesses to the ->completed field
    under a well-defined locking design, eliminating the
    unsynchronized accesses to rsp->completed from the
    dyntick_recall_completed() function.

    2. The second patch puts the rcu_process_gp_end() function's use
    of the ->completed field under a well-defined locking design,
    eliminating its previously unsynchronized accesses to
    rsp->completed.

    3. The third and final patch puts accesses to the ->gpnum field
    under a well-defined locking design, eliminating the
    unsynchronized accesses to rsp->gpnum from the note_new_gpnum()
    function.

    A number of unsynchronized accesses remain, but these are of the form
    of an unsynchronized check followed by a lock acquisition followed by
    a repeat of the check.

    Thanx, Paul


    \
     
     \ /
      Last update: 2009-10-31 03:45    [W:0.022 / U:29.620 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site