Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/1165498/?format=api
{ "id": 1165498, "url": "http://patchwork.ozlabs.org/api/patches/1165498/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20190921001818.3431.45376.stgit@localhost.localdomain/", "project": { "id": 46, "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api", "name": "Intel Wired Ethernet development", "link_name": "intel-wired-lan", "list_id": "intel-wired-lan.osuosl.org", "list_email": "intel-wired-lan@osuosl.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20190921001818.3431.45376.stgit@localhost.localdomain>", "list_archive_url": null, "date": "2019-09-21T00:18:50", "name": "[next] ixgbe: Make use of cpumask_local_spread to improve RSS locality", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "a95e182c7f29609cb7a4f3dc7d65f211acebd8c4", "submitter": { "id": 252, "url": "http://patchwork.ozlabs.org/api/people/252/?format=api", "name": "Alexander Duyck", "email": "alexander.duyck@gmail.com" }, "delegate": { "id": 68, "url": "http://patchwork.ozlabs.org/api/users/68/?format=api", "username": "jtkirshe", "first_name": "Jeff", "last_name": "Kirsher", "email": "jeffrey.t.kirsher@intel.com" }, "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20190921001818.3431.45376.stgit@localhost.localdomain/mbox/", "series": [ { "id": 131865, "url": "http://patchwork.ozlabs.org/api/series/131865/?format=api", "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=131865", "date": "2019-09-21T00:18:50", "name": "[next] ixgbe: Make use of cpumask_local_spread to improve RSS locality", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/131865/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/1165498/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/1165498/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<intel-wired-lan-bounces@osuosl.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "intel-wired-lan@lists.osuosl.org" ], "Authentication-Results": [ "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=osuosl.org\n\t(client-ip=140.211.166.138; helo=whitealder.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)", "ozlabs.org;\n\tdmarc=fail (p=none dis=none) header.from=gmail.com", "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"XgISbQrt\"; dkim-atps=neutral" ], "Received": [ "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 46ZrmQ2B61z9sN1\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 21 Sep 2019 10:18:59 +1000 (AEST)", "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 58E2586E55;\n\tSat, 21 Sep 2019 00:18:57 +0000 (UTC)", "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id Rx7IDKUH5TmC; Sat, 21 Sep 2019 00:18:56 +0000 (UTC)", "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 5093E86ECA;\n\tSat, 21 Sep 2019 00:18:56 +0000 (UTC)", "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id C72A61BF5A2\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tSat, 21 Sep 2019 00:18:54 +0000 (UTC)", "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 97F3188002\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tSat, 21 Sep 2019 00:18:54 +0000 (UTC)", "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id wufRlReZa284 for <intel-wired-lan@lists.osuosl.org>;\n\tSat, 21 Sep 2019 00:18:53 +0000 (UTC)", "from mail-oi1-f196.google.com (mail-oi1-f196.google.com\n\t[209.85.167.196])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id 1334387FFB\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tSat, 21 Sep 2019 00:18:53 +0000 (UTC)", "by mail-oi1-f196.google.com with SMTP id w17so3231726oiw.8\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri, 20 Sep 2019 17:18:53 -0700 (PDT)", "from localhost.localdomain ([2001:470:b:9c3:9e5c:8eff:fe4f:f2d0])\n\tby smtp.gmail.com with ESMTPSA id\n\tg18sm1175217otl.76.2019.09.20.17.18.50\n\tfor <intel-wired-lan@lists.osuosl.org>\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tFri, 20 Sep 2019 17:18:51 -0700 (PDT)" ], "X-Virus-Scanned": [ "amavisd-new at osuosl.org", "amavisd-new at osuosl.org" ], "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=subject:from:to:date:message-id:user-agent:mime-version\n\t:content-transfer-encoding;\n\tbh=4wdHQT7wZ0vT382kibrjcM5F1PTUBVkHpE3DZ8cR2Co=;\n\tb=XgISbQrt34EXiiXJndg8NoHwtSJREs2ur6od7pKA4xauXGnL1IkYArzLZJFjINnCua\n\tIKstEM1I7lzzewPeVSRHoxYHSrFe7H4epM1klhvSlTIMYGUjxEu465OlEzxyYlCzmn6n\n\tYBIXjZbpCLYoucr45OPkjfS0XGre/oOTO9r/+P5EZTEVodQLa3IPDZItoA932KQVxWad\n\tFUfyvmHZBSd3BjgyJCHhGRgdf/bTIeEvvTIEXrd1w1wZQthw7s7nrUzMVDLVIM7kwf0/\n\tR5JhlY1rqZIT7DIQCz6qNlXi+UKvO4NyTd1aZfdSlhRWqsAT6Zlezbv9/0sUms7Exp30\n\tlrPA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:subject:from:to:date:message-id:user-agent\n\t:mime-version:content-transfer-encoding;\n\tbh=4wdHQT7wZ0vT382kibrjcM5F1PTUBVkHpE3DZ8cR2Co=;\n\tb=WIWYs0+hWJVEpRGoCTgFI4B6/KrhsIFcX9pvHrs+ZVEJzUHVVh8S/pTITGfPQxn7ac\n\tZDvkD8V8SiRJIZT5p91o9g/Y1ycPBle8L15eBpAlGGF/PlkK493x/Yh6KTrTBcfo1T9N\n\tAXZ4zxm+ousW8rW9WPV2C8bHK32PJCpP6/HmtcfOAbilJTGcR+nUtSZ0Cv8qLpoEAmN3\n\tvsd4skR7y6vS9LH2PMunCWH67w5IqruccatM8LkqApeygm3c8H1q4ZKK+0SQxof3Pzje\n\txXpwL2xjO3hqygZSQDCeo6Y7yzNUuOvdBcUupPTi0Dyry2WJ8sColbjjN/tjy/c+5RgA\n\tZ+9w==", "X-Gm-Message-State": "APjAAAVrU2sEd+5G1pZRlEzSai4KlhxYcqyMYhHSXA5TpJlJpyHnQRuQ\n\tOvzNnZ1s+mOGZcL890TEyrfWIe3oTwQ=", "X-Google-Smtp-Source": "APXvYqyxKcCDEEJLb7h91eTlihaxd8vGuAkKX6iCib91MOZuNlhYNP2if5pxxNfZrH+nFcFK8wivoQ==", "X-Received": "by 2002:aca:4245:: with SMTP id p66mr5275707oia.73.1569025131834;\n\tFri, 20 Sep 2019 17:18:51 -0700 (PDT)", "From": "Alexander Duyck <alexander.duyck@gmail.com>", "To": "intel-wired-lan@lists.osuosl.org", "Date": "Fri, 20 Sep 2019 17:18:50 -0700", "Message-ID": "<20190921001818.3431.45376.stgit@localhost.localdomain>", "User-Agent": "StGit/0.17.1-dirty", "MIME-Version": "1.0", "Subject": "[Intel-wired-lan] [next PATCH] ixgbe: Make use of\n\tcpumask_local_spread to improve RSS locality", "X-BeenThere": "intel-wired-lan@osuosl.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.osuosl.org>", "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>", "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>", "List-Post": "<mailto:intel-wired-lan@osuosl.org>", "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>", "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Errors-To": "intel-wired-lan-bounces@osuosl.org", "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>" }, "content": "From: Alexander Duyck <alexander.h.duyck@linux.intel.com>\n\nThis patch is meant to address locality issues present in the ixgbe driver\nwhen it is loaded on a system supporting multiple NUMA nodes and more CPUs\nthen the device can map in a 1:1 fashion. Instead of just arbitrarily\nmapping itself to CPUs 0-62 it would make much more sense to map itself to\nthe local CPUs first, and then map itself to any remaining CPUs that might\nbe used.\n\nThe first effect of this is that queue 0 should always be allocated on the\nlocal CPU/NUMA node. This is important as it is the default destination if\na packet doesn't match any existing flow director filter or RSS rule and as\nsuch having it local should help to reduce QPI cross-talk in the event of\nan unrecognized traffic type.\n\nIn addition this should increase the likelihood of the RSS queues being\nallocated and used on CPUs local to the device while the ATR/Flow Director\nqueues would be able to route traffic directly to the CPU that is likely to\nbe processing it.\n\nSigned-off-by: Alexander Duyck <alexander.h.duyck@linux.intel.com>\n---\n drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 8 +++-----\n 1 file changed, 3 insertions(+), 5 deletions(-)", "diff": "diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c\nindex cc3196ae5aea..fd9f5d41b594 100644\n--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c\n+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c\n@@ -832,9 +832,9 @@ static int ixgbe_alloc_q_vector(struct ixgbe_adapter *adapter,\n \t\t\t\tint xdp_count, int xdp_idx,\n \t\t\t\tint rxr_count, int rxr_idx)\n {\n+\tint node = dev_to_node(&adapter->pdev->dev);\n \tstruct ixgbe_q_vector *q_vector;\n \tstruct ixgbe_ring *ring;\n-\tint node = NUMA_NO_NODE;\n \tint cpu = -1;\n \tint ring_count;\n \tu8 tcs = adapter->hw_tcs;\n@@ -845,10 +845,8 @@ static int ixgbe_alloc_q_vector(struct ixgbe_adapter *adapter,\n \tif ((tcs <= 1) && !(adapter->flags & IXGBE_FLAG_SRIOV_ENABLED)) {\n \t\tu16 rss_i = adapter->ring_feature[RING_F_RSS].indices;\n \t\tif (rss_i > 1 && adapter->atr_sample_rate) {\n-\t\t\tif (cpu_online(v_idx)) {\n-\t\t\t\tcpu = v_idx;\n-\t\t\t\tnode = cpu_to_node(cpu);\n-\t\t\t}\n+\t\t\tcpu = cpumask_local_spread(v_idx, node);\n+\t\t\tnode = cpu_to_node(cpu);\n \t\t}\n \t}\n \n", "prefixes": [ "next" ] }