On Fri, Mar 05, 2021 at 01:09:16PM +0100, Sedat Dilek wrote:
On Mon, Mar 1, 2021 at 4:53 PM Alan Stern [off-list ref] wrote:
[ ... ]
quoted
You can use usbmon on bus 4 to record the USB traffic. It may indicate
why the resets occur.
Hi Alan,
I followed the instructions in [1].
root# modprobe -v usbmon
root# ls /sys/kernel/debug/usb/usbmon
0s 0u 1s 1t 1u 2s 2t 2u 3s 3t 3u 4s 4t 4u
root# cat /sys/kernel/debug/usb/usbmon/4u > /tmp/usbmon-log_4u.txt
[ Ctrl+C ]
I recorded 13:03 - 13:04 (one minute).
So these xhci-resets should be included:
[Fri Mar 5 13:03:07 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
number 2 using xhci_hcd
[Fri Mar 5 13:03:07 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
number 2 using xhci_hcd
[Fri Mar 5 13:03:27 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
number 2 using xhci_hcd
[Fri Mar 5 13:03:27 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
number 2 using xhci_hcd
[Fri Mar 5 13:03:27 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
number 2 using xhci_hcd
[Fri Mar 5 13:03:28 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
number 2 using xhci_hcd
[Fri Mar 5 13:03:28 2021] usb 4-1: reset SuperSpeed Gen 1 USB device
number 2 using xhci_hcd
The usbmon-log is attached.
Unsure how to interpret the log - the kernel-doc says `raw data`.
How can I bring this into a human-readable format?
Can you give me a hand?
Don't worry about trying to decode the output. To me it looks like the
drive crashes and needs to be reset at times when the computer sends it
an ATA command. (Not all ATA commands, but some.) You can prevent this
by setting the following module parameter for the usb-storage driver:
quirks=174c:55aa:t
where the two numbers are the Vendor and Product IDs for the external
drive, and the 't' is a quirks flag saying not to use any ATA commands.
If this module parameter fixes the problem, we can add a permanent quirk
setting to the kernel.
Alan Stern