From: Mathias Nyman <mathias.nyman@linux.intel.com>
To: "Michał Pecio" <michal.pecio@gmail.com>, linux-usb@vger.kernel.org
Cc: Mathias Nyman <mathias.nyman@intel.com>
Subject: Re: "Transfer event TRB DMA ptr not part of current TD" spam after USB disconnection
Date: Mon, 15 Jan 2024 15:58:53 +0200 [thread overview]
Message-ID: <a4573246-7047-dba3-efbf-3f88a952e322@linux.intel.com> (raw)
In-Reply-To: <20240114150647.18a46131@foxbook>
On 14.1.2024 16.06, Michał Pecio wrote:
> Hi Mathias,
>
> I found that the code which causes my problems was specifically added
> by your commit d104d0152a97f ("xhci: fix isoc endpoint dequeue from
> advancing too far on transaction error").
>
> Reverting this change removes the disconnection spam on my two NEC
> hosts (different boards but same 1033:0194 rev 03 chip IDs). I have no
> other hosts available to try at this time.
>
> It also resolves similar spam and subsequent stream lockup on one
> particular pair of host adapter and device, which suffers intermittent
> transaction errors for reasons currently unknown. With d104d0152a97f
> reverted this device loses frames as expected but keeps going.
>
> So this surely looks like the right thing to do with my NEC hosts, but
> of course d104d0152a97f was done for a reason, which apparently is that
> some (unspecified) other hosts really work differently.
Thanks for debugging this issue.
Most hosts trigger transaction error events for either every TRB as
xhci spec says, (xhci section 4.10.2) or only on the last TRB in a TD
which has the "interrupt on completion" IOC flag set.
If we revert d104d0152a97f and finish the td on the first error event
then we will get a similar "Transfer event TRB DMA ptr not part of current TD"
message for each remaing TRB in that TD that issues a error event.
So this case where only the fist TRB triggers an error event isn't yet
handled by the driver.
I'll take a look at it.
Can you try out some testpatches if I post them?
Thanks
Mathias
next prev parent reply other threads:[~2024-01-15 13:57 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-12 22:52 "Transfer event TRB DMA ptr not part of current TD" spam after USB disconnection Michał Pecio
2024-01-13 20:47 ` Michał Pecio
2024-01-14 14:06 ` Michał Pecio
2024-01-15 13:58 ` Mathias Nyman [this message]
2024-01-15 16:27 ` Michał Pecio
2024-01-16 15:36 ` [RFT PATCH] xhci: process isoc TD properly when there was an error mid TD Mathias Nyman
2024-01-16 22:20 ` Michał Pecio
2024-01-17 10:46 ` Mathias Nyman
2024-01-17 17:49 ` Michał Pecio
2024-01-18 11:00 ` Isochronous error handling bug on VIA VL805 Michał Pecio
2024-01-18 11:10 ` Michał Pecio
2024-01-18 13:54 ` Mathias Nyman
2024-01-18 13:56 ` [RFT PATCH v2] xhci: process isoc TD properly when there was an error mid TD Mathias Nyman
2024-01-18 22:16 ` Michał Pecio
2024-01-19 10:49 ` Mathias Nyman
2024-01-19 10:58 ` [RTF PATCH v3] " Mathias Nyman
2024-01-19 21:54 ` Michał Pecio
2024-01-22 9:03 ` Michał Pecio
2024-01-22 13:37 ` Mathias Nyman
2024-01-22 17:10 ` Michał Pecio
2024-01-22 11:47 ` Mathias Nyman
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=a4573246-7047-dba3-efbf-3f88a952e322@linux.intel.com \
--to=mathias.nyman@linux.intel.com \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
--cc=michal.pecio@gmail.com \
/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.