Re: lockdep problem conversion semaphore->mutex (dev->sem)

From: Ingo Molnar
Date: Sat Dec 08 2007 - 15:08:48 EST



* Remy Bohmer <linux@xxxxxxxxxx> wrote:

> But... now we do not transfer the dev->sem to a mutex, because lockdep
> will start generating false positives, and thus we mask the lockdep
> error, by not converting the dev->sem to what it really is...

no, you are wrong. If you want to do complex locking, you can still do
it: take a look at the dev->sem conversion patches from Peter which
correctly do this. Lockdep has all the facilities for that. (you just
dont know about them) Currently there are 4459 critical sections in the
kernel that use mutexes and which work fine with lockdep.

the general policy message here is: do not implement complex locking. It
hurts. It's hard to maintain. It's easy to mess up and leads to bugs.
Lockdep just makes that plain obvious.

Your mail and your frustration shows this general concept in happy
action: judging from your comments you have little clue about dev->sem
locking and its implications and you'd happily go along and pollute the
kernel with complex and hard to maintain nested locking constructs.

Lockdep prevents you from doing it mindlessly, it _forces_ you to first
understand the data structures, their locking and their relationship
with each other. Then you can implement complexity, if you still want
it.

That, Sir, is a Good Thing (tm).

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/