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

Re: ucom/uftdi dropping bytes, with debug logs FIXED



In message: <4495D48C_(_dot_)_2000601_(_at_)_apeiron_(_dot_)_net>
            Geoffrey Mainland <mainland_(_at_)_apeiron_(_dot_)_net> writes:
: M. Warner Losh wrote:
: > In message: <e6vefe$5bq$1_(_at_)_sea_(_dot_)_gmane_(_dot_)_org>
: >             Geoffrey Mainland <mainland_(_at_)_apeiron_(_dot_)_net> writes:
: > : The fact that this runs fine under VMWare makes me strongly suspect a
: > : timing issue that is fixed by some sort of buffering at the VMWare
: > : level. Where should I start to look to hack something in to test this?
: > : The ucom driver seems to be setting up the read transfers that don't
: > : complete on time.
: > 
: > I'd start looking into ucom.c and uftdi.c.
: > 
: > Warner
: 
: Here's a diff against ucom.c version 1.57 that fixes the problem for me.
:   I'm sure this is not the "correct" fix, but it stops bytes from being
: dropped :). I assume aborting the read and immediately restarting it
: flushes some pending data. Why is ucomstop is called so frequently by
: the tty code?

I don't know.  Sure is weird.  I've seen tip take 100% of the CPU when
talking with a uftdi dongle too.

Warner


: Geoff
: 
: Index: ucom.c
: ===================================================================
: --- ucom.c	(revision 3)
: +++ ucom.c	(working copy)
: @@ -622,10 +622,12 @@
: 
:  	DPRINTF(("ucomstop: %d\n", flag));
: 
: +#if 0
:  	if ((flag & FREAD) && (sc->sc_state & UCS_RXSTOP) == 0) {
:  		DPRINTF(("ucomstop: read\n"));
:  		ucomstopread(sc);
:  		ucomstartread(sc);
: +#endif
:  	}
: 
:  	if (flag & FWRITE) {
: 
: _______________________________________________
: freebsd-usb_(_at_)_freebsd_(_dot_)_org mailing list
: http://lists.freebsd.org/mailman/listinfo/freebsd-usb
: To unsubscribe, send any mail to "freebsd-usb-unsubscribe_(_at_)_freebsd_(_dot_)_org"
: 
: 
_______________________________________________
freebsd-usb_(_at_)_freebsd_(_dot_)_org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscribe_(_at_)_freebsd_(_dot_)_org"


Visit your host, monkey.org