Re: [xhci] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci_hcd

From: Alan Stern
Date: Fri Mar 12 2021 - 13:06:29 EST


On Fri, Mar 12, 2021 at 06:41:58PM +0100, Sedat Dilek wrote:
> OK, now for the records:
>
> [ /etc/modprobe.d/usb-storage.conf ]
>
> # Add quirks for USB Mass Storage devices
> #
> # Link: https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
> #
> # Option #1: Use Kernel command line parameter
> # [1] Usage: usb-storage.quirks=<VID:PID:Flags>
> # [2] VendorID (VID) and ProductID (PID):
> # ASMedia M1042 USB-3.0 controller: VID: 174c PID: 55aa
> # [3] Flags:
> # t = NO_ATA_1X (don't allow ATA(12) and ATA(16) commands, uas only);
> # u = IGNORE_UAS (don't bind to the uas driver);
> # [4] Example: usb-storage.quirks=174c:55aa:t
> #
> # Option #2: Set quirk via sysfs
> # DEBUG: echo '174c:55aa:t' > /sys/module/usb_storage/parameters/quirks
> #
> # Option #3: Pass options via /etc/modprobe.d/usb-storage.conf (this file here)
> # XXX: Do NOT forget to run `update-initramfs` command!
> options usb-storage quirks=174c:55aa:t
> - EOF -
>
> With generating a new /boot/initrd.img via `update-initramfs` this
> looks good to me:
>
> root# LC_ALL=C dmesg -T | egrep -i 'quirks|reset|SCSI ioctl error'
> [Fri Mar 12 18:25:56 2021] xhci_hcd 0000:03:00.0: hcc params
> 0x0200f180 hci version 0x96 quirks 0x0000000000080000
> [Fri Mar 12 18:25:57 2021] usb-storage 4-1:1.0: Quirks match for vid
> 174c pid 55aa: 2400000
> [Fri Mar 12 18:25:57 2021] SCSI ioctl error, cmd A1, prog ata_id
> [Fri Mar 12 18:25:57 2021] SCSI ioctl error, cmd A1, prog ata_id
> [Fri Mar 12 18:25:58 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:25:58 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:25:58 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:25:59 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:25:59 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:25:59 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:25:59 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:00 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:00 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:00 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:00 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:00 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:01 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:01 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:01 2021] SCSI ioctl error, cmd A1, prog ata_id
> [Fri Mar 12 18:26:01 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:01 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:01 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:02 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:02 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:02 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:02 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:03 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:03 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:03 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
> number 2 using xhci_hcd
> [Fri Mar 12 18:26:24 2021] SCSI ioctl error, cmd A1, prog ata_id
> [Fri Mar 12 18:26:24 2021] SCSI ioctl error, cmd A1, prog ata_id
> [Fri Mar 12 18:26:29 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd A1, prog ata_id
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:30 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:31 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:31 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:31 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:31 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:31 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:31 2021] SCSI ioctl error, cmd 85, prog smartd
> [Fri Mar 12 18:26:39 2021] SCSI ioctl error, cmd A1, prog ata_id
> [Fri Mar 12 18:26:39 2021] SCSI ioctl error, cmd A1, prog ata_id
> [Fri Mar 12 18:26:40 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:40 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:40 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:40 2021] SCSI ioctl error, cmd A1, prog ata_id
> [Fri Mar 12 18:26:40 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:40 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:40 2021] SCSI ioctl error, cmd 85, prog hdparm
> [Fri Mar 12 18:26:43 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:43 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:44 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:44 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:44 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:44 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:44 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:44 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:44 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:44 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:49 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:49 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:49 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:49 2021] SCSI ioctl error, cmd 85, prog udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:26:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:28:09 2021] SCSI ioctl error, cmd 85, prog smartctl
> [Fri Mar 12 18:28:09 2021] SCSI ioctl error, cmd 85, prog smartctl
> [Fri Mar 12 18:28:10 2021] SCSI ioctl error, cmd 85, prog smartctl
> [Fri Mar 12 18:28:11 2021] SCSI ioctl error, cmd 85, prog smartctl
> [Fri Mar 12 18:36:49 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:36:49 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:36:49 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:36:49 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:36:49 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:36:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:36:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:36:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:36:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd
> [Fri Mar 12 18:36:50 2021] SCSI ioctl error, cmd 85, prog pool-udisksd

Although it's not conclusive, this log seems to indicate that ata_id
is the only program causing resets. Have you tried preventing the
ata_id program from running (for example, by renaming it)?

> Your diff now should say; s/SCSI ioctl error/SCSI ioctl info'.

No, it shouldn't. The log message itself is an info, but the event it
reports is an error.

> Alan, so "t" flags should be added as a quirks to linux-kernel sources...
>
> t = NO_ATA_1X (don't allow ATA(12) and ATA(16) commands, uas only);
>
> ...for my ASMedia USB-3.0 controller?

That's not at all clear. This is a very common and popular device,
and nobody else has reported these problems. It could be that
something is odd about your particular drive or computer, not these
drives in general.

Alan Stern