NetBSD Problem Report #54592
From wiz@yt.nih.at Wed Oct 2 10:51:23 2019
Return-Path: <wiz@yt.nih.at>
Received: from mail.netbsd.org (mail.netbsd.org [199.233.217.200])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(Client CN "mail.NetBSD.org", Issuer "mail.NetBSD.org CA" (not verified))
by mollari.NetBSD.org (Postfix) with ESMTPS id 754A07A156
for <gnats-bugs@gnats.NetBSD.org>; Wed, 2 Oct 2019 10:51:23 +0000 (UTC)
Message-Id: <20191002105118.5658F2AC16B@yt.nih.at>
Date: Wed, 2 Oct 2019 12:51:18 +0200 (CEST)
From: Thomas Klausner <wiz@NetBSD.org>
Reply-To: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@NetBSD.org
Subject: uhub error when nvme is using msi(x) interrupts
X-Send-Pr-Version: 3.95
>Number: 54592
>Category: kern
>Synopsis: uhub error when nvme is using msi(x) interrupts
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Oct 02 10:55:00 +0000 2019
>Last-Modified: Thu Oct 17 11:35:00 +0000 2019
>Originator: Thomas Klausner
>Release: NetBSD 9.99.15
>Organization:
Curiosity is the very basis of education and if you tell me that
curiosity killed the cat, I say only that the cat died nobly.
- Arnold Edinborough
>Environment:
Architecture: x86_64
Machine: amd64
>Description:
On this system:
[ 1.000746] xhci2 at pci13 dev 0 function 3: vendor 1022 product 145f (rev. 0x00)
[ 1.000746] allocated pic msix8 type edge pin 0 level 6 to cpu1 slot 2 idt entry 140
[ 1.000746] xhci2: interrupting at msix8 vec 0
[ 1.000746] xhci2: xHCI version 1.0
[ 1.000746] usb4 at xhci2: USB revision 3.0
[ 1.000746] usb5 at xhci2: USB revision 2.0
[ 1.000746] usb5 at xhci2: USB revision 2.0
[ 2.549742] uhub5 at usb5: NetBSD (0000) xHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 0
[ 2.549742] uhub5: 4 ports with 4 removable, self powered
I see
[ 9.153939] uhub5: autoconfiguration error: device problem, disabling port 2
[ 15.047687] uhub5: autoconfiguration error: device problem, disabling port 3
which disables the USB (console) keyboard and mouse.
This diff to the nvme driver:
Index: nvme_pci.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/nvme_pci.c,v
retrieving revision 1.26
diff -u -r1.26 nvme_pci.c
--- nvme_pci.c 23 Jan 2019 06:56:19 -0000 1.26
+++ nvme_pci.c 10 Jun 2019 08:18:33 -0000
@@ -64,7 +64,7 @@
#include <dev/ic/nvmereg.h>
#include <dev/ic/nvmevar.h>
-int nvme_pci_force_intx = 0;
+int nvme_pci_force_intx = 1;
int nvme_pci_mpsafe = 1;
int nvme_pci_mq = 1; /* INTx: ioq=1, MSI/MSI-X: ioq=ncpu */
which I needed to make nvme work for some months, makes uhub5 work(!?).
The diff is not necessary any longer since this commit:
Author: nonaka <nonaka@NetBSD.org>
Date: Fri Sep 20 05:32:42 2019 +0000
Don't set Phase Tag bit of Completion Queue entry at nvme_poll_done().
A new completion queue entry check incorrectly determined that there was
a Completion Queue entry for a command that was not submitted.
Fix PR kern/54275, PR kern/54503, PR kern/54532.
which made the uhub issue visible.
I've backported the diff to a July 19 (8.99.51) kernel and uhub failed then already.
Here's the dmesg output for nvme:
[ 1.000746] nvme0 at pci8 dev 0 function 0: vendor 144d product a808 (rev. 0x00)
[ 1.000746] nvme0: NVMe 1.3
[ 1.000746] nvme0: for admin queue interrupting at msix3 vec 0
[ 1.000746] nvme0: Samsung SSD 970 EVO Plus 1TB, firmware 1B2QEXM7, serial S4EWNF0M404219L
[ 1.000746] nvme0: for io queue 1 interrupting at msix3 vec 1 affinity to cpu0
[ 1.000746] nvme0: for io queue 2 interrupting at msix3 vec 2 affinity to cpu1
[ 1.000746] nvme0: for io queue 3 interrupting at msix3 vec 3 affinity to cpu2
[ 1.000746] nvme0: for io queue 4 interrupting at msix3 vec 4 affinity to cpu3
[ 1.000746] nvme0: for io queue 5 interrupting at msix3 vec 5 affinity to cpu4
[ 1.000746] nvme0: for io queue 6 interrupting at msix3 vec 6 affinity to cpu5
[ 1.000746] nvme0: for io queue 7 interrupting at msix3 vec 7 affinity to cpu6
[ 1.000746] nvme0: for io queue 8 interrupting at msix3 vec 8 affinity to cpu7
[ 1.000746] nvme0: for io queue 9 interrupting at msix3 vec 9 affinity to cpu8
[ 1.000746] nvme0: for io queue 10 interrupting at msix3 vec 10 affinity to cpu9
[ 1.000746] nvme0: for io queue 11 interrupting at msix3 vec 11 affinity to cpu10
[ 1.000746] nvme0: for io queue 12 interrupting at msix3 vec 12 affinity to cpu11
[ 1.000746] nvme0: for io queue 13 interrupting at msix3 vec 13 affinity to cpu12
[ 1.000746] nvme0: for io queue 14 interrupting at msix3 vec 14 affinity to cpu13
[ 1.000746] nvme0: for io queue 15 interrupting at msix3 vec 15 affinity to cpu14
[ 1.000746] nvme0: for io queue 16 interrupting at msix3 vec 16 affinity to cpu15
[ 1.000746] nvme0: for io queue 17 interrupting at msix3 vec 17 affinity to cpu16
[ 1.000746] nvme0: for io queue 18 interrupting at msix3 vec 18 affinity to cpu17
[ 1.000746] nvme0: for io queue 19 interrupting at msix3 vec 19 affinity to cpu18
[ 1.000746] nvme0: for io queue 20 interrupting at msix3 vec 20 affinity to cpu19
[ 1.000746] nvme0: for io queue 21 interrupting at msix3 vec 21 affinity to cpu20
[ 1.000746] nvme0: for io queue 22 interrupting at msix3 vec 22 affinity to cpu21
[ 1.000746] nvme0: for io queue 23 interrupting at msix3 vec 23 affinity to cpu22
[ 1.000746] nvme0: for io queue 24 interrupting at msix3 vec 24 affinity to cpu23
[ 1.000746] nvme0: for io queue 25 interrupting at msix3 vec 25 affinity to cpu24
[ 1.000746] nvme0: for io queue 26 interrupting at msix3 vec 26 affinity to cpu25
[ 1.000746] nvme0: for io queue 27 interrupting at msix3 vec 27 affinity to cpu26
[ 1.000746] nvme0: for io queue 28 interrupting at msix3 vec 28 affinity to cpu27
[ 1.000746] nvme0: for io queue 29 interrupting at msix3 vec 29 affinity to cpu28
[ 1.000746] nvme0: for io queue 30 interrupting at msix3 vec 30 affinity to cpu29
[ 1.000746] nvme0: for io queue 31 interrupting at msix3 vec 31 affinity to cpu30
[ 1.000746] nvme0: for io queue 32 interrupting at msix3 vec 32 affinity to cpu31
[ 1.000746] ld0 at nvme0 nsid 1
>How-To-Repeat:
Boot the system, try pressing a key, look at the logs.
>Fix:
It has been suggested that this is a bug in the MSI(X) code.
>Audit-Trail:
From: Thomas Klausner <wiz@NetBSD.org>
To: gnats-bugs@netbsd.org
Cc:
Subject: Re: kern/54592: uhub error when nvme is using msi(x) interrupts
Date: Wed, 2 Oct 2019 13:03:34 +0200
nick asked for vmstat -i output:
interrupt total rate
TLB shootdown 3147 2
cpu0 timer 139814 99
msi1 vec 0 101 0
msix2 vec 0 423 0
msix2 vec 1 1008 0
msix2 vec 2 2 0
msix3 vec 1 680 0
msix3 vec 3 292 0
msix3 vec 8 3 0
msix3 vec 9 2 0
msix3 vec 10 166 0
msix3 vec 12 25 0
msix3 vec 13 418 0
msix3 vec 14 1013 0
msix3 vec 15 7 0
msix3 vec 16 18 0
msix3 vec 17 86 0
msix3 vec 19 22 0
msix3 vec 20 87 0
msix3 vec 21 1 0
msix3 vec 22 92 0
msix3 vec 24 56 0
msix3 vec 26 5 0
msix3 vec 29 234 0
msix3 vec 30 482 0
msix3 vec 32 150 0
msi7 vec 0 1 0
ioapic2 pin 0 82960 59
Total 231295 164
There is no line for msix0, msix4 nor msix8.
[ 1.000746] xhci0 at pci1 dev 0 function 0: vendor 1022 product 43ba (rev. 0x02)
[ 1.000746] xhci0: interrupting at msix0 vec 0
[ 1.000746] xhci0: xHCI version 1.10
[ 1.000746] usb0 at xhci0: USB revision 3.1
[ 1.000746] usb1 at xhci0: USB revision 2.0
[ 1.000746] xhci1 at pci9 dev 0 function 3: vendor 1022 product 145f (rev. 0x00)
[ 1.000746] xhci1: interrupting at msix4 vec 0
[ 1.000746] xhci1: xHCI version 1.0
[ 1.000746] usb2 at xhci1: USB revision 3.0
[ 1.000746] usb3 at xhci1: USB revision 2.0
[ 1.000746] xhci2 at pci13 dev 0 function 3: vendor 1022 product 145f (rev. 0x00)
[ 1.000746] allocated pic msix8 type edge pin 0 level 6 to cpu1 slot 2 idt entry 140
[ 1.000746] xhci2: interrupting at msix8 vec 0
[ 1.000746] xhci2: xHCI version 1.0
[ 1.000746] usb4 at xhci2: USB revision 3.0
[ 1.000746] usb5 at xhci2: USB revision 2.0
Thomas
From: Thomas Klausner <wiz@NetBSD.org>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc:
Subject: Re: kern/54592: uhub error when nvme is using msi(x) interrupts
Date: Wed, 2 Oct 2019 13:18:29 +0200
intrctl list/vmstat -vi show the xhci entries though:
$ intrctl list
interrupt id CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 CPU8 CPU9 CPU10 CPU11 CPU12 CPU13 CPU14 CPU15 CPU16 CPU17 CPU18 CPU19 CPU20 CPU21 CPU22 CPU23 CPU24 CPU25 CPU26 CPU27 CPU28 CPU29 CPU30 CPU31 device name(s)
ioapic0 pin 9 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 acpi SCI
msix0 vec 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xhci0
msi1 vec 0 93* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ahcisata0
msix2 vec 0 0 44* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm0TXRX0
msix2 vec 1 0 0 142* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm0TXRX1
msix2 vec 2 1* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm0LINK
msix3 vec 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 adminq
msix3 vec 1 1158* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq1
msix3 vec 2 0 693* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq2
msix3 vec 3 0 0 22* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq3
msix3 vec 4 0 0 0 12* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq4
msix3 vec 5 0 0 0 0 27* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq5
msix3 vec 6 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq6
msix3 vec 7 0 0 0 0 0 0 159* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq7
msix3 vec 8 0 0 0 0 0 0 0 48* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq8
msix3 vec 9 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq9
msix3 vec 10 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq10
msix3 vec 11 0 0 0 0 0 0 0 0 0 0 4* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq11
msix3 vec 12 0 0 0 0 0 0 0 0 0 0 0 160* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq12
msix3 vec 13 0 0 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq13
msix3 vec 14 0 0 0 0 0 0 0 0 0 0 0 0 0 391* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq14
msix3 vec 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq15
msix3 vec 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 18* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq16
msix3 vec 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 337* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq17
msix3 vec 18 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 121* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq18
msix3 vec 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq19
msix3 vec 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq20
msix3 vec 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 0 0 0 0 0 0 nvme0 ioq21
msix3 vec 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11* 0 0 0 0 0 0 0 0 0 0 nvme0 ioq22
msix3 vec 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 94* 0 0 0 0 0 0 0 0 0 nvme0 ioq23
msix3 vec 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 25* 0 0 0 0 0 0 0 0 nvme0 ioq24
msix3 vec 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 0 0 nvme0 ioq25
msix3 vec 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 0 0 nvme0 ioq26
msix3 vec 27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8* 0 0 0 0 0 nvme0 ioq27
msix3 vec 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 0 nvme0 ioq28
msix3 vec 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0* 0 0 0 nvme0 ioq29
msix3 vec 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4* 0 0 nvme0 ioq30
msix3 vec 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 205* 0 nvme0 ioq31
msix3 vec 32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2* nvme0 ioq32
msix4 vec 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xhci1
msi5 vec 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ahcisata1
msi6 vec 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hdaudio0
msi7 vec 0 1* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hdaudio1
msix8 vec 0 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xhci2
msi9 vec 0 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ahcisata2
ioapic2 pin 0 1343* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nouveau0
$ vmstat -v -i
interrupt total rate
TLB shootdown 3058 41
cpu0 timer 7236 97
ioapic0 pin 9 0 0
msix0 vec 0 0 0
msi1 vec 0 93 1
msix2 vec 0 51 0
msix2 vec 1 188 2
msix2 vec 2 1 0
msix3 vec 0 0 0
msix3 vec 1 1158 15
msix3 vec 2 693 9
msix3 vec 3 120 1
msix3 vec 4 12 0
msix3 vec 5 31 0
msix3 vec 6 0 0
msix3 vec 7 159 2
msix3 vec 8 48 0
msix3 vec 9 0 0
msix3 vec 10 0 0
msix3 vec 11 4 0
msix3 vec 12 160 2
msix3 vec 13 0 0
msix3 vec 14 391 5
msix3 vec 15 2 0
msix3 vec 16 18 0
msix3 vec 17 337 4
msix3 vec 18 121 1
msix3 vec 19 0 0
msix3 vec 20 0 0
msix3 vec 21 0 0
msix3 vec 22 11 0
msix3 vec 23 94 1
msix3 vec 24 25 0
msix3 vec 25 0 0
msix3 vec 26 0 0
msix3 vec 27 8 0
msix3 vec 28 0 0
msix3 vec 29 0 0
msix3 vec 30 4 0
msix3 vec 31 205 2
msix3 vec 32 2 0
msix4 vec 0 0 0
msi5 vec 0 0 0
msi6 vec 0 0 0
msi7 vec 0 1 0
msix8 vec 0 0 0
msi9 vec 0 0 0
ioapic2 pin 0 3449 46
Total 17680 238
From: Thomas Klausner <wiz@NetBSD.org>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc:
Subject: Re: kern/54592: uhub error when nvme is using msi(x) interrupts
Date: Wed, 2 Oct 2019 14:21:52 +0200
Same system booted with the nvme diff, after plugging in the keyboard
in all USB ports (xhci is at msix0, 3, 7 in this setup):
$ intrctl list
interrupt id CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 CPU8 CPU9 CPU10 CPU11 CPU12 CPU13 CPU14 CPU15 CPU16 CPU17 CPU18 CPU19 CPU20 CPU21 CPU22 CPU23 CPU24 CPU25 CPU26 CPU27 CPU28 CPU29 CPU30 CPU31 device name(s)
ioapic0 pin 9 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 acpi SCI
msix0 vec 0 34* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xhci0
msi1 vec 0 87* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ahcisata0
msix2 vec 0 0 71* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm0TXRX0
msix2 vec 1 0 0 316* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm0TXRX1
msix2 vec 2 1* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 wm0LINK
ioapic1 pin 12 5315* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nvme0
msix3 vec 0 30* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xhci1
msi4 vec 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ahcisata1
msi5 vec 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hdaudio0
msi6 vec 0 1* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 hdaudio1
msix7 vec 0 75* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 xhci2
msi8 vec 0 0* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ahcisata2
ioapic2 pin 0 7548* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 nouveau0
$ vmstat -i
interrupt total rate
TLB shootdown 3140 18
cpu0 timer 16734 98
msix0 vec 0 34 0
msi1 vec 0 87 0
msix2 vec 0 81 0
msix2 vec 1 348 2
msix2 vec 2 1 0
ioapic1 pin 12 5341 31
msix3 vec 0 30 0
msi6 vec 0 1 0
msix7 vec 0 75 0
ioapic2 pin 0 9516 55
Total 35388 208
dmesg extract:
[ 1.000956] nvme0 at pci8 dev 0 function 0: vendor 144d product a808 (rev. 0x00)
[ 1.000956] nvme0: NVMe 1.3
[ 1.000956] nvme0: interrupting at ioapic1 pin 12
[ 1.000956] nvme0: Samsung SSD 970 EVO Plus 1TB, firmware 1B2QEXM7, serial S4EWNF0M404219L
[ 1.000956] ld0 at nvme0 nsid 1
[ 1.000956] xhci0 at pci1 dev 0 function 0: vendor 1022 product 43ba (rev. 0x02)
[ 1.000956] xhci0: interrupting at msix0 vec 0
[ 1.000956] xhci0: xHCI version 1.10
[ 1.000956] usb0 at xhci0: USB revision 3.1
[ 1.000956] usb1 at xhci0: USB revision 2.0
[ 1.000956] xhci1 at pci9 dev 0 function 3: vendor 1022 product 145f (rev. 0x00)
[ 1.000956] xhci1: interrupting at msix3 vec 0
[ 1.000956] xhci1: xHCI version 1.0
[ 1.000956] usb2 at xhci1: USB revision 3.0
[ 1.000956] usb3 at xhci1: USB revision 2.0
[ 1.000956] xhci2 at pci13 dev 0 function 3: vendor 1022 product 145f (rev. 0x00)
[ 1.000956] xhci2: interrupting at msix7 vec 0
[ 1.000956] xhci2: xHCI version 1.0
[ 1.000956] usb4 at xhci2: USB revision 3.0
[ 1.000956] usb5 at xhci2: USB revision 2.0
From: Thomas Klausner <wiz@NetBSD.org>
To: NetBSD bugtracking <gnats-bugs@NetBSD.org>
Cc:
Subject: Re: kern/54592: uhub error when nvme is using msi(x) interrupts
Date: Thu, 17 Oct 2019 13:33:27 +0200
After some more testing - this doesn't affect all USB ports -- I think it only affects
uhub4 at usb4: NetBSD (0000) xHCI root hub (0000), class 9/0, rev 3.00/1.00, addr 0
uhub4: 4 ports with 4 removable, self powered
uhub5 at usb5: NetBSD (0000) xHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 0
uhub5: 4 ports with 4 removable, self powered
but
uhub0 at usb0: NetBSD (0000) xHCI root hub (0000), class 9/0, rev 3.00/1.00, addr 0
uhub0: 8 ports with 8 removable, self powered
uhub1 at usb1: NetBSD (0000) xHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 0
uhub1: 14 ports with 14 removable, self powered
uhub2 at usb2: NetBSD (0000) xHCI root hub (0000), class 9/0, rev 3.00/1.00, addr 0
uhub2: 4 ports with 4 removable, self powered
uhub3 at usb3: NetBSD (0000) xHCI root hub (0000), class 9/0, rev 2.00/1.00, addr 0
uhub3: 4 ports with 4 removable, self powered
are fine.
Thomas
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.43 2018/01/16 07:36:43 maya Exp $
$NetBSD: gnats_config.sh,v 1.9 2014/08/02 14:16:04 spz Exp $
Copyright © 1994-2017
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.