Re: [PATCH][-mm] reclassify sg_sysfs_class for lockdep

From: James Bottomley
Date: Wed May 28 2008 - 23:25:38 EST


On Thu, 2008-05-29 at 08:45 +0800, Dave Young wrote:
> > This isn't really a generic solution, is it? It only works because we
> > currently only have two users of the interface functions, so if we
> > reclassify one they look separate to lockdep. It will fall over again
> > if we ever get another one.
> >
> > Surely the correct fix is to initialise lockdep for the mutex the same
> > way we did for the semaphore in class_register() (which does exactly the
> > same locking without triggering lockdep)? That way we'll also fix the
> > problem for other conversions of semaphore->mutex.
>
> Matthew & greg did the work already.

Yes, that was nice of them ...

> >From my original idea I don't want to do this for all classes, and I
> would think it as a rare case.

Hardly ... the fact that it showed up in two different cases indicated
the problem to be more generic.

The root cause of the problem was that mutexes are part of the lockdep
infrastructure whereas semaphores aren't and the dynamic initialisation
of mutexes becomes a lockdep problem unless they're keyed and
initiallised correctly. If you want to do more semaphore->mutex
conversions, it would really be useful for you to understand what was
done and why it was necessary ... because it's going to become necessary
again in others of them.

James


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