lkml.org 
[lkml]   [2004]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: bkl cleanup in do_sysctl
    Lee Revell wrote:

    >On Tue, 2004-08-10 at 13:28, Dave Hansen wrote:
    >
    >
    >
    >>Remember that the BKL isn't a plain-old spinlock. You're allowed to
    >>sleep while holding it and it can be recursively held, which isn't true
    >>for other spinlocks.
    >>
    >>So, if you want to replace it with a spinlock, you'll need to do audits
    >>looking for sysctl users that might_sleep() or get called recursively
    >>somehow. The might_sleep() debugging checks should help immensely for
    >>the first part, but all you'll get are deadlocks at runtime for any
    >>recursive holders. But, those cases are increasingly rare, so you might
    >>luck out and not have any.
    >>
    >>Or, you could just make it a semaphore and forget about the no sleeping
    >>requirement.
    >>
    >>
    >>
    >
    >Someone once suggested that newbies who show up on LKML wanting to learn
    >kernel hacking should be assigned to find one use of the BKL and replace
    >it with proper locking. Something similar worked very well with my
    >previous employer, before giving someone root, new hires would first be
    >assigned some task like writing a script to take the user account
    >database and generate a report of old accounts on a bunch of machines,
    >or rewrite the RADIUS accounting scripts, where the point was really to
    >get them familiar with the system.
    >
    >This way, even if they come back with a totally botched fix, someone
    >will probably just post a correct one. We could get rid of the BKL very
    >soon, I count only 247 files with lock_kernel in them.
    >
    >For example reiserfs uses the BKL for all write locking (!), but it
    >probably would not be too hard to fix, because you can just look at
    >another filesystem that has proper locking.
    >
    >
    Wrong. ;-) Balancing makes it way hard. Use reiser4. That has very
    sophisticated locking that pushes the research envelope, if you want to
    read code to learn about locking.....

    >Maybe this should be added to the FAQ:
    >
    >Q: I want to hack the kernel, and I *think* I know what I am doing.
    >Where do I start?
    >
    >Lee
    >
    >-
    >To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    >the body of a message to majordomo@vger.kernel.org
    >More majordomo info at http://vger.kernel.org/majordomo-info.html
    >Please read the FAQ at http://www.tux.org/lkml/
    >
    >
    >
    >

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:05    [W:0.026 / U:91.032 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site