Re: BKL removal

Alexander Viro (viro@math.psu.edu)
Sun, 7 Jul 2002 23:06:32 -0400 (EDT)


On Sun, 7 Jul 2002, Dave Hansen wrote:

> > as does unix domain fd passing. so we need protection between different
> > processes. there's some pretty good reasons to want to use a semaphore
> > to protect the struct file (see fasync code.. bleugh).
>
> But, this at least means that we don't need to protect
> file->private_data during the open itself, right?

Correct. Moreover, most of the struct file instances that have ->private_data
tend to set it during ->open() and never change it afterwards.

> > however, our semaphores currently suck. they attempt to acquire the sem
> > immediately and if they fail go straight to sleep. schimmel (i think..)
> > suggests spinning for a certain number of iterations before sleeping.
> > the great thing is, it's all out of line slowpath code so the additional
> > size shouldn't matter. obviously this is SMP-only, and it does require
> > someone to do it who can measure the difference (and figure out how may
> > iterations to spin for before sleeping).

The thing being, if you are already contended you are playing "I'll release
CPU now" vs. "I'll spin in hope that contender will go away right now".

IOW, it's a win only if you get contention often and for short intervals.
Which is a very good indication that something is rotten with your locking
scheme. Like, say it, having lost the control over the amount of locks
as the result of brainde^Woverenthusiastic belief that fine-grained ==
good. With everything that follows from that...

-
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/