On 15 sep 2009, at 18:27, Alan Cox wrote:
It would be easy for example to tweak tty_buffer to call a
second throttle method on the hardware side when the buffer is
getting a
bit full.
Yes. In the case of CDC-ACM, the hardware driver could throttle
itself as soon as tty_buffer_request_room fails. But support from
tty_buffer is needed to unthrottle the driver when the buffer has
room again.
Unless someone has a better idea, I will try to implement this and
see where it gets me.
We would expect the queue to get run within 1/100th of a second so
that
gives us 8Mbit/sec of buffering headroom.
Just what rate is your device running ?
High speed USB = ~ 40 MByte/s.
There is no actual communication line involved. I use CDC-ACM as just
a convenient interface to pump data.
True, the serial layer was never designed for this kind of abuse. On
the other hand, file descriptors were not originally designed for
networking. Making the serial layer robust for high transfer rates
would be a step forward, I think.
BTW, I guess a similar situation is behind "Bug 14163" reported
recently on this list.
Joris.
--
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