patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Xueming Li <xuemingl@nvidia.com>
To: Dariusz Sosnowski <dsosnowski@nvidia.com>
Cc: Xueming Li <xuemingl@nvidia.com>, Ori Kam <orika@nvidia.com>,
	dpdk stable <stable@dpdk.org>
Subject: patch 'net/mlx5: fix counter query loop getting stuck' has been queued to stable release 23.11.3
Date: Sat, 7 Dec 2024 16:00:28 +0800	[thread overview]
Message-ID: <20241207080055.488538-71-xuemingl@nvidia.com> (raw)
In-Reply-To: <20241207080055.488538-1-xuemingl@nvidia.com>

Hi,

FYI, your patch has been queued to stable release 23.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 12/10/24. 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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=833fd897b154ab2f3d278426453a7f1514635a66

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 833fd897b154ab2f3d278426453a7f1514635a66 Mon Sep 17 00:00:00 2001
From: Dariusz Sosnowski <dsosnowski@nvidia.com>
Date: Wed, 30 Oct 2024 17:30:46 +0100
Subject: [PATCH] net/mlx5: fix counter query loop getting stuck
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit c0e29968294c92ca15fdb34ce63fbba01c4562a6 ]

Counter service thread, responsible for refreshing counter values
stored in host memory, is running an "infinite loop" with the following
logic:

- For each port:
    - Refresh port's counter pool - call to __mlx5_hws_cnt_svc().
    - Perform aging checks.
- Go to sleep if time left in current cycle.
- Repeat.

__mlx5_hws_cnt_svc() used to perform counter value refresh
implemented the following logic:

1. Store number of counters waiting for reset.
2. Issue ASO WQEs to refresh all counters values.
3. Move counters from reset to reuse list.
   Number of moved counters is limited by number stored in step 1 or
   step 4.
4. Store number of counters waiting for reset.
5. If number of counters waiting for reset > 0, go to step 2.

Now, if an application constantly creates/destroys flow rules with
counters and even a single counter is added to reset list during step 2,
counter service thread might end up issuing ASO WQEs endlessly,
without going to sleep and respecting the configured cycle time.

This patch fixes that by remove the loop inside __mlx5_hws_cnt_svc().

As a drawback of this fix, the application must allocate enough counters
to accommodate for the cycle time. This number if roughly equal to the
expected counter release rate.

This patch also:

- Ensures that proper counter related error code is returned,
  when flow rule create failed due to counter allocation problem.
- Adds debug logging to counter service thread.
- Adds documentation for counter service thread.

Fixes: 4d368e1da3a4 ("net/mlx5: support flow counter action for HWS")

Signed-off-by: Dariusz Sosnowski <dsosnowski@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 doc/guides/nics/mlx5.rst        | 71 +++++++++++++++++++++++++++++++++
 drivers/net/mlx5/mlx5_flow_hw.c | 17 +++++---
 drivers/net/mlx5/mlx5_hws_cnt.c | 46 ++++++++++++---------
 3 files changed, 110 insertions(+), 24 deletions(-)

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 2c59b24d78..d1c3284ca1 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -1874,6 +1874,77 @@ directly but neither destroyed nor flushed.
 The application should re-create the flows as required after the port restart.


+Notes for flow counters
+-----------------------
+
+mlx5 PMD supports the ``COUNT`` flow action,
+which provides an ability to count packets (and bytes)
+matched against a given flow rule.
+This section describes the high level overview of
+how this support is implemented and limitations.
+
+HW steering flow engine
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Flow counters are allocated from HW in bulks.
+A set of bulks forms a flow counter pool managed by PMD.
+When flow counters are queried from HW,
+each counter is identified by an offset in a given bulk.
+Querying HW flow counter requires sending a request to HW,
+which will request a read of counter values for given offsets.
+HW will asynchronously provide these values through a DMA write.
+
+In order to optimize HW to SW communication,
+these requests are handled in a separate counter service thread
+spawned by mlx5 PMD.
+This service thread will refresh the counter values stored in memory,
+in cycles, each spanning ``svc_cycle_time`` milliseconds.
+By default, ``svc_cycle_time`` is set to 500.
+When applications query the ``COUNT`` flow action,
+PMD returns the values stored in host memory.
+
+mlx5 PMD manages 3 global rings of allocated counter offsets:
+
+- ``free`` ring - Counters which were not used at all.
+- ``wait_reset`` ring - Counters which were used in some flow rules,
+  but were recently freed (flow rule was destroyed
+  or an indirect action was destroyed).
+  Since the count value might have changed
+  between the last counter service thread cycle and the moment it was freed,
+  the value in host memory might be stale.
+  During the next service thread cycle,
+  such counters will be moved to ``reuse`` ring.
+- ``reuse`` ring - Counters which were used at least once
+  and can be reused in new flow rules.
+
+When counters are assigned to a flow rule (or allocated to indirect action),
+the PMD first tries to fetch a counter from ``reuse`` ring.
+If it's empty, the PMD fetches a counter from ``free`` ring.
+
+The counter service thread works as follows:
+
+#. Record counters stored in ``wait_reset`` ring.
+#. Read values of all counters which were used at least once
+   or are currently in use.
+#. Move recorded counters from ``wait_reset`` to ``reuse`` ring.
+#. Sleep for ``(query time) - svc_cycle_time`` milliseconds
+#. Repeat.
+
+Because freeing a counter (by destroying a flow rule or destroying indirect action)
+does not immediately make it available for the application,
+the PMD might return:
+
+- ``ENOENT`` if no counter is available in ``free``, ``reuse``
+  or ``wait_reset`` rings.
+  No counter will be available until the application releases some of them.
+- ``EAGAIN`` if no counter is available in ``free`` and ``reuse`` rings,
+  but there are counters in ``wait_reset`` ring.
+  This means that after the next service thread cycle new counters will be available.
+
+The application has to be aware that flow rule create or indirect action create
+might need be retried.
+
+
 Notes for hairpin
 -----------------

diff --git a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c
index 2437e44051..31e11763db 100644
--- a/drivers/net/mlx5/mlx5_flow_hw.c
+++ b/drivers/net/mlx5/mlx5_flow_hw.c
@@ -3186,8 +3186,11 @@ flow_hw_actions_construct(struct rte_eth_dev *dev,
 		case RTE_FLOW_ACTION_TYPE_COUNT:
 			cnt_queue = mlx5_hws_cnt_get_queue(priv, &queue);
 			ret = mlx5_hws_cnt_pool_get(priv->hws_cpool, cnt_queue, &cnt_id, age_idx);
-			if (ret != 0)
+			if (ret != 0) {
+				rte_flow_error_set(error, -ret, RTE_FLOW_ERROR_TYPE_ACTION,
+						action, "Failed to allocate flow counter");
 				goto error;
+			}
 			ret = mlx5_hws_cnt_pool_get_action_offset
 				(priv->hws_cpool,
 				 cnt_id,
@@ -3381,6 +3384,7 @@ flow_hw_async_flow_create(struct rte_eth_dev *dev,
 	struct rte_flow_hw *flow = NULL;
 	struct mlx5_hw_q_job *job = NULL;
 	const struct rte_flow_item *rule_items;
+	struct rte_flow_error sub_error = { 0 };
 	uint32_t flow_idx = 0;
 	uint32_t res_idx = 0;
 	int ret;
@@ -3429,7 +3433,7 @@ flow_hw_async_flow_create(struct rte_eth_dev *dev,
 	if (flow_hw_actions_construct(dev, job,
 				      &table->ats[action_template_index],
 				      pattern_template_index, actions,
-				      rule_acts, queue, error))
+				      rule_acts, queue, &sub_error))
 		goto error;
 	rule_items = flow_hw_get_rule_items(dev, table, items,
 					    pattern_template_index, job);
@@ -3448,9 +3452,12 @@ error:
 		mlx5_ipool_free(table->flow, flow_idx);
 	if (res_idx)
 		mlx5_ipool_free(table->resource, res_idx);
-	rte_flow_error_set(error, rte_errno,
-			   RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
-			   "fail to create rte flow");
+	if (sub_error.cause != RTE_FLOW_ERROR_TYPE_NONE && error != NULL)
+		*error = sub_error;
+	else
+		rte_flow_error_set(error, rte_errno,
+				   RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
+				   "fail to create rte flow");
 	return NULL;
 }

diff --git a/drivers/net/mlx5/mlx5_hws_cnt.c b/drivers/net/mlx5/mlx5_hws_cnt.c
index 41edd19bb8..7a88a4001a 100644
--- a/drivers/net/mlx5/mlx5_hws_cnt.c
+++ b/drivers/net/mlx5/mlx5_hws_cnt.c
@@ -56,26 +56,29 @@ __mlx5_hws_cnt_svc(struct mlx5_dev_ctx_shared *sh,
 	uint32_t ret __rte_unused;

 	reset_cnt_num = rte_ring_count(reset_list);
-	do {
-		cpool->query_gen++;
-		mlx5_aso_cnt_query(sh, cpool);
-		zcdr.n1 = 0;
-		zcdu.n1 = 0;
-		ret = rte_ring_enqueue_zc_burst_elem_start(reuse_list,
-							   sizeof(cnt_id_t),
-							   reset_cnt_num, &zcdu,
-							   NULL);
-		MLX5_ASSERT(ret == reset_cnt_num);
-		ret = rte_ring_dequeue_zc_burst_elem_start(reset_list,
-							   sizeof(cnt_id_t),
-							   reset_cnt_num, &zcdr,
-							   NULL);
-		MLX5_ASSERT(ret == reset_cnt_num);
-		__hws_cnt_r2rcpy(&zcdu, &zcdr, reset_cnt_num);
-		rte_ring_dequeue_zc_elem_finish(reset_list, reset_cnt_num);
-		rte_ring_enqueue_zc_elem_finish(reuse_list, reset_cnt_num);
+	cpool->query_gen++;
+	mlx5_aso_cnt_query(sh, cpool);
+	zcdr.n1 = 0;
+	zcdu.n1 = 0;
+	ret = rte_ring_enqueue_zc_burst_elem_start(reuse_list,
+						   sizeof(cnt_id_t),
+						   reset_cnt_num, &zcdu,
+						   NULL);
+	MLX5_ASSERT(ret == reset_cnt_num);
+	ret = rte_ring_dequeue_zc_burst_elem_start(reset_list,
+						   sizeof(cnt_id_t),
+						   reset_cnt_num, &zcdr,
+						   NULL);
+	MLX5_ASSERT(ret == reset_cnt_num);
+	__hws_cnt_r2rcpy(&zcdu, &zcdr, reset_cnt_num);
+	rte_ring_dequeue_zc_elem_finish(reset_list, reset_cnt_num);
+	rte_ring_enqueue_zc_elem_finish(reuse_list, reset_cnt_num);
+
+	if (rte_log_can_log(mlx5_logtype, RTE_LOG_DEBUG)) {
 		reset_cnt_num = rte_ring_count(reset_list);
-	} while (reset_cnt_num > 0);
+		DRV_LOG(DEBUG, "ibdev %s cpool %p wait_reset_cnt=%" PRIu32,
+			       sh->ibdev_name, (void *)cpool, reset_cnt_num);
+	}
 }

 /**
@@ -315,6 +318,11 @@ mlx5_hws_cnt_svc(void *opaque)
 		rte_spinlock_unlock(&sh->cpool_lock);
 		query_us = query_cycle / (rte_get_timer_hz() / US_PER_S);
 		sleep_us = interval - query_us;
+		DRV_LOG(DEBUG, "ibdev %s counter service thread: "
+			       "interval_us=%" PRIu64 " query_us=%" PRIu64 " "
+			       "sleep_us=%" PRIu64,
+			sh->ibdev_name, interval, query_us,
+			interval > query_us ? sleep_us : 0);
 		if (interval > query_us)
 			rte_delay_us_sleep(sleep_us);
 	}
--
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2024-12-06 23:26:46.403270900 +0800
+++ 0070-net-mlx5-fix-counter-query-loop-getting-stuck.patch	2024-12-06 23:26:44.023044827 +0800
@@ -1 +1 @@
-From c0e29968294c92ca15fdb34ce63fbba01c4562a6 Mon Sep 17 00:00:00 2001
+From 833fd897b154ab2f3d278426453a7f1514635a66 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit c0e29968294c92ca15fdb34ce63fbba01c4562a6 ]
@@ -46 +48,0 @@
-Cc: stable@dpdk.org
@@ -57 +59 @@
-index b1d6863f36..145c01fbda 100644
+index 2c59b24d78..d1c3284ca1 100644
@@ -60 +62 @@
-@@ -2021,6 +2021,77 @@ directly but neither destroyed nor flushed.
+@@ -1874,6 +1874,77 @@ directly but neither destroyed nor flushed.
@@ -139 +141 @@
-index 488ef4ce3c..6ad98d40f7 100644
+index 2437e44051..31e11763db 100644
@@ -142 +144 @@
-@@ -3734,8 +3734,11 @@ flow_hw_actions_construct(struct rte_eth_dev *dev,
+@@ -3186,8 +3186,11 @@ flow_hw_actions_construct(struct rte_eth_dev *dev,
@@ -155,2 +157 @@
-@@ -3980,6 +3983,7 @@ flow_hw_async_flow_create_generic(struct rte_eth_dev *dev,
- 	struct mlx5dr_rule_action *rule_acts;
+@@ -3381,6 +3384,7 @@ flow_hw_async_flow_create(struct rte_eth_dev *dev,
@@ -157,0 +159 @@
+ 	struct mlx5_hw_q_job *job = NULL;
@@ -163 +165,2 @@
-@@ -4037,7 +4041,7 @@ flow_hw_async_flow_create_generic(struct rte_eth_dev *dev,
+@@ -3429,7 +3433,7 @@ flow_hw_async_flow_create(struct rte_eth_dev *dev,
+ 	if (flow_hw_actions_construct(dev, job,
@@ -165,2 +168 @@
- 				      table->its[pattern_template_index]->item_flags,
- 				      flow->table, actions,
+ 				      pattern_template_index, actions,
@@ -171,4 +173,2 @@
- 					    pattern_template_index, &priv->hw_q[queue].pp);
-@@ -4074,9 +4078,12 @@ error:
- 		mlx5_ipool_free(table->resource, res_idx);
- 	if (flow_idx)
+ 					    pattern_template_index, job);
+@@ -3448,9 +3452,12 @@ error:
@@ -175,0 +176,2 @@
+ 	if (res_idx)
+ 		mlx5_ipool_free(table->resource, res_idx);
@@ -189 +191 @@
-index def0b19deb..0197c098f6 100644
+index 41edd19bb8..7a88a4001a 100644
@@ -241 +243 @@
-@@ -325,6 +328,11 @@ mlx5_hws_cnt_svc(void *opaque)
+@@ -315,6 +318,11 @@ mlx5_hws_cnt_svc(void *opaque)

  parent reply	other threads:[~2024-12-07  8:08 UTC|newest]

Thread overview: 230+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-11  6:26 patch " Xueming Li
2024-11-11  6:26 ` patch 'bus/vdev: revert fix devargs in secondary process' " Xueming Li
2024-11-11  6:26 ` patch 'log: add a per line log helper' " Xueming Li
2024-11-12  9:02   ` David Marchand
2024-11-12 11:35     ` Xueming Li
2024-11-12 12:47       ` David Marchand
2024-11-12 13:56         ` Xueming Li
2024-11-12 14:09           ` David Marchand
2024-11-12 14:11             ` Xueming Li
2024-11-11  6:26 ` patch 'drivers: remove redundant newline from logs' " Xueming Li
2024-11-11  6:26 ` patch 'eal/x86: fix 32-bit write combining store' " Xueming Li
2024-11-11  6:26 ` patch 'test/event: fix schedule type' " Xueming Li
2024-11-11  6:26 ` patch 'test/event: fix target event queue' " Xueming Li
2024-11-11  6:26 ` patch 'examples/eventdev: fix queue crash with generic pipeline' " Xueming Li
2024-11-11  6:26 ` patch 'crypto/dpaa2_sec: fix memory leak' " Xueming Li
2024-11-11  6:26 ` patch 'common/dpaax/caamflib: fix PDCP SNOW-ZUC watchdog' " Xueming Li
2024-11-11  6:26 ` patch 'dev: fix callback lookup when unregistering device' " Xueming Li
2024-11-11  6:26 ` patch 'crypto/scheduler: fix session size computation' " Xueming Li
2024-11-11  6:26 ` patch 'examples/ipsec-secgw: fix dequeue count from cryptodev' " Xueming Li
2024-11-11  6:26 ` patch 'bpf: fix free function mismatch if convert fails' " Xueming Li
2024-11-11  6:27 ` patch 'baseband/la12xx: fix use after free in modem config' " Xueming Li
2024-11-11  6:27 ` patch 'common/qat: fix use after free in device probe' " Xueming Li
2024-11-11  6:27 ` patch 'common/idpf: fix use after free in mailbox init' " Xueming Li
2024-11-11  6:27 ` patch 'crypto/bcmfs: fix free function mismatch' " Xueming Li
2024-11-11  6:27 ` patch 'dma/idxd: fix free function mismatch in device probe' " Xueming Li
2024-11-11  6:27 ` patch 'event/cnxk: fix free function mismatch in port config' " Xueming Li
2024-11-11  6:27 ` patch 'net/cnxk: fix use after free in mempool create' " Xueming Li
2024-11-11  6:27 ` patch 'net/cpfl: fix invalid free in JSON parser' " Xueming Li
2024-11-11  6:27 ` patch 'net/e1000: fix use after free in filter flush' " Xueming Li
2024-11-11  6:27 ` patch 'net/nfp: fix double free in flow destroy' " Xueming Li
2024-11-11  6:27 ` patch 'net/sfc: fix use after free in debug logs' " Xueming Li
2024-11-11  6:27 ` patch 'raw/ifpga/base: fix use after free' " Xueming Li
2024-11-11  6:27 ` patch 'raw/ifpga: fix free function mismatch in interrupt config' " Xueming Li
2024-11-11  6:27 ` patch 'examples/vhost: fix free function mismatch' " Xueming Li
2024-11-11  6:27 ` patch 'net/nfb: fix use after free' " Xueming Li
2024-11-11  6:27 ` patch 'power: enable CPPC' " Xueming Li
2024-11-11  6:27 ` patch 'fib6: add runtime checks in AVX512 lookup' " Xueming Li
2024-11-11  6:27 ` patch 'pcapng: fix handling of chained mbufs' " Xueming Li
2024-11-11  6:27 ` patch 'app/dumpcap: fix handling of jumbo frames' " Xueming Li
2024-11-11  6:27 ` patch 'ml/cnxk: fix handling of TVM model I/O' " Xueming Li
2024-11-11  6:27 ` patch 'net/cnxk: fix Rx timestamp handling for VF' " Xueming Li
2024-11-11  6:27 ` patch 'net/cnxk: fix Rx offloads to handle timestamp' " Xueming Li
2024-11-11  6:27 ` patch 'event/cnxk: fix Rx timestamp handling' " Xueming Li
2024-11-11  6:27 ` patch 'common/cnxk: fix MAC address change with active VF' " Xueming Li
2024-11-11  6:27 ` patch 'common/cnxk: fix inline CTX write' " Xueming Li
2024-11-11  6:27 ` patch 'common/cnxk: fix CPT HW word size for outbound SA' " Xueming Li
2024-11-11  6:27 ` patch 'net/cnxk: fix OOP handling for inbound packets' " Xueming Li
2024-11-11  6:27 ` patch 'event/cnxk: fix OOP handling in event mode' " Xueming Li
2024-11-11  6:27 ` patch 'common/cnxk: fix base log level' " Xueming Li
2024-11-11  6:27 ` patch 'common/cnxk: fix IRQ reconfiguration' " Xueming Li
2024-11-11  6:27 ` patch 'baseband/acc: fix access to deallocated mem' " Xueming Li
2024-11-11  6:27 ` patch 'baseband/acc: fix soft output bypass RM' " Xueming Li
2024-11-11  6:27 ` patch 'vhost: fix offset while mapping log base address' " Xueming Li
2024-11-11  6:27 ` patch 'vdpa: update used flags in used ring relay' " Xueming Li
2024-11-11  6:27 ` patch 'vdpa/nfp: fix hardware initialization' " Xueming Li
2024-11-11  6:27 ` patch 'vdpa/nfp: fix reconfiguration' " Xueming Li
2024-11-11  6:27 ` patch 'net/virtio-user: reset used index counter' " Xueming Li
2024-11-11  6:27 ` patch 'vhost: restrict set max queue pair API to VDUSE' " Xueming Li
2024-11-11  6:27 ` patch 'fib: fix AVX512 lookup' " Xueming Li
2024-11-11  6:27 ` patch 'net/e1000: fix link status crash in secondary process' " Xueming Li
2024-11-11  6:27 ` patch 'net/cpfl: add checks for flow action types' " Xueming Li
2024-11-11  6:27 ` patch 'net/iavf: fix crash when link is unstable' " Xueming Li
2024-11-11  6:27 ` patch 'net/cpfl: fix parsing protocol ID mask field' " Xueming Li
2024-11-11  6:27 ` patch 'net/ice/base: fix link speed for 200G' " Xueming Li
2024-11-11  6:27 ` patch 'net/ice/base: fix iteration of TLVs in Preserved Fields Area' " Xueming Li
2024-11-11  6:27 ` patch 'net/ixgbe/base: fix unchecked return value' " Xueming Li
2024-11-11  6:27 ` patch 'net/i40e/base: fix setting flags in init function' " Xueming Li
2024-11-11  6:27 ` patch 'net/i40e/base: fix misleading debug logs and comments' " Xueming Li
2024-11-11  6:27 ` patch 'net/i40e/base: add missing X710TL device check' " Xueming Li
2024-11-11  6:27 ` patch 'net/i40e/base: fix blinking X722 with X557 PHY' " Xueming Li
2024-11-11  6:27 ` patch 'net/i40e/base: fix DDP loading with reserved track ID' " Xueming Li
2024-11-11  6:27 ` patch 'net/i40e/base: fix repeated register dumps' " Xueming Li
2024-11-11  6:27 ` patch 'net/i40e/base: fix unchecked return value' " Xueming Li
2024-11-11  6:27 ` patch 'net/i40e/base: fix loop bounds' " Xueming Li
2024-11-11  6:27 ` patch 'net/iavf: delay VF reset command' " Xueming Li
2024-11-11  6:27 ` patch 'net/i40e: fix AVX-512 pointer copy on 32-bit' " Xueming Li
2024-11-11  6:27 ` patch 'net/ice: " Xueming Li
2024-11-11  6:27 ` patch 'net/iavf: " Xueming Li
2024-11-11  6:27 ` patch 'common/idpf: " Xueming Li
2024-11-11  6:27 ` patch 'net/gve: fix queue setup and stop' " Xueming Li
2024-11-11  6:28 ` patch 'net/gve: fix Tx for chained mbuf' " Xueming Li
2024-11-11  6:28 ` patch 'net/tap: avoid memcpy with null argument' " Xueming Li
2024-11-11  6:28 ` patch 'app/testpmd: remove unnecessary cast' " Xueming Li
2024-11-11  6:28 ` patch 'net/pcap: set live interface as non-blocking' " Xueming Li
2024-11-11  6:28 ` patch 'net/mana: support rdma-core via pkg-config' " Xueming Li
2024-11-11  6:28 ` patch 'net/ena: revert redefining memcpy' " Xueming Li
2024-11-11  6:28 ` patch 'net/hns3: remove some basic address dump' " Xueming Li
2024-11-11  6:28 ` patch 'net/hns3: fix dump counter of registers' " Xueming Li
2024-11-11  6:28 ` patch 'ethdev: fix overflow in descriptor count' " Xueming Li
2024-11-11  6:28 ` patch 'bus/dpaa: fix PFDRs leaks due to FQRNIs' " Xueming Li
2024-11-11  6:28 ` patch 'net/dpaa: fix typecasting channel ID' " Xueming Li
2024-11-11  6:28 ` patch 'bus/dpaa: fix VSP for 1G fm1-mac9 and 10' " Xueming Li
2024-11-11  6:28 ` patch 'bus/dpaa: fix the fman details status' " Xueming Li
2024-11-11  6:28 ` patch 'net/dpaa: fix reallocate mbuf handling' " Xueming Li
2024-11-11  6:28 ` patch 'net/gve: fix mbuf allocation memory leak for DQ Rx' " Xueming Li
2024-11-11  6:28 ` patch 'net/gve: always attempt Rx refill on DQ' " Xueming Li
2024-11-11  6:28 ` patch 'net/nfp: fix type declaration of some variables' " Xueming Li
2024-11-11  6:28 ` patch 'net/nfp: fix representor port link status update' " Xueming Li
2024-11-11  6:28 ` patch 'net/gve: fix refill logic causing memory corruption' " Xueming Li
2024-11-11  6:28 ` patch 'net/gve: add IO memory barriers before reading descriptors' " Xueming Li
2024-11-11  6:28 ` patch 'net/memif: fix buffer overflow in zero copy Rx' " Xueming Li
2024-11-11  6:28 ` patch 'net/tap: restrict maximum number of MP FDs' " Xueming Li
2024-11-11  6:28 ` patch 'ethdev: verify queue ID in Tx done cleanup' " Xueming Li
2024-11-11  6:28 ` patch 'net/hns3: verify reset type from firmware' " Xueming Li
2024-11-11  6:28 ` patch 'net/nfp: fix link change return value' " Xueming Li
2024-11-11  6:28 ` patch 'net/nfp: fix pause frame setting check' " Xueming Li
2024-11-11  6:28 ` patch 'net/pcap: fix blocking Rx' " Xueming Li
2024-11-11  6:28 ` patch 'net/ice/base: add bounds check' " Xueming Li
2024-11-11  6:28 ` patch 'net/ice/base: fix VLAN replay after reset' " Xueming Li
2024-11-11  6:28 ` patch 'net/iavf: preserve MAC address with i40e PF Linux driver' " Xueming Li
2024-11-11  6:28 ` patch 'net/mlx5: workaround list management of Rx queue control' " Xueming Li
2024-11-11  6:28 ` patch 'net/mlx5/hws: fix flex item as tunnel header' " Xueming Li
2024-11-11  6:28 ` patch 'net/mlx5: add flex item query for tunnel mode' " Xueming Li
2024-11-11  6:28 ` patch 'net/mlx5: fix flex item " Xueming Li
2024-11-11  6:28 ` patch 'net/mlx5: fix number of supported flex parsers' " Xueming Li
2024-11-11  6:28 ` patch 'app/testpmd: remove flex item init command leftover' " Xueming Li
2024-11-11  6:28 ` patch 'net/mlx5: fix next protocol validation after flex item' " Xueming Li
2024-11-11  6:28 ` patch 'net/mlx5: fix non full word sample fields in " Xueming Li
2024-11-11  6:28 ` patch 'net/mlx5: fix flex item header length field translation' " Xueming Li
2024-11-11  6:28 ` patch 'build: remove version check on compiler links function' " Xueming Li
2024-11-11  6:28 ` patch 'hash: fix thash LFSR initialization' " Xueming Li
2024-11-11  6:28 ` patch 'net/nfp: notify flower firmware about PF speed' " Xueming Li
2024-11-11  6:28 ` patch 'net/nfp: do not set IPv6 flag in transport mode' " Xueming Li
2024-11-11  6:28 ` patch 'dmadev: fix potential null pointer access' " Xueming Li
2024-11-11  6:28 ` patch 'net/gve/base: fix build with Fedora Rawhide' " Xueming Li
2024-11-11  6:28 ` patch 'power: fix mapped lcore ID' " Xueming Li
2024-11-11  6:28 ` patch 'net/ionic: fix build with Fedora Rawhide' " Xueming Li
2024-11-11  6:28 ` patch '' " Xueming Li
2024-12-07  7:59   ` patches " Xueming Li
2024-12-07  7:59     ` patch 'net/netvsc: fix using Tx queue higher than Rx queues' " Xueming Li
2024-12-07  7:59     ` patch 'net/hns3: restrict tunnel flow rule to one header' " Xueming Li
2024-12-07  7:59     ` patch 'net/hns3: register VLAN flow match mode parameter' " Xueming Li
2024-12-07  7:59     ` patch 'net/ice: detect stopping a flow director queue twice' " Xueming Li
2024-12-07  7:59     ` patch 'net/ixgbe: fix link status delay on FreeBSD' " Xueming Li
2024-12-07  7:59     ` patch 'net/mvneta: fix possible out-of-bounds write' " Xueming Li
2024-12-07  7:59     ` patch 'common/cnxk: fix double free of flow aging resources' " Xueming Li
2024-12-07  7:59     ` patch 'crypto/openssl: fix 3DES-CTR with big endian CPUs' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix trace script for multiple burst completion' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix real time counter reading from PCI BAR' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix Tx tracing to use single clock source' " Xueming Li
2024-12-07  7:59     ` patch 'eal/unix: optimize thread creation' " Xueming Li
2024-12-09  7:00       ` David Marchand
2024-12-09  8:04         ` Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix memory leak in metering' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix GRE flow item translation for root table' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5/hws: fix range definer error recovery' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix SQ flow item size' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix non-template flow action validation' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix SWS meter state initialization' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix reported Rx/Tx descriptor limits' " Xueming Li
2024-12-07  7:59     ` patch 'net/mlx5: fix indirect list flow action callback invocation' " Xueming Li
2024-12-07  7:59     ` patch 'app/dumpcap: remove unused struct array' " Xueming Li
2024-12-07  7:59     ` patch 'bus/fslmc: fix Coverity warnings in QBMAN' " Xueming Li
2024-12-07  7:59     ` patch 'net/dpaa2: fix memory corruption in TM' " Xueming Li
2024-12-07  7:59     ` patch 'examples/l3fwd-power: fix options parsing overflow' " Xueming Li
2024-12-07  7:59     ` patch 'examples/l3fwd: fix read beyond boundaries' " Xueming Li
2024-12-07  7:59     ` patch 'test/bonding: remove redundant info query' " Xueming Li
2024-12-07  7:59     ` patch 'examples/ntb: check info query return' " Xueming Li
2024-12-07  7:59     ` patch 'net/netvsc: force Tx VLAN offload on 801.2Q packet' " Xueming Li
2024-12-07  7:59     ` patch 'net/vmxnet3: fix crash after configuration failure' " Xueming Li
2024-12-07  7:59     ` patch 'net/hns3: remove ROH devices' " Xueming Li
2024-12-07  7:59     ` patch 'net/txgbe: fix SWFW mbox' " Xueming Li
2024-12-07  7:59     ` patch 'net/txgbe: fix VF-PF mbox interrupt' " Xueming Li
2024-12-07  7:59     ` patch 'net/txgbe: remove outer UDP checksum capability' " Xueming Li
2024-12-07  7:59     ` patch 'net/txgbe: fix driver load bit to inform firmware' " Xueming Li
2024-12-07  7:59     ` patch 'net/ngbe: " Xueming Li
2024-12-07  7:59     ` patch 'net/ngbe: reconfigure more MAC Rx registers' " Xueming Li
2024-12-07  7:59     ` patch 'net/ngbe: fix interrupt lost in legacy or MSI mode' " Xueming Li
2024-12-07  7:59     ` patch 'net/ngbe: restrict configuration of VLAN strip offload' " Xueming Li
2024-12-07  7:59     ` patch 'net/vmxnet3: fix potential out of bounds stats access' " Xueming Li
2024-12-07  7:59     ` patch 'net/vmxnet3: support larger MTU with version 6' " Xueming Li
2024-12-07  7:59     ` patch 'net/hns3: fix error code for repeatedly create counter' " Xueming Li
2024-12-07  8:00     ` patch 'net/hns3: fix fully use hardware flow director table' " Xueming Li
2024-12-07  8:00     ` patch 'event/octeontx: fix possible integer overflow' " Xueming Li
2024-12-07  8:00     ` patch 'baseband/acc: fix ring memory allocation' " Xueming Li
2024-12-07  8:00     ` patch 'crypto/openssl: fix potential string overflow' " Xueming Li
2024-12-07  8:00     ` patch 'test/crypto: fix synchronous API calls' " Xueming Li
2024-12-07  8:00     ` patch 'crypto/qat: fix modexp/inv length' " Xueming Li
2024-12-07  8:00     ` patch 'crypto/qat: fix ECDSA session handling' " Xueming Li
2024-12-07  8:00     ` patch 'net/igc: fix Rx buffers when timestamping enabled' " Xueming Li
2024-12-07  8:00     ` patch 'net/cpfl: fix forwarding to physical port' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnxt/tf_core: fix WC TCAM multi-slice delete' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnxt/tf_core: fix TCAM manager data corruption' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnxt/tf_core: fix Thor TF EM key size check' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnxt/tf_core: fix slice count in case of HA entry move' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnxt: fix reading SFF-8436 SFP EEPROMs' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnxt: fix TCP and UDP checksum flags' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnxt: fix bad action offset in Tx BD' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnx2x: remove dead conditional' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnx2x: fix always true expression' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnx2x: fix possible infinite loop at startup' " Xueming Li
2024-12-07  8:00     ` patch 'net/bnx2x: fix duplicate branch' " Xueming Li
2024-12-07  8:00     ` patch 'common/cnxk: fix build on Ubuntu 24.04' " Xueming Li
2024-12-07  8:00     ` patch 'net/cnxk: " Xueming Li
2024-12-09  5:42       ` [EXTERNAL] " Sunil Kumar Kori
2024-12-09  5:42       ` Sunil Kumar Kori
2024-12-07  8:00     ` patch 'examples/l2fwd-event: fix spinlock handling' " Xueming Li
2024-12-07  8:00     ` patch 'eventdev: fix possible array underflow/overflow' " Xueming Li
2024-12-07  8:00     ` patch 'net/dpaa2: remove unnecessary check for null before free' " Xueming Li
2024-12-07  8:00     ` patch 'common/mlx5: fix error CQE handling for 128 bytes CQE' " Xueming Li
2024-12-07  8:00     ` patch 'net/mlx5: fix shared queue port number in vector Rx' " Xueming Li
2024-12-07  8:00     ` patch 'net/mlx5/hws: fix allocation of STCs' " Xueming Li
2024-12-07  8:00     ` Xueming Li [this message]
2024-12-07  8:00     ` patch 'net/mlx5: fix Rx queue control management' " Xueming Li
2024-12-07  8:00     ` patch 'common/mlx5: fix misalignment' " Xueming Li
2024-12-07  8:00     ` patch 'net/mlx5: fix default RSS flows creation order' " Xueming Li
2024-12-07  8:00     ` patch 'net/mlx5: fix Rx queue reference count in flushing flows' " Xueming Li
2024-12-07  8:00     ` patch 'net/mlx5: fix miniCQEs number calculation' " Xueming Li
2024-12-07  8:00     ` patch 'bus/dpaa: fix lock condition during error handling' " Xueming Li
2024-12-07  8:00     ` patch 'net/iavf: add segment-length check to Tx prep' " Xueming Li
2024-12-07  8:00     ` patch 'net/i40e: check register read for outer VLAN' " Xueming Li
2024-12-07  8:00     ` patch 'common/dpaax/caamflib: enable fallthrough warnings' " Xueming Li
2024-12-07  8:00     ` patch 'net/e1000/base: fix fallthrough in switch' " Xueming Li
2024-12-07  8:00     ` patch 'app/procinfo: fix leak on exit' " Xueming Li
2024-12-07  8:00     ` patch 'member: fix choice of bucket for displacement' " Xueming Li
2024-12-07  8:00     ` patch 'app/testpmd: fix aged flow destroy' " Xueming Li
2024-12-07  8:00     ` patch 'net/mlx5: fix shared Rx queue control release' " Xueming Li
2024-12-07  8:00     ` patch 'vhost: fix deadlock in Rx async path' " Xueming Li
2024-12-07  8:00     ` patch 'net/txgbe: fix a mass of interrupts' " Xueming Li
2024-12-07  8:00     ` patch 'pcapng: avoid potential unaligned data' " Xueming Li
2024-12-07  8:00     ` patch 'test/bonding: fix loop on members' " Xueming Li
2024-12-07  8:00     ` patch 'test/bonding: fix MAC address comparison' " Xueming Li
2024-12-07  8:00     ` patch 'test/security: fix IPv6 extension loop' " Xueming Li
2024-12-07  8:00     ` patch 'test/event: avoid duplicate initialization' " Xueming Li
2024-12-07  8:00     ` patch 'test/eal: fix loop coverage for alignment macros' " Xueming Li
2024-12-07  8:00     ` patch 'test/eal: fix lcore check' " Xueming Li
2024-12-07  8:00     ` patch 'app/testpmd: remove redundant policy action condition' " Xueming Li
2024-12-07  8:00     ` patch 'app/testpmd: avoid potential outside of array reference' " Xueming Li
2024-12-07  8:00     ` patch 'doc: correct definition of stats per queue feature' " Xueming Li
2024-12-07  8:00     ` patch 'devtools: fix check of multiple commits fixed at once' " Xueming Li

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=20241207080055.488538-71-xuemingl@nvidia.com \
    --to=xuemingl@nvidia.com \
    --cc=dsosnowski@nvidia.com \
    --cc=orika@nvidia.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).