From: "Michał Pecio" <michal.pecio@gmail.com>
To: Mathias Nyman <mathias.nyman@linux.intel.com>
Cc: gregkh@linuxfoundation.org, ki.chiang65@gmail.com,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
mathias.nyman@intel.com, stable@vger.kernel.org
Subject: Re: [PATCH v4 1/1] xhci: Correctly handle last TRB of isoc TD on Etron xHCI host
Date: Mon, 10 Feb 2025 09:57:36 +0100 [thread overview]
Message-ID: <20250210095736.6607f098@foxbook> (raw)
In-Reply-To: <b19218ab-5248-47ba-8111-157818415247@linux.intel.com>
On Fri, 7 Feb 2025 14:06:54 +0200, Mathias Nyman wrote:
> On 6.2.2025 0.42, Michał Pecio wrote:
> > error_mid_td can cope with hosts which don't produce the extra
> > success event, it was done this way to deal with buggy NECs. The
> > cost is one more ESIT of latency on TDs with error.
>
> It makes giving back the TD depend on a future event we can't
> guarantee.
For the record, this is not the same disaster as failing to give back
an unlinked URB. Situation here is no different from usual 'error mid
TD' case on buggy HCs (known so far: NEC uPD720200 and most if not all
of ASMedia, including at least 1st gen AMD Promontory).
We are owed an event in the next ESIT, worst case it will be something
weird like Missed Service or Ring Underrun. I've sent you some patches
for that, they also apply to the existing NEC/ASMedia problem.
> I still think it better fits the spurious success case.
> It's not an error mid TD, it's a spurious success event sent by host
> after a completion (error) event for the last TRB in the TD.
Legally you are right of course, but materially we know what happens:
the damn thing still holds an internal reference to the last TRB for
some unknown reason. We would need to know that it doesn't actually
use it for anything and will not mind the TRB being overwritten.
This may well be true, but I guess I prefer known evils over unknown
ones so I immediately suggested using 'erorr mid TD' instead.
> Making this change to error_mid_td code also makes that code more
> confusing and harder to follow.
I will see if I can come up with something clean.
I will also try the patch you sent, it looks like it would work.
One thing I don't like is that it fails to distinguish the known
spurious events from other invalid events due to hardware or kernel
bugs. In the past last_td_was_short caused me similar problems.
Regards,
Michal
next prev parent reply other threads:[~2025-02-10 8:57 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-05 5:37 [PATCH v4 0/1] xhci: Some improvement for Etron xHCI host Kuangyi Chiang
2025-02-05 5:37 ` [PATCH v4 1/1] xhci: Correctly handle last TRB of isoc TD on " Kuangyi Chiang
2025-02-05 14:17 ` Mathias Nyman
2025-02-05 15:17 ` Mathias Nyman
2025-02-07 1:38 ` Kuangyi Chiang
2025-02-10 6:09 ` Kuangyi Chiang
2025-02-05 22:42 ` Michał Pecio
2025-02-07 12:06 ` Mathias Nyman
2025-02-10 8:57 ` Michał Pecio [this message]
2025-02-11 12:36 ` [PATCH] usb: xhci: Handle quirky SuperSpeed isoc error reporting by Etron HCs Michal Pecio
2025-02-12 5:59 ` Kuangyi Chiang
2025-02-12 8:12 ` Michał Pecio
2025-02-28 16:13 ` Mathias Nyman
2025-02-28 16:18 ` [RFT PATCH] xhci: Handle spurious events on Etron host isoc enpoints Mathias Nyman
2025-02-28 19:57 ` kernel test robot
2025-02-28 20:07 ` kernel test robot
2025-03-01 2:05 ` Kuangyi Chiang
2025-03-03 3:29 ` Kuangyi Chiang
2025-03-03 8:28 ` Mathias Nyman
2025-03-03 10:34 ` Michał Pecio
2025-03-03 15:08 ` Mathias Nyman
2025-03-06 8:50 ` Michał Pecio
2025-02-28 17:11 ` [PATCH] usb: xhci: Handle quirky SuperSpeed isoc error reporting by Etron HCs Michał Pecio
2025-02-28 17:14 ` Michał Pecio
2025-02-07 1:28 ` [PATCH v4 1/1] xhci: Correctly handle last TRB of isoc TD on Etron xHCI host Kuangyi Chiang
2025-02-05 21:45 ` Michał Pecio
2025-02-07 6:59 ` Kuangyi Chiang
2025-02-07 9:51 ` Michał Pecio
2025-02-10 6:18 ` Kuangyi Chiang
2025-03-17 10:12 ` [PATCH v4 0/1] xhci: Some improvement for " Michał Pecio
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=20250210095736.6607f098@foxbook \
--to=michal.pecio@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=ki.chiang65@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
--cc=mathias.nyman@linux.intel.com \
--cc=stable@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox