From: Ross Zwisler <zwisler@google.com>
To: Mathias Nyman <mathias.nyman@linux.intel.com>
Cc: Andrzej Pietrasiewicz <andrzej.p@collabora.com>,
"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
"kernel@collabora.com" <kernel@collabora.com>
Subject: Re: xhci problem -> general protection fault
Date: Tue, 8 Dec 2020 10:24:40 -0700 [thread overview]
Message-ID: <X8+22DeNDn1A7X+N@google.com> (raw)
In-Reply-To: <b6eba37b-c78b-fc99-5aca-f9e5856e80ac@linux.intel.com>
On Fri, Dec 04, 2020 at 08:07:30PM +0200, Mathias Nyman wrote:
<>
> Ok, thanks.
>
> Then the rootcause remains unknown.
> For some reason the endpoint context dequeue pointer field contains zero
> instead of the new dequeue pointer.
> The (output) endpoint context is supposed to be written only by the controller.
>
> Time to change strategy and start to detect and treat the symptoms instead.
>
> I wrote a patch that detects the 0-dequeue pointer and issues a
> new Set TR Deq pointer command. Hopefully that works.
> patch added to same branch, can you try it out?
>
> 3f6326766abc xhci: retry setting new dequeue if xHC hardware failed to update it
>
> I didn't set a retry limit yet so if it doesn't work it might retry forever.
Here are some logs when running with that commit:
https://gist.github.com/rzwisler/17923c9dedf2b914254eadd1cd294a4c
I think we only consistently get the clean failure case with the dequeue
pointer being 0 if CONFIG_INTEL_IOMMU_DEFAULT_ON=y.
If that option is set to 'n', we get the same failure where the xHCI
controller totally dies (log "CONFIG_INTEL_IOMMU_DEFAULT_ON=n" in the gist).
With CONFIG_INTEL_IOMMU_DEFAULT_ON=y we do seem to live through multiple
errors, but as soon as I try to use the device normally afterwards it seems to
spin forever with these messages:
xhci_hcd 0000:00:14.0: Looking for event-dma 00000000fff0a330 trb-start 00000000f8884000 trb-end 0000000000000000 seg-start 00000000f8884000 seg-end 00000000f8884ff0
Are you able to reproduce this with Andrzej's bulk-cancel script? I think you
probably just need a device which accepts bulk transfer commands? In my most
recent reproductions my servo hardware wasn't even attached to a device, so I
don't really think it's doing anything except sitting there and receiving
BULK_IN commands. I'm doing this to two devices simultaneously.
next prev parent reply other threads:[~2020-12-08 17:25 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-17 15:30 xhci problem -> general protection fault Andrzej Pietrasiewicz
2020-09-18 10:50 ` Mathias Nyman
2020-09-18 14:20 ` Andrzej Pietrasiewicz
2020-09-25 13:40 ` Mathias Nyman
2020-09-25 21:05 ` Ross Zwisler
2020-09-28 13:32 ` Andrzej Pietrasiewicz
2020-09-29 7:13 ` Mathias Nyman
2020-10-01 14:13 ` Andrzej Pietrasiewicz
2020-09-28 22:35 ` Mathias Nyman
2020-10-01 16:43 ` zwisler
2020-10-12 19:20 ` Mathias Nyman
2020-10-12 21:53 ` zwisler
2020-10-13 7:49 ` Mathias Nyman
2020-10-13 8:29 ` Andrzej Pietrasiewicz
2020-10-13 16:44 ` zwisler
2020-11-19 16:52 ` Ross Zwisler
2020-11-23 15:06 ` Mathias Nyman
2020-12-02 22:59 ` Ross Zwisler
2020-12-04 18:07 ` Mathias Nyman
2020-12-08 17:24 ` Ross Zwisler [this message]
2020-12-09 13:11 ` Mathias Nyman
2020-12-09 18:54 ` Ross Zwisler
2020-12-30 12:33 ` Mathias Nyman
2021-01-06 18:52 ` Ross Zwisler
2021-01-07 8:57 ` Mathias Nyman
2021-01-07 16:07 ` Ross Zwisler
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=X8+22DeNDn1A7X+N@google.com \
--to=zwisler@google.com \
--cc=andrzej.p@collabora.com \
--cc=kernel@collabora.com \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@linux.intel.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.