patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Kevin Traynor <ktraynor@redhat.com>
To: Michal Krawczyk <mk@semihalf.com>
Cc: David Marchand <david.marchand@redhat.com>,
	dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/ena: fix assigning NUMA node to IO queue' has been queued to LTS release 18.11.3
Date: Mon, 24 Jun 2019 16:24:43 +0100	[thread overview]
Message-ID: <20190624152525.19349-19-ktraynor@redhat.com> (raw)
In-Reply-To: <20190624152525.19349-1-ktraynor@redhat.com>

Hi,

FYI, your patch has been queued to LTS release 18.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/27/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/6043b435acec7e04a274308980736e4a37829f40

Thanks.

Kevin Traynor

---
From 6043b435acec7e04a274308980736e4a37829f40 Mon Sep 17 00:00:00 2001
From: Michal Krawczyk <mk@semihalf.com>
Date: Tue, 4 Jun 2019 12:59:36 +0200
Subject: [PATCH] net/ena: fix assigning NUMA node to IO queue

[ upstream commit 4217cb0b7d2c5385f06f531af7f14b860927aba7 ]

Previous solution was using memzones in invalid way in hope to assign
IO queue to the appropriate NUMA zone.

The right way is to use socket_id from the rx/tx queue setup function
and then pass it to the IO queue.

Fixes: 3d3edc265fc8 ("net/ena: make coherent memory allocation NUMA-aware")

Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
---
 drivers/net/ena/ena_ethdev.c | 25 +++++--------------------
 drivers/net/ena/ena_ethdev.h |  1 +
 2 files changed, 6 insertions(+), 20 deletions(-)

diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 82161f41c..9359d4d76 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -40,5 +40,4 @@
 #include <rte_errno.h>
 #include <rte_version.h>
-#include <rte_eal_memconfig.h>
 #include <rte_net.h>
 
@@ -282,20 +281,4 @@ static const struct eth_dev_ops ena_dev_ops = {
 };
 
-#define NUMA_NO_NODE	SOCKET_ID_ANY
-
-static inline int ena_cpu_to_node(int cpu)
-{
-	struct rte_config *config = rte_eal_get_configuration();
-	struct rte_fbarray *arr = &config->mem_config->memzones;
-	const struct rte_memzone *mz;
-
-	if (unlikely(cpu >= RTE_MAX_MEMZONE))
-		return NUMA_NO_NODE;
-
-	mz = rte_fbarray_get(arr, cpu);
-
-	return mz->socket_id;
-}
-
 static inline void ena_rx_mbuf_prepare(struct rte_mbuf *mbuf,
 				       struct ena_com_rx_ctx *ena_rx_ctx)
@@ -1072,5 +1055,5 @@ static int ena_create_io_queue(struct ena_ring *ring)
 	ctx.qid = ena_qid;
 	ctx.msix_vector = -1; /* interrupts not used */
-	ctx.numa_node = ena_cpu_to_node(ring->id);
+	ctx.numa_node = ring->numa_socket_id;
 
 	rc = ena_com_create_io_queue(ena_dev, &ctx);
@@ -1166,5 +1149,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
 			      uint16_t queue_idx,
 			      uint16_t nb_desc,
-			      __rte_unused unsigned int socket_id,
+			      unsigned int socket_id,
 			      const struct rte_eth_txconf *tx_conf)
 {
@@ -1200,4 +1183,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
 	txq->next_to_use = 0;
 	txq->ring_size = nb_desc;
+	txq->numa_socket_id = socket_id;
 
 	txq->tx_buffer_info = rte_zmalloc("txq->tx_buffer_info",
@@ -1237,5 +1221,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
 			      uint16_t queue_idx,
 			      uint16_t nb_desc,
-			      __rte_unused unsigned int socket_id,
+			      unsigned int socket_id,
 			      __rte_unused const struct rte_eth_rxconf *rx_conf,
 			      struct rte_mempool *mp)
@@ -1271,4 +1255,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
 	rxq->next_to_use = 0;
 	rxq->ring_size = nb_desc;
+	rxq->numa_socket_id = socket_id;
 	rxq->mb_pool = mp;
 
diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h
index 322e90ace..a4aba7fdf 100644
--- a/drivers/net/ena/ena_ethdev.h
+++ b/drivers/net/ena/ena_ethdev.h
@@ -106,4 +106,5 @@ struct ena_ring {
 	uint64_t offloads;
 	u16 sgl_size;
+	unsigned int numa_socket_id;
 } __rte_cache_aligned;
 
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-06-24 16:18:56.068499662 +0100
+++ 0019-net-ena-fix-assigning-NUMA-node-to-IO-queue.patch	2019-06-24 16:18:54.997432026 +0100
@@ -1 +1 @@
-From 4217cb0b7d2c5385f06f531af7f14b860927aba7 Mon Sep 17 00:00:00 2001
+From 6043b435acec7e04a274308980736e4a37829f40 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 4217cb0b7d2c5385f06f531af7f14b860927aba7 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -19,2 +20,2 @@
- drivers/net/ena/ena_ethdev.h |  2 ++
- 2 files changed, 7 insertions(+), 20 deletions(-)
+ drivers/net/ena/ena_ethdev.h |  1 +
+ 2 files changed, 6 insertions(+), 20 deletions(-)
@@ -23 +24 @@
-index a42ec8c79..f58334080 100644
+index 82161f41c..9359d4d76 100644
@@ -26 +27 @@
-@@ -41,5 +41,4 @@
+@@ -40,5 +40,4 @@
@@ -32 +33 @@
-@@ -273,20 +272,4 @@ static const struct eth_dev_ops ena_dev_ops = {
+@@ -282,20 +281,4 @@ static const struct eth_dev_ops ena_dev_ops = {
@@ -53 +54 @@
-@@ -1117,5 +1100,5 @@ static int ena_create_io_queue(struct ena_ring *ring)
+@@ -1072,5 +1055,5 @@ static int ena_create_io_queue(struct ena_ring *ring)
@@ -60 +61 @@
-@@ -1214,5 +1197,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
+@@ -1166,5 +1149,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
@@ -67 +68 @@
-@@ -1251,4 +1234,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
+@@ -1200,4 +1183,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
@@ -73 +74 @@
-@@ -1298,5 +1282,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -1237,5 +1221,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
@@ -80 +81 @@
-@@ -1335,4 +1319,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -1271,4 +1255,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
@@ -87 +88 @@
-index dcc8690a5..9067e9007 100644
+index 322e90ace..a4aba7fdf 100644
@@ -90,4 +91,3 @@
-@@ -144,4 +144,6 @@ struct ena_ring {
- 		struct ena_stats_tx tx_stats;
- 	};
-+
+@@ -106,4 +106,5 @@ struct ena_ring {
+ 	uint64_t offloads;
+ 	u16 sgl_size;

  parent reply	other threads:[~2019-06-24 15:26 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-24 15:24 [dpdk-stable] patch 'net/atlantic: remove unnecessary cast' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ark: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/axgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bonding: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/cxgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ena: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/mlx5: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: remove useless check on mempool' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/virtio: fix in-order Rx with segmented packet' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix endianness in ring macros' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix ring type macro name' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnxt: fix variable width in endian conversion' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/failsafe: fix reported device info' " Kevin Traynor
2019-06-24 15:24 ` Kevin Traynor [this message]
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix packet drop' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix interrupt flood' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix memory leak' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix link state' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/bnx2x: fix supported max Rx/Tx descriptor count' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'ethdev: fix Tx prepare documentation to use positive errno' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/atlantic: fix Tx prepare to set positive rte_errno' " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/e1000: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/fm10k: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/i40e: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/iavf: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/ixgbe: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/qede: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/vmxnet3: " Kevin Traynor
2019-06-24 15:24 ` [dpdk-stable] patch 'net/enic: remove flow count action support' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/enic: remove flow locks' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: check for null completion ring doorbell' " Kevin Traynor
2019-06-25  3:42   ` Somnath Kotur
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix xstats' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix interrupt vector initialization' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/bnxt: fix icc build' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/ixgbevf: add full link status check option' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'bus/pci: fix TOCTOU for sysfs access' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'doc: fix typo in EAL guide' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'telemetry: fix memory leak' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: enable chained multicast on all EF10 cards' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix signed/unsigned mismatch' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/sfc/base: fix shift by more bits than field width' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/netvsc: initialize VF spinlock' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: fix dropped packets statistics name' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/i40e: remove empty queue stats mapping set devops' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix queue memory leak on error' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap port IO for legacy device' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: unmap device on initialization error' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vdpa: remove trace of legacy linuxapp' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: add Tx preparation' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: move VLAN tag insertion to Tx prepare' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'net/virtio: fix memory leak in in-order Rx' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'vhost: fix missing include' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'examples/vhost_crypto: remove unused function' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix logically dead code' " Kevin Traynor
2019-06-24 15:25 ` [dpdk-stable] patch 'vhost/crypto: fix inferred misuse of enum' " Kevin Traynor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190624152525.19349-19-ktraynor@redhat.com \
    --to=ktraynor@redhat.com \
    --cc=david.marchand@redhat.com \
    --cc=mk@semihalf.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).