From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Mathias Nyman <mathias.nyman@linux.intel.com>
Cc: Mike Galbraith <efault@gmx.de>,
gregkh@linuxfoundation.org, linux-usb@vger.kernel.org,
Hans de Goede <hdegoede@redhat.com>, Li Jun <jun.li@nxp.com>
Subject: Re: [PATCH 3/3] xhci: Don't create stream debugfs files with spinlock held.
Date: Thu, 29 Oct 2020 12:38:05 +0100 [thread overview]
Message-ID: <20201029113805.tdsissnjq4acemle@linutronix.de> (raw)
In-Reply-To: <a5d5a21c-d6ff-1097-b9ca-e0147658c8c6@linux.intel.com>
On 2020-10-29 13:22:20 [+0200], Mathias Nyman wrote:
> On 29.10.2020 13.11, Mike Galbraith wrote:
> > On Thu, 2020-10-29 at 11:41 +0200, Mathias Nyman wrote:
> >> Can you check if this can be reproduced with 5.9 kernel?
> >
> > Nope, 5.9.2 didn't reproduce.
> >
>
> Very odd.
> It might be hard to reproduce as it requires xhci ring expansion to trigger it,
> meaning at some point there is so much data queued to a device the current ring buffer
> can't fit it.
>
> Other possibility is that there were some radix tree changes in 5.10-rc1, haven't looked into those.
This came with commit
673d74683627b ("usb: xhci: add debugfs support for ep with stream")
which is appeared in v5.10-rc1. This hunk below works around it:
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 482fe8c5e3b47..699777fb523b6 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -3533,11 +3533,13 @@ static int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev,
xhci_dbg(xhci, "Slot %u ep ctx %u now has streams.\n",
udev->slot_id, ep_index);
vdev->eps[ep_index].ep_state |= EP_HAS_STREAMS;
- xhci_debugfs_create_stream_files(xhci, vdev, ep_index);
}
xhci_free_command(xhci, config_cmd);
spin_unlock_irqrestore(&xhci->lock, flags);
+ for (i = 0; i < num_eps; i++)
+ xhci_debugfs_create_stream_files(xhci, vdev, ep_index);
+
/* Subtract 1 for stream 0, which drivers can't use */
return num_streams - 1;
This makes the warning go away here, I'm not 100% sure that this okay.
One thing I noticed: free_streams() does not remove the debugfs file so:
| $ cd /sys/bus/usb/drivers/uas
| $ echo 2-1:1.0 > bind
| $ echo 2-1:1.0 > unbind
and the kernel log shows:
|sd 7:0:0:0: [sdb] Synchronizing SCSI cache
|sd 7:0:0:0: [sdb] Synchronize Cache(10) failed: Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK
|debugfs: File 'stream_id' in directory 'ep07' already present!
|debugfs: File 'stream_context_array' in directory 'ep07' already present!
|debugfs: File 'stream_id' in directory 'ep07' already present!
|debugfs: File 'stream_context_array' in directory 'ep07' already present!
|scsi host7: uas
|scsi 7:0:0:0: Direct-Access QEMU QEMU HARDDISK 2.5+ PQ: 0 ANSI: 5
|sd 7:0:0:0: Attached scsi generic sg2 type 0
|sd 7:0:0:0: [sdb] 262144 512-byte logical blocks: (134 MB/128 MiB)
|sd 7:0:0:0: [sdb] Write Protect is off
|sd 7:0:0:0: [sdb] Mode Sense: 63 00 00 08
|sd 7:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
|sd 7:0:0:0: [sdb] Attached SCSI disk
> -Mathias
Sebastian
next prev parent reply other threads:[~2020-10-29 11:38 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-28 20:31 [PATCH 0/3] xhci fixes for usb-linus Mathias Nyman
2020-10-28 20:31 ` [PATCH 1/3] xhci: Fix sizeof() mismatch Mathias Nyman
2020-10-28 20:31 ` [PATCH 2/3] usb: xhci: Workaround for S3 issue on AMD SNPS 3.0 xHC Mathias Nyman
2020-10-28 20:31 ` [PATCH 3/3] xhci: Don't create stream debugfs files with spinlock held Mathias Nyman
2020-10-29 6:03 ` Mike Galbraith
2020-10-29 9:41 ` Mathias Nyman
2020-10-29 9:42 ` Sebastian Andrzej Siewior
2020-10-29 10:23 ` Mike Galbraith
2020-10-29 10:37 ` Sebastian Andrzej Siewior
2020-10-29 11:11 ` Mike Galbraith
2020-10-29 11:22 ` Mathias Nyman
2020-10-29 11:38 ` Sebastian Andrzej Siewior [this message]
2020-10-29 12:44 ` Jun Li
2020-10-29 13:08 ` Mathias Nyman
2020-10-29 15:10 ` Sebastian Andrzej Siewior
2020-10-29 16:26 ` David Laight
2020-10-29 17:43 ` Sebastian Andrzej Siewior
2020-10-30 8:01 ` Jun Li
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=20201029113805.tdsissnjq4acemle@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=efault@gmx.de \
--cc=gregkh@linuxfoundation.org \
--cc=hdegoede@redhat.com \
--cc=jun.li@nxp.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).