From owner-freebsd-usb@freebsd.org Wed May 2 04:23:03 2018 Return-Path: Delivered-To: freebsd-usb@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 10357FC1664 for ; Wed, 2 May 2018 04:23:03 +0000 (UTC) (envelope-from lists@eitanadler.com) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 8803E88AEF for ; Wed, 2 May 2018 04:23:02 +0000 (UTC) (envelope-from lists@eitanadler.com) Received: by mailman.ysv.freebsd.org (Postfix) id 474D2FC1663; Wed, 2 May 2018 04:23:02 +0000 (UTC) Delivered-To: usb@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 24E23FC1662 for ; Wed, 2 May 2018 04:23:02 +0000 (UTC) (envelope-from lists@eitanadler.com) Received: from mail-yb0-x22d.google.com (mail-yb0-x22d.google.com [IPv6:2607:f8b0:4002:c09::22d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id BF77D88AEE for ; Wed, 2 May 2018 04:23:01 +0000 (UTC) (envelope-from lists@eitanadler.com) Received: by mail-yb0-x22d.google.com with SMTP id y5-v6so4840520ybg.0 for ; Tue, 01 May 2018 21:23:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eitanadler.com; s=0xdeadbeef; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=qapHrQiMVTLG6gfep8EvL0R/IJk6D/zOCyMCB1aPZJs=; b=tevNnHU8rCCUuFNfl9sKKfwXr8z5oYIA2cR6W7DN8N8mfvBofqMrLFy7ZhmGG+rvRG brj6HfM5VmQ5XEKwpc6qEzuawVSzy9P4WPJd44CnSbDLwy1PWdX+IpYE6TOk2ZTyfqzY 1RrvdH5QICpvkYyZqM+phnm+WgFugKbvVZD/A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=qapHrQiMVTLG6gfep8EvL0R/IJk6D/zOCyMCB1aPZJs=; b=dvouieQylDsD2SCzFntY2nqijTvNlo5vC38TPKuwyieP3XRJo6NJqNERDka57VXQVX QpY4IxbSH92jk22N5e4sJH0RDk9sa4JxaDIm/911hCNXnB3Uu7ixdaByrtoF6J9tbal/ Nj1Ee9kMutWp0l5kEnVH17qhEolMl1EElVctgo5bK1yqg1xYXZCBnXEhXNS5410Gb+zy eSHC1swTVqpEMltQXrBGShSaxO3kcumvfAhhUCvQVkJP71ouiWmLAO+5/OzpmWtowy/e Q+eKEd4XVXC3ktvZY+utkPE4bgRnHCtXMjHWJ9GRC5W3d+t2WFKr0itrRN1G0LonP0ep isxg== X-Gm-Message-State: ALQs6tCEK7XfrXOsd8EmMg1X2CqhKNDKR6U3iy3+R/eS68NiXAlNyfsU 6JUdgoHsHsW61nGiEeGAQHxpatiCAp7nscDZk/LnLKbL X-Google-Smtp-Source: AB8JxZof/JSKFfrJnuwfli06KgATwALwUBArl4cQeusbtJAtOCk159PmjKcJ/MocpU2TQMvsnVcQaVt0NFkbThzTgIk= X-Received: by 2002:a25:5b0b:: with SMTP id p11-v6mr10243375ybb.338.1525234980550; Tue, 01 May 2018 21:23:00 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a25:c709:0:0:0:0:0 with HTTP; Tue, 1 May 2018 21:22:30 -0700 (PDT) In-Reply-To: References: From: Eitan Adler Date: Tue, 1 May 2018 21:22:30 -0700 Message-ID: Subject: Re: IRQ storm on xhci0 To: usb@freebsd.org Content-Type: text/plain; charset="UTF-8" X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 May 2018 04:23:03 -0000 On 1 May 2018 at 20:53, Eitan Adler 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