From patchwork Mon Jul 17 20:47:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Roland Dreier X-Patchwork-Id: 789743 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xBHTj2c6Hz9s3T for ; Tue, 18 Jul 2017 08:07:36 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=purestorage.com header.i=@purestorage.com header.b="NLVYSKnw"; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by silver.osuosl.org (Postfix) with ESMTP id A120C30145; Mon, 17 Jul 2017 22:07:34 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from silver.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id bddyIS-XTvWd; Mon, 17 Jul 2017 22:07:24 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by silver.osuosl.org (Postfix) with ESMTP id 3E4FB221AA; Mon, 17 Jul 2017 22:07:24 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 070EE1C01B2 for ; Mon, 17 Jul 2017 20:56:32 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id F312187ED1 for ; Mon, 17 Jul 2017 20:56:31 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AG0q1lihQmxh for ; Mon, 17 Jul 2017 20:56:30 +0000 (UTC) X-Greylist: delayed 00:08:11 by SQLgrey-1.7.6 Received: from mail-ua0-f173.google.com (mail-ua0-f173.google.com [209.85.217.173]) by hemlock.osuosl.org (Postfix) with ESMTPS id B068687A9C for ; Mon, 17 Jul 2017 20:56:30 +0000 (UTC) Received: by mail-ua0-f173.google.com with SMTP id z22so1713437uah.1 for ; Mon, 17 Jul 2017 13:56:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=purestorage.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=ZY/vdSzlv9wFl9/N+MOIVWCLvDPE/DshdEArp+RMsI4=; b=NLVYSKnwxDgP9G+xwi9xuC9x2Id/DTNHPSgi31NfxOjMtObDrDC/kUb6iF8hx4CyYD n5ayzS7pTrs/E67Q3tZ1hnOzdHnzhGV3dL5ENf7b80YMnpUWX+xLfl3+7IXNM7vPijNa Mwdq5ZVh+It2IK7QedYGvoKryzEfquYN8XUDk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=ZY/vdSzlv9wFl9/N+MOIVWCLvDPE/DshdEArp+RMsI4=; b=cbiPTrdUn1DTiJCwUXsKlW9CgdY0I0OSJbSwiRPRmUwuLV2a0f6nBh+m6S2B8XODg0 T44D8gi2kyoEK2SzT0Nvh5ltKK8wgOromhlj82ArwXMn3TX5JsGWe0Rb0jBudbRE8oXn ZOYDaPkxJkn5dMYYAIZevQyXmgGpaW4IRDO6sXXZOlQQq56bHFba6N28AAq/XUCgjy7h Pp4h/zFo0UtF4vpTMKcxH2Z6laLIszLCKaU/cDdECssNaM3P6fhTZl7hDGDPZQBeFP+g lLTcvW5vmmzseKFTDrBceYXBDUoSRdx5Y7bbOS7T+RPpOY3aIwkphGPiZTNoJ8PGGIsy fkpw== X-Gm-Message-State: AIVw112JxLGAIb1aDN/1/U4IbB93HoGbPH5E83GBVD3Kukf3AifOWRsZ Y6bdQlqRbct2kvXIy895l8JXxMpaAn8y6KM= X-Received: by 10.31.63.16 with SMTP id m16mr2646064vka.118.1500324498176; Mon, 17 Jul 2017 13:48:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.176.27.146 with HTTP; Mon, 17 Jul 2017 13:47:57 -0700 (PDT) From: Roland Dreier Date: Mon, 17 Jul 2017 13:47:57 -0700 Message-ID: To: intel-wired-lan@lists.osuosl.org X-Mailman-Approved-At: Mon, 17 Jul 2017 22:07:23 +0000 Subject: [Intel-wired-lan] Device isolation for X550 functions X-BeenThere: intel-wired-lan@osuosl.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-wired-lan-bounces@osuosl.org Sender: "Intel-wired-lan" Hi ixgbe maintainers - We've been trying to do passthrough of X550 VFs to a KVM virtual machine for our application, and we noticed that the kernel does not put the different functions in different iommu groups the same way it does for X520. This is because the kernel change that enabled appropriate ACS bits for X520 does not include the X550 device ID (1563h in our case): commit 100ebb2c48ea Author: Alex Williamson Date: Fri Sep 26 16:07:59 2014 PCI: Add ACS quirk for Intel 10G NICs Intel has verified there is no peer-to-peer between functions for the below selection of 82598, 82599, and X520 10G NICs. These NICs lack an ACS capability, so we're not able to determine this isolation without the help of quirks. Generalize the Solarflare quirk and add these Intel 10G NICs. I'd like to send the patch below upstream, which adds all the device IDs from the ixgbe driver that seem like they should be included in the quirk, but aren't yet. I'm hypothesizing that X540 and X550 are pretty close variants of the X520 except for the PHY, and so adding them to the quirk table is OK. Can you please check internally in Intel to make sure the extending the quirk to all ixgbe devices is correct? If so I will send this patch to the appropriate mailing lists for you guys to merge upstream. Thanks! Roland From: Roland Dreier Date: Thu, 1 Jun 2017 10:45:22 -0700 Subject: [PATCH] PCI: Update ACS quirk for more Intel 10G NICs Add one more variant of the 82599 plus the device IDs for X540 and X550 variants. None of these devices do peer-to-peer between functions. Signed-off-by: Roland Dreier --- drivers/pci/quirks.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 085fb787aa9e..a51b85878f35 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -4318,12 +4318,33 @@ static const struct pci_dev_acs_enabled { { PCI_VENDOR_ID_INTEL, 0x1507, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_INTEL, 0x1514, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_INTEL, 0x151C, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x1528, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_INTEL, 0x1529, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x154A, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_INTEL, 0x152A, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_INTEL, 0x154D, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_INTEL, 0x154F, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_INTEL, 0x1551, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_INTEL, 0x1558, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x1560, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x1563, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15AA, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15AB, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15AC, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15AD, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15AE, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15B0, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15AB, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15C2, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15C3, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15C4, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15C6, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15C7, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15C8, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15CE, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15E4, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15E5, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_INTEL, 0x15D1, pci_quirk_mf_endpoint_acs }, /* 82580 */ { PCI_VENDOR_ID_INTEL, 0x1509, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_INTEL, 0x150E, pci_quirk_mf_endpoint_acs },