Re: Regression found with link TRB activation patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jun 13, 2010 at 09:27:18AM +0800, Xu, Andiry wrote:
> > -----Original Message-----
> > From: Sarah Sharp [mailto:sarah.a.sharp@xxxxxxxxxxxxxxx]
> > Sent: Friday, June 11, 2010 1:50 AM
> > To: Xu, Andiry
> > Cc: linux-usb@xxxxxxxxxxxxxxx; Yang, Libin; Nguyen, Dong
> > Subject: Re: Regression found with link TRB activation patch
> > 
> > Hi Andiry,
> > 
> > The bug I found in John's link TRB activation patch would also effect
> > isochronous TDs that end just before the link TRB, when the URB needs
> > more TDs enqueued after that.  Have you run into this problem?
> > 
> 
> Yes, I have encountered this problem too and found that with this patch,
> even without isoc transfer implemented, plugging an isoc device will
> cause the system hangs. I just remove the patch for isoc testing and
> trying to figure out what the patch does. It's good that you found it
> too.

Shoot, I wish you had told me this particular patch was causing you
trouble sooner.  In the future, can you tell me if this sort of thing
happens?  If you hit the bug, other users are also likely to hit the
bug, and I'd like to fix it sooner.

> > Also, how are you doing on the isoch patches?  Did you end up fixing
> the
> > problem when multiple URBs are skipped?  I hope you're not waiting on
> me
> > to refactor the handle_tx_event() function, but if you are, please let
> > me know.  I'd like to get all your patches (including the PM patches)
> > reviewed, tested, and queued before I leave for a conference/vacation
> on
> > June 25th.  Otherwise they will have to wait until after July 12th.
> > 
> 
> Thanks for your concern. Yes, I'm doing the handle_tx_event() refine
> work but I have been engaging in some other urgent tasks these
> days(including investigating the xHCI 1.0 spec) and sorry for the late
> response. I'll do my best to submit the patches ASAP. Thanks for your
> help!

It turns out that I also have some urgent work that needs to be done
before I leave, so I may not be able to fully review and test your code
before June 25th.  So no need to rush on the patches.

I have some notes on what will need to be done to the xHCI driver to be
compliant with the xHCI 1.0 specification.  I'll try to post them in the
next couple of days.

I'm most concerned about the TD fragments change because TD fragments
cannot span segment boundaries, so having only a link TRB at the end of
the segment will not suffice.  (We can't insert no-ops before the link
TRB because no-ops cannot be chained.)  I think the solution is to end
the segment early with a link TRB, and make the dequeue pointer function
change the link TRB back into a normal TRB once the hardware is done
with that TD.  But the room_on_ring() function is going to have to
calculate where to break the transfer into TD fragments and allocate new
segments if needed.  I think that will be the most complex change for
the 1.0 xHCI specification.

Hopefully the 1.0 xHCI specification is posted on the intel.com website
soon.  Jeff Ravencraft has said there's some sort of download security
thing that's holding up posting the spec publicly to the website.

Sarah Sharp
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux