lkml.org 
[lkml]   [2009]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [GIT PATCH] TTY patches for 2.6.33-git


On Sun, 13 Dec 2009, Trond Myklebust wrote:

> On Sun, 2009-12-13 at 20:04 +0100, Frederic Weisbecker wrote:
> > In the above cases we have the following comment:
> >
> > /* Protect inode->i_flock using the BKL */
> >
> > And really it doesn't seem to protect anything else,
> > fortunately it is acquired in a short path.
>
> As I said in my reply, this is the tough one, because the BKL protection
> is imposed by the VFS locking scheme used in fs/locks.c.
>
> There is a similar dependency imposed upon fs/lockd/

Note that since NFS seems to be the only one who really cares, I think the
appropriate course of action is to just replace the BKL - preferably with
a spinlock that you just drop before you do anything that blocks.

Not only does the BKL already do that (so the locking doesn't change), but
I think most _users_ of the BKL actually already do the explicit dropping
of the lock (rather than the implicit one done by schedule()) because it's
already been a scalability issue and we've had some history of trying
alternative approaches that didn't do that whole auto-dropping anyway
(whether those alternate approaches be semaphores or spinlocks).

So don't worry about the "imposed by the VFS" thing. I think you can
fairly easily change the VFS side.

Linus


\
 
 \ /
  Last update: 2009-12-13 20:23    [from the cache]
©2003-2011 Jasper Spaans