lkml.org 
[lkml]   [2009]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH] [0/11] SYSCTL: Use RCU to avoid races with string sysctls
    Date

    With BKL-less sysctls most of the writable string sysctls are racy. There
    is no locking on the reader side, so a reader could see an inconsistent
    string or worse miss the terminating null and walk of beyond it.

    This patch kit adds a new "rcu string" variant to avoid these
    problems and convers the racy users. One the writer side the strings are
    always copied to new memory and the readers use rcu_read_lock()
    to get a stable view. For readers who access the string over
    sleeps the reader copies the string.

    This is all hidden in a new generic "rcu_string" ADT which can be also
    used for other purposes.

    This finally implements all the letters in RCU, most other users
    leave out the 'C'.

    I also fixed the zone order list sysctl to use a mutex to avoid
    racing with itself.

    I left some obscure users in architectures (sparc, mips) alone and audited
    all of the others. The sparc reboot_cmd one has references to asm files
    which I didn't want to touch and the mips variant seemd just too obscure.

    All the others are not racy.

    -Andi


    \
     
     \ /
      Last update: 2009-12-21 02:25    [W:2.689 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site