Re: [PATCH 7/7] driver-core : convert semaphore to mutex in struct class

From: Dave Young
Date: Fri Jan 18 2008 - 04:08:04 EST


On Jan 18, 2008 4:23 PM, Jarek Poplawski <jarkao2@xxxxxxxxx> wrote:
> On Fri, Jan 18, 2008 at 03:48:02PM +0800, Dave Young wrote:
> > On Jan 18, 2008 3:38 PM, Jarek Poplawski <jarkao2@xxxxxxxxx> wrote:
> ...
> > > IMHO, it would be nice to get the real state of current lockdep
> > > problems here to figure out if there is any chance to do this right &
> > > without any warnings with current lockdep. If I got it right from
> > > earlier threads it might be impossible with USB, at least.
> >
> > I don't think so, usb doesn't be affected by struct class mutex, they
> > only use the lock of struct device. As I replied before, the lockdep
> > issue exist only between class_interface and class_device.
>
> OK, but I've meant possibility of changing their own semaphores later.
>
> > > So, since I think these nesting levels seem to be wrong in 7/7 patch,
> > > maybe it's better to exclude it from this patchset, and to try this as
> > > testing for some time.
> >
> > I may file the updated patch with more nesting changes and test it of
> > course. Actually I should have done it, thanks.
> ...
> > 1) Using CLASS_NORMAL/CLASS_PARENT/CLASS_CHILD will be enough.
> > or
> > 2) Simply add SINGLE_LEVEL_NESTING in class_device_add and other
> > class_device functions because it is the only possible nest-lock place
> > as I know.
>
> If SINGLE_LEVEL_NESTING is enough? (means 2 levels total)

I think so.

>
> I think you should more care about real (logical) relations here, than
> what's enough to get rid of lockdep warnings.

You are quite right, thanks.

>
> Since there are not so much of these changes, you can try both
> variants.

Will do.

>I'll be glad to look at this - maybe I'll mangage to figure
> out BTW, what it's all about...
>
> Jarek P.
>
--
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/