RE: [PATCH] usb: core: add debugobjects support for urb object
From: Du, Changbin
Date: Wed May 25 2016 - 22:16:07 EST
> On Tue, May 24, 2016 at 03:53:53PM +0800, changbin.du@xxxxxxxxx wrote:
> > From: "Du, Changbin" <changbin.du@xxxxxxxxx>
> > Add debugobject support to track the life time of struct urb.
> > This feature help us detect violation of urb operations by
> > generating a warning message from debugobject core. And we fix
> > the possible issues at runtime to avoid oops if we can.
> > I have done some tests with some class drivers, no violation
> > found in them which is good. Expect this feature can be used
> > for debugging future problems.
> > Signed-off-by: Du, Changbin <changbin.du@xxxxxxxxx>
> I agree with Alan, what use is this code? Existing drivers all work
> properly because the reference counting of urbs is already present, why
> add duplicate counters? That actually leads to bugs. I don't see the
> need for this code, please explain it better if you wish for it to be
> accepted. What has it found/fixed that we have not found yet? What
> does it allow you to do that you can't do today with the existing code?
> greg k-h
I agree with you two now after checking all urb code. I am sorry to disturb you.
I did have an object lifetime issue, but it is of usb_request. I expect the
cause is usb_request is freed but still pending in udc core. Then I cannot
reproduce it, I even cannot know which function driver the usb_request came
from. I originally want to use debugojects to debug that issue, then I though
this can also help urb debugging. Obviously I am wrong. As you said reference
counting of urbs is already present. :)
I may add debugojects for device mode usb_request farther. Sometimes it helps.