Date: Tue, 1 May 2018 21:22:30 -0700 From: Eitan Adler <lists@eitanadler.com> To: usb@freebsd.org Subject: Re: IRQ storm on xhci0 Message-ID: <CAF6rxgmdAVEvwC0cgaXE_Oz1Z84TjMPfKJ3MYPYm5KQbKH7E=Q@mail.gmail.com> In-Reply-To: <CAF6rxgk4u%2B2SrrOO18ceAJOWp1wMdGxAHfGVE40Y0t-=bzJFnQ@mail.gmail.com> References: <CAF6rxgk4u%2B2SrrOO18ceAJOWp1wMdGxAHfGVE40Y0t-=bzJFnQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 1 May 2018 at 20:53, Eitan Adler <lists@eitanadler.com> wrote: > Hi all, > > I am noticing consistently high IRQ rates on xhci0 > > example from vmstat -i right now: > irq259: xhci0 2222153 1876 > > and this is not the highest I've seen. > > My understanding is that a rate of 1876/s is insane for USB devices. > Any suggestions of what I can do to debug? > > Things I've tried: > - disabling MSI interrupts > - disabling MSI-X interrupts > - powering off all usb devices using usbconfig > - unplugging all USB devices > > One thing of note: > My mobo has a broken USB connector resulting in one of the two front > USB-3 ports not working. I'm guessing this is related but I'd like > some confirmation and/or a way to bypass the issue in software. with insane debugging enabled: ... [3542] xhci_check_transfer: slot=1 epno=6 stream=256 remainder=0 status=1 [3542] xhci_check_transfer: stream_id=0 [3542] xhci_check_transfer: Checking if 0x0000000099c01480 == (0x000000005df39980 .. 0x000000005df39aa0) [3542] xhci_check_transfer: Checking if 0x0000000099c01480 == (0x0000000099c01480 .. 0x0000000099c015a0) [3542] xhci_check_transfer: New remainder: 0 [3542] xhci_check_transfer: Following next TD [3542] xhci_interrupt_poll: event[103] = 32 (0x00000001167f8790 0x01000000 0x01078001) [3542] xhci_check_transfer: slot=1 epno=7 stream=256 remainder=0 status=1 [3542] xhci_check_transfer: stream_id=0 [3542] xhci_check_transfer: Checking if 0x00000001167f8790 == (0x000000005df7b980 .. 0x000000005df7baa0) [3542] xhci_check_transfer: Checking if 0x00000001167f8790 == (0x00000001167f8600 .. 0x00000001167f8720) [3542] xhci_interrupt_poll: event[104] = 32 (0x00000001167f8600 0x0d000031 0x01078001) [3542] xhci_check_transfer: slot=1 epno=7 stream=3328 remainder=49 status=13 [3542] xhci_check_transfer: stream_id=0 [3542] xhci_check_transfer: Checking if 0x00000001167f8600 == (0x000000005df7b980 .. 0x000000005df7baa0) [3542] xhci_check_transfer: Checking if 0x00000001167f8600 == (0x00000001167f8600 .. 0x00000001167f8720) [3542] xhci_check_transfer: New remainder: 49 [3542] xhci_check_transfer: TD has short pkt [3542] xhci_interrupt: real interrupt (status=0x00000008) [3542] xhci_interrupt_poll: event[105] = 32 (0x0000000099c01490 0x01000000 0x01068001) [3542] xhci_check_transfer: slot=1 epno=6 stream=256 remainder=0 status=1 [3542] xhci_check_transfer: stream_id=0 [3542] xhci_check_transfer: Checking if 0x0000000099c01490 == (0x000000005df39980 .. 0x000000005df39aa0) [3542] xhci_check_transfer: Checking if 0x0000000099c01490 == (0x0000000099c01300 .. 0x0000000099c01420) [3542] xhci_interrupt_poll: event[106] = 32 (0x0000000099c01300 0x01000000 0x01068001) [3542] xhci_check_transfer: slot=1 epno=6 stream=256 remainder=0 status=1 [3542] xhci_check_transfer: stream_id=0 [3542] xhci_check_transfer: Checking if 0x0000000099c01300 == (0x000000005df39980 .. 0x000000005df39aa0) [3542] xhci_check_transfer: Checking if 0x0000000099c01300 == (0x0000000099c01300 .. 0x0000000099c01420) [3542] xhci_check_transfer: New remainder: 0 [3542] xhci_check_transfer: Following next TD [3542] xhci_interrupt_poll: event[107] = 32 (0x00000001167f8610 0x01000000 0x01078001) [3542] xhci_check_transfer: slot=1 epno=7 stream=256 remainder=0 status=1 [3542] xhci_check_transfer: stream_id=0 [3542] xhci_check_transfer: Checking if 0x00000001167f8610 == (0x000000005df7b980 .. 0x000000005df7baa0) [3542] xhci_check_transfer: Checking if 0x00000001167f8610 == (0x00000001167f8480 .. 0x00000001167f85a0) [3542] xhci_interrupt_poll: event[108] = 32 (0x00000001167f8480 0x0d000031 0x01078001) [3542] xhci_check_transfer: slot=1 epno=7 stream=3328 remainder=49 status=13 [3542] xhci_check_transfer: stream_id=0 [3542] xhci_check_transfer: Checking if 0x00000001167f8480 == (0x000000005df7b980 .. 0x000000005df7baa0) [3542] xhci_check_transfer: Checking if 0x00000001167f8480 == (0x00000001167f8480 .. 0x00000001167f85a0) [3542] xhci_check_transfer: New remainder: 49 [3542] xhci_check_transfer: TD has short pkt .... -- Eitan Adler
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAF6rxgmdAVEvwC0cgaXE_Oz1Z84TjMPfKJ3MYPYm5KQbKH7E=Q>