On Thu, Aug 13, 2015 at 11:55:07AM -0700, Greg KH wrote:
> On Thu, Aug 13, 2015 at 01:44:24PM -0500, Felipe Balbi wrote:
> > Hi,
> >
> > On Thu, Aug 13, 2015 at 01:37:19PM -0500, Felipe Balbi wrote:
> > > Hi,
> > >
> > > I have reproduced this write failure very reliably with two different
> > > hosts (my xHCI Desktop and AM335x with MUSB).
> > >
> > > It's very simple to reproduce with the ruby script below:
> > >
> > > #!/usr/bin/env ruby
> > >
> > > 1000000.times do |amt|
> > > File.open("/dev/ttyUSB0", 'w') do |write|
> > > str = "a" * (amt + 1)
> > > puts "writing #{str.length} bytes to #{write.path}"
> > > write.puts str
> > > end
> > > end
> > >
> > >
> > > Basically, CP2108 stops sending data and starts NAKing any IN tokens
> > > from the host. Attached you can find a fresh sniffer capture of the
> > > problem reproduced with AM335x running today's linux-next.
> > >
> > > To read the sniffer capture, you'll need DataCenter SW which can be
> > > downloaded from [1] (there are binaries for Windows, Linux and Mac.
> > > You'll need gstreamer0.10 to run).
> > >
> > > There are ways to make it behave. If I add a reading thread reading from
> > > ttyUSB1 with a null modem cable routed from ttyUSB0 to ttyUSB1, then it
> > > works. It also works by adding a sleep or enough debugging messages.
> > >
> > > Let me know if you need any extra information to reproduce this problem.
> > >
> > > Attached you can also find a screenshot with a snipet of the sniffer
> > > capture showing the timed out control transfer and a little context
> > > around it.
> > >
> > > [1] http://www.totalphase.com/products/data-center/
> >
> > resending without attachments, you guys already got it anyway :-p
>
> Do other usb-serial devices succeed with this test (pl2303, ftdi, etc.)?FTDI seems to work fine (ran all the way to 5000+ bytes before I stopped it), no pl2303 here though :-s > Given that there is no specific write-path code for this driver, it's > using the usb-serial core, so odds are, the chip itself is just not > liking being sent this much data all at once, so it dies. These really > are horrible little chips, it's amazing they even work at all at > times... that's what I figured, still good to check anyway. It doesn't seem to be reproducible with AM437x (which has a USB2-only XHCI implementation - yeah, don't ask), but maybe it's more related to extra latency due to XHCI running on a single core A9 in comparison to my 8-core desktop. Oh well, just blame the chip, I guess :-p -- balbi
signature.asc
Description: Digital signature
