From: Oliver Neukum <oneukum-IBi9RG/b67k@public.gmane.org>
To: Julio Guerra <julio-wf23HAOg02MWenYVfaLwtA@public.gmane.org>
Cc: linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: cdc_acm bug? read buffer bytes shifted
Date: Tue, 20 Sep 2016 10:45:34 +0200 [thread overview]
Message-ID: <1474361134.4358.7.camel@suse.com> (raw)
In-Reply-To: <f97a97ee-4d22-145c-5f73-472ee4f03968-wf23HAOg02MWenYVfaLwtA@public.gmane.org>
On Fri, 2016-09-16 at 18:24 +0200, Julio Guerra wrote:
> > On Sat, 2016-08-20 at 14:14 +0200, Julio Guerra wrote:
> >>>> Another example:
> >>>>> 00 00 00 00 00 00 00 01
> >>>> ...
> >>>>> 01 00 00 00 00 00 00 00
> >>>> ...
> >>>>> 00 01 00 00 00 00 00 00
> >>>> ...
> >>>>> 00 00 01 00 00 00 00 00
> >>>> after a random number of times, while usbmon shows the usb payload
> >>>> "00 00 00 00 00 00 00 01".
> >>>
> >>> Hi, how many bytes does read() return?
> >>>
> >>
> >> Exactly 8 bytes, always. I set the tty in raw non-canonical mode with
> >> vmin = 8 and vtime = 0. I also tried with vmin = 1 and did the copy of
> >> exactly 8 bytes by looping in userspace, without any improvement.
> >>
> >> I wrote a small workaround for now that detects this problem (because I
> >> exactly know what the buffer is supposed to look like) to close() and
> >> re-open() the device. The next read buffer is then correct.
> >>
> >
> > Please activate dynamic debugging for the tty and cdc_acm driver.
> > We need to know where the corruption happens.
> >
>
> I didn't find anything helpful in /sys/kernel/debug/dynamic_debug
> regarging the tty module (I enabled tty_io debugs and it doesn't appear
> in the logs), but I enabled cdc_acm debugs. Nothing is observable in the
> logs when the bug appears. I logged everything as a comment of the gist:
> https://gist.github.com/Julio-Guerra/b6529994f814771c825649bdb8d927c2#gistcomment-1875985
>
> Note that re-running the script restarts the underlying kernel buffer
> correctly, it does not restart from its previous bugged state.
>
> Let me know if you want other debug traces enabled.
>
Can you modify the tty layer to print out the buffer?
It is unclear from the logs where the shift happens.
Regards
Oliver
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2016-09-20 8:45 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-20 3:40 cdc_acm bug? read buffer bytes shifted Julio Guerra
[not found] ` <2c59e268-9fd6-172b-1803-074aa4e11f27-wf23HAOg02MWenYVfaLwtA@public.gmane.org>
2016-08-20 11:32 ` Oliver Neukum
[not found] ` <1471692758.29854.0.camel-IBi9RG/b67k@public.gmane.org>
2016-08-20 12:14 ` Julio Guerra
[not found] ` <4bffb2dd-de01-8819-cf44-c4fb1357ecd4-wf23HAOg02MWenYVfaLwtA@public.gmane.org>
2016-08-21 12:11 ` Julio Guerra
2016-08-22 14:04 ` Oliver Neukum
[not found] ` <1471874667.17783.19.camel-IBi9RG/b67k@public.gmane.org>
2016-09-16 16:24 ` Julio Guerra
[not found] ` <f97a97ee-4d22-145c-5f73-472ee4f03968-wf23HAOg02MWenYVfaLwtA@public.gmane.org>
2016-09-20 8:45 ` Oliver Neukum [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1474361134.4358.7.camel@suse.com \
--to=oneukum-ibi9rg/b67k@public.gmane.org \
--cc=julio-wf23HAOg02MWenYVfaLwtA@public.gmane.org \
--cc=linux-serial-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.