From patchwork Tue Jun 2 06:04:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: You-Sheng Yang X-Patchwork-Id: 1302097 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49bhMs2bmRz9sSg; Tue, 2 Jun 2020 16:04:56 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1jg02f-0003zi-2d; Tue, 02 Jun 2020 06:04:53 +0000 Received: from mail-pf1-f196.google.com ([209.85.210.196]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jg02b-0003zC-SN for kernel-team@lists.ubuntu.com; Tue, 02 Jun 2020 06:04:50 +0000 Received: by mail-pf1-f196.google.com with SMTP id x22so266650pfn.3 for ; Mon, 01 Jun 2020 23:04:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RQDhkzewLGJHvLSDs4+Qrf1EzbuhlSNNA61tFwzFBUM=; b=NwjT4lEzdUXT4GVQ46OiCcILtHUN7BktVpBI+dfnzX+LTxrhKTz5d/7cFL7b4ci6I4 ICZOZArdV3E3kZwHLq4MBjfG6/A1lRp6+wvzPRA4nVJ8+8V90GrbAJo4YpdAUrU4V4gx idTISAaBMsUgm3XP+d6cB5jH7Oe7WJMggjuKHUD31EltKYGRewYZIGT7n81JR2d8nXTQ OIUE+6OnXMyB4jianH2MMLiNBp8u9wibm0bghb6/ZgD08ETeCauXsr+Q3z2VOmaTFJXX GqDRinza8CVy9/CJZWFXMld8lXegcAAxObyoyjacv48hUZHpIxOW5d/59XTnfL8AyL6i E3sA== X-Gm-Message-State: AOAM531IEDLPK99Sfmw8r5yT8X/P2KlEFK3GF6bIl/vM7xBp61YY5INV fYsmRijfDwpv6Q6kMJA2/I0PfsvknOc= X-Google-Smtp-Source: ABdhPJyqVVMDLHIM9Iu5MpWOcS4ELDNonNfhwxwHc2aW9pv6v6F9FGaykS55v6CKyjhkHCArd6ngPA== X-Received: by 2002:a63:d412:: with SMTP id a18mr22461897pgh.154.1591077887294; Mon, 01 Jun 2020 23:04:47 -0700 (PDT) Received: from localhost (61-220-137-37.HINET-IP.hinet.net. [61.220.137.37]) by smtp.gmail.com with ESMTPSA id a16sm1133612pgk.88.2020.06.01.23.04.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 23:04:46 -0700 (PDT) From: You-Sheng Yang To: kernel-team@lists.ubuntu.com Subject: [PATCH v2 1/2][E/F/U/OEM-OSP1-B/OEM-5.6] UBUNTU: SAUCE: PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0 Date: Tue, 2 Jun 2020 14:04:39 +0800 Message-Id: <20200602060441.1719138-2-vicamo.yang@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200602060441.1719138-1-vicamo.yang@canonical.com> References: <20200602060441.1719138-1-vicamo.yang@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Marcos Scriven BugLink: https://bugs.launchpad.net/bugs/1865988 The AMD Matisse HD Audio & USB 3.0 devices advertise Function Level Reset support, but hang when an FLR is triggered. To reproduce the problem, attach the device to a VM, then detach and try to attach again. Rename the existing quirk_intel_no_flr(), which was not Intel-specific, to quirk_no_flr(), and apply it to prevent the use of FLR on these AMD devices. Link: https://lore.kernel.org/r/CAAri2DpkcuQZYbT6XsALhx2e6vRqPHwtbjHYeiH7MNp4zmt1RA@mail.gmail.com Signed-off-by: Marcos Scriven Signed-off-by: Bjorn Helgaas (cherry picked from commit 0d14f06cd6657ba3446a5eb780672da487b068e7 https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/?h=pci/virtualization) Signed-off-by: You-Sheng Yang --- drivers/pci/quirks.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 8ee5e15445cc..06d46340c052 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -5146,13 +5146,23 @@ static void quirk_intel_qat_vf_cap(struct pci_dev *pdev) } DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x443, quirk_intel_qat_vf_cap); -/* FLR may cause some 82579 devices to hang */ -static void quirk_intel_no_flr(struct pci_dev *dev) +/* + * FLR may cause the following to devices to hang: + * + * AMD Starship/Matisse HD Audio Controller 0x1487 + * AMD Matisse USB 3.0 Host Controller 0x149c + * Intel 82579LM Gigabit Ethernet Controller 0x1502 + * Intel 82579V Gigabit Ethernet Controller 0x1503 + * + */ +static void quirk_no_flr(struct pci_dev *dev) { dev->dev_flags |= PCI_DEV_FLAGS_NO_FLR_RESET; } -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1502, quirk_intel_no_flr); -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1503, quirk_intel_no_flr); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1487, quirk_no_flr); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x149c, quirk_no_flr); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1502, quirk_no_flr); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1503, quirk_no_flr); static void quirk_intel_th_rtit_bar(struct pci_dev *dev) { From patchwork Tue Jun 2 06:04:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: You-Sheng Yang X-Patchwork-Id: 1302100 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49bhMv0gSHz9sT8; Tue, 2 Jun 2020 16:04:58 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1jg02h-00040o-CA; Tue, 02 Jun 2020 06:04:55 +0000 Received: from mail-pj1-f68.google.com ([209.85.216.68]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1jg02g-000401-7H for kernel-team@lists.ubuntu.com; Tue, 02 Jun 2020 06:04:54 +0000 Received: by mail-pj1-f68.google.com with SMTP id k2so875791pjs.2 for ; Mon, 01 Jun 2020 23:04:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Tmw+Eh0eF28c7MzuaIKP6T0fDoVCJMmWy9eXu+NgTGs=; b=eiz5Iq+EjDm7UEHqdfP4Ra+fRkM7/6gCDVbeCBew6YZmHl3EF6Uo2LnEUN72lCdN4/ XjzzSxwxJ9mTN5PyIii203p5PV7xF6WXC3asNKt5SLsyU043nPUpxac4L/gVIQ/6IJcm idSrHG45dMqDHubq/37IoberAGLyOxUqGXGPm6w53hccjVyjX81oQ8g90V/mMMF0Mwr1 fBG+EZbmQVDZufdufjOlJ033pX9+kkjWLg9zLGaAZUwdkgcOZSeru6SmvbnOLi/UyVL9 2Rzx0LKxNY4zrsO8PnH5812uVUwhdBfF7xNjpPS+7oSruHhfBoO3YlfmRVz7mk099jGA 8VHg== X-Gm-Message-State: AOAM5305lFfiF0B3YMHVzCOCGg/AvlXxV5yaLGpGSg/Ly2+ZR9wmTdgV XYarsqKqLWsxwHjCcd2Z7Aj5tKHCwUA= X-Google-Smtp-Source: ABdhPJz6sbKKLRCg8ZIaVy9OKPvhaacbjJpfrjmn2MUeuHaz1WNXS7WfSOG5X3YFgrCWAv65EuM1AQ== X-Received: by 2002:a17:90a:1217:: with SMTP id f23mr3403344pja.150.1591077892090; Mon, 01 Jun 2020 23:04:52 -0700 (PDT) Received: from localhost (61-220-137-37.HINET-IP.hinet.net. [61.220.137.37]) by smtp.gmail.com with ESMTPSA id w73sm1233756pfd.113.2020.06.01.23.04.50 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2020 23:04:51 -0700 (PDT) From: You-Sheng Yang To: kernel-team@lists.ubuntu.com Subject: [PATCH v2 2/2][SRU][B/E/F/U/OEM-OSP1-B/OEM-5.6] UBUNTU: SAUCE: PCI: Avoid FLR for AMD Starship USB 3.0 Date: Tue, 2 Jun 2020 14:04:41 +0800 Message-Id: <20200602060441.1719138-4-vicamo.yang@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200602060441.1719138-1-vicamo.yang@canonical.com> References: <20200602060441.1719138-1-vicamo.yang@canonical.com> MIME-Version: 1.0 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Kevin Buettner BugLink: https://bugs.launchpad.net/bugs/1865988 The AMD Starship USB 3.0 host controller advertises Function Level Reset support, but it apparently doesn't work. Add a quirk to prevent use of FLR on this device. Without this quirk, when attempting to assign (pass through) an AMD Starship USB 3.0 host controller to a guest OS, the system becomes increasingly unresponsive over the course of several minutes, eventually requiring a hard reset. Shortly after attempting to start the guest, I see these messages: vfio-pci 0000:05:00.3: not ready 1023ms after FLR; waiting vfio-pci 0000:05:00.3: not ready 2047ms after FLR; waiting vfio-pci 0000:05:00.3: not ready 4095ms after FLR; waiting vfio-pci 0000:05:00.3: not ready 8191ms after FLR; waiting And then eventually: vfio-pci 0000:05:00.3: not ready 65535ms after FLR; giving up INFO: NMI handler (perf_event_nmi_handler) took too long to run: 0.000 msecs perf: interrupt took too long (642744 > 2500), lowering kernel.perf_event_max_sample_rate to 1000 INFO: NMI handler (perf_event_nmi_handler) took too long to run: 82.270 msecs INFO: NMI handler (perf_event_nmi_handler) took too long to run: 680.608 msecs INFO: NMI handler (perf_event_nmi_handler) took too long to run: 100.952 msecs ... watchdog: BUG: soft lockup - CPU#3 stuck for 22s! [qemu-system-x86:7487] Tested on a Micro-Star International Co., Ltd. MS-7C59/Creator TRX40 motherboard with an AMD Ryzen Threadripper 3970X. Link: https://lore.kernel.org/r/20200524003529.598434ff@f31-4.lan Signed-off-by: Kevin Buettner Signed-off-by: Bjorn Helgaas (cherry picked from commit 5727043c73fdfe04597971b5f3f4850d879c1f4f https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/?h=pci/virtualization) Signed-off-by: You-Sheng Yang --- drivers/pci/quirks.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 06d46340c052..ebedcea49818 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -5150,6 +5150,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x443, quirk_intel_qat_vf_cap); * FLR may cause the following to devices to hang: * * AMD Starship/Matisse HD Audio Controller 0x1487 + * AMD Starship USB 3.0 Host Controller 0x148c * AMD Matisse USB 3.0 Host Controller 0x149c * Intel 82579LM Gigabit Ethernet Controller 0x1502 * Intel 82579V Gigabit Ethernet Controller 0x1503 @@ -5160,6 +5161,7 @@ static void quirk_no_flr(struct pci_dev *dev) dev->dev_flags |= PCI_DEV_FLAGS_NO_FLR_RESET; } DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x1487, quirk_no_flr); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x148c, quirk_no_flr); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AMD, 0x149c, quirk_no_flr); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1502, quirk_no_flr); DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x1503, quirk_no_flr);