Re: [PATCH -tip] remove the BKL: Replace BKL in mount/umountsyscalls with a mutex

From: Ingo Molnar
Date: Fri Apr 17 2009 - 12:57:18 EST



* Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:


> > > Old
> > > foo_read_super/foo_write_super/foo_put_super/foo_remount_fs
> > > for the same foo. IOW, per-driver (and not per-fs - that's
> > > taken care of) data structures. Arbitrary weird ones.
[...]
> > I fear, unless i'm misunderstanding your feedback, that you are
> > setting the purist's irrealistically high burden to get rid of the
> > BKL from the VFS here.
> >
> > "Arbitrary weird ones" means all BKL using sites in the kernel - all
> > ~800 ones - up to 800x800 == close to a million interactions to
> > check.
>
> Sigh... How about dumping that lovely strawman? I've
> exsoddingplicitly told you that all such stuff is *within*
> *individual* *fs* *driver*.

Ah, i misunderstood: "per-driver (and not per-fs" to mean to include
all other BKL-using Linux drivers as well ;-)

The 'not per-fs' excluded the 'fs driver' meaning (to me).

Per fs analysis is of course a must-review if we weaken or change
locking.

> Start with taking these guys down into the superblock methods in question.
> Drop that junk on VFS-only side of things completely (mount --move,
> mount --bind, etc.). Then we go looking for data structures that are
> a) internal to fs driver
> b) accessed by methods in question (in that fs driver)
> c) are shared between different filesystems.
>
> Analysis is on per-fs basis. And getting rid of these turds
> doesn't have to happen in one patch.

Stupid question regarding c): wouldnt such data structures go via
the VFS - which you said was free of BKL constraints? Or are there
interconnected private data structures between certain types of
closely related filesystems that the VFS does not know about? (and
hence might have BKL assumptions)

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