patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Xueming Li <xuemingl@nvidia.com>
To: David Marchand <david.marchand@redhat.com>
Cc: Chenbo Xia <chenbo.xia@intel.com>,
	Dukai Yuan <dukaix.yuan@intel.com>, dpdk stable <stable@dpdk.org>
Subject: patch 'net/vhost: fix Rx interrupt' has been queued to stable release 22.11.2
Date: Sun, 9 Apr 2023 23:24:59 +0800	[thread overview]
Message-ID: <20230409152529.5308-112-xuemingl@nvidia.com> (raw)
In-Reply-To: <20230409152529.5308-1-xuemingl@nvidia.com>

Hi,

FYI, your patch has been queued to stable release 22.11.2

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/11/23. 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=22.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/log/?h=22.11-staging/commit/7be8e75277a0b3a4065054e8f53ec4b38e3af83f

Thanks.

Xueming Li <xuemingl@nvidia.com>

---
From 7be8e75277a0b3a4065054e8f53ec4b38e3af83f Mon Sep 17 00:00:00 2001
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 9 Mar 2023 13:37:52 +0100
Subject: [PATCH] net/vhost: fix Rx interrupt
Cc: Xueming Li <xuemingl@nvidia.com>

[ upstream commit 7995bf4c295464c3a4c3f4ac500f890ab55567e7 ]

In the situation when a port was started while no virtio driver was
connected, Rx interrupts were broken.
They were also broken after a virtio driver reconnects.

There were several issues mixed in:
- this driver was not exposing a fixed file descriptor per Rx queue,
  If a virtio driver was not connected yet, each Rx queue vector was
  pointing at a -1 fd, and an application could interpret this as a lack
  of Rx interrupt support,
- when a virtio driver later (re)connected, this net/vhost driver was
  hacking into the EAL layer epoll fd to remove a old vring kickfd and
  insert the new vring kickfd. This hack constitutes a layer violation
  plus users of rte_eth_dev_rx_intr_ctl_q_get_fd() were not notified of
  this change,
- in the case of reconnection, because the interrupt handle was
  reallocated, a 0 fd was failing to be removed from the EAL layer
  epoll fd, which resulted in never fixing the EAL epoll fd,

To fix Rx interrupts:
- allocating (eth_vhost_install_intr) / releasing
  (eth_vhost_uninstall_intr) the interrupt handle is moved when
  starting / closing the port, while setting / resetting per rxq fd is
  triggered by vhost events via some new helpers (see
  eth_vhost_configure_intr and eth_vhost_unconfigure_intr),
- a "proxy" epoll fd is created per Rx queue at the time the interrupt
  handle is allocated, so applications can start waiting for events on
  those fds, even before a virtio driver initialises,
- when available, vring kickd are populated in the "proxy" epoll fd,

Bugzilla ID: 1135
Fixes: 3f8ff12821e4 ("vhost: support interrupt mode")
Fixes: 3d4cd4be577c ("net/vhost: fix interrupt mode")
Fixes: d61138d4f0e2 ("drivers: remove direct access to interrupt handle")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
Tested-by: Dukai Yuan <dukaix.yuan@intel.com>
---
 drivers/net/vhost/rte_eth_vhost.c | 318 ++++++++++++------------------
 1 file changed, 127 insertions(+), 191 deletions(-)

diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
index 96598f710d..f7e1b268ed 100644
--- a/drivers/net/vhost/rte_eth_vhost.c
+++ b/drivers/net/vhost/rte_eth_vhost.c
@@ -78,8 +78,9 @@ struct vhost_queue {
 	uint16_t port;
 	uint16_t virtqueue_id;
 	struct vhost_stats stats;
-	int intr_enable;
 	rte_spinlock_t intr_lock;
+	struct epoll_event ev;
+	int kickfd;
 };
 
 struct pmd_internal {
@@ -545,115 +546,68 @@ find_internal_resource(char *ifname)
 	return list;
 }
 
-static int
+static void
 eth_vhost_update_intr(struct rte_eth_dev *eth_dev, uint16_t rxq_idx)
 {
-	struct rte_intr_handle *handle = eth_dev->intr_handle;
-	struct rte_epoll_event rev, *elist;
-	int epfd, ret;
-
-	if (handle == NULL)
-		return 0;
-
-	elist = rte_intr_elist_index_get(handle, rxq_idx);
-	if (rte_intr_efds_index_get(handle, rxq_idx) == elist->fd)
-		return 0;
-
-	VHOST_LOG(INFO, "kickfd for rxq-%d was changed, updating handler.\n",
-			rxq_idx);
+	struct rte_vhost_vring vring;
+	struct vhost_queue *vq;
 
-	if (elist->fd != -1)
-		VHOST_LOG(ERR, "Unexpected previous kickfd value (Got %d, expected -1).\n",
-			elist->fd);
+	vq = eth_dev->data->rx_queues[rxq_idx];
+	if (vq == NULL || vq->vid < 0)
+		return;
 
-	/*
-	 * First remove invalid epoll event, and then install
-	 * the new one. May be solved with a proper API in the
-	 * future.
-	 */
-	epfd = elist->epfd;
-	rev = *elist;
-	ret = rte_epoll_ctl(epfd, EPOLL_CTL_DEL, rev.fd,
-			elist);
-	if (ret) {
-		VHOST_LOG(ERR, "Delete epoll event failed.\n");
-		return ret;
+	if (rte_vhost_get_vhost_vring(vq->vid, (rxq_idx << 1) + 1, &vring) < 0) {
+		VHOST_LOG(DEBUG, "Failed to get rxq-%d's vring, skip!\n", rxq_idx);
+		return;
 	}
 
-	rev.fd = rte_intr_efds_index_get(handle, rxq_idx);
-	if (rte_intr_elist_index_set(handle, rxq_idx, rev))
-		return -rte_errno;
+	rte_spinlock_lock(&vq->intr_lock);
 
-	elist = rte_intr_elist_index_get(handle, rxq_idx);
-	ret = rte_epoll_ctl(epfd, EPOLL_CTL_ADD, rev.fd, elist);
-	if (ret) {
-		VHOST_LOG(ERR, "Add epoll event failed.\n");
-		return ret;
+	/* Remove previous kickfd from proxy epoll */
+	if (vq->kickfd >= 0 && vq->kickfd != vring.kickfd) {
+		if (epoll_ctl(vq->ev.data.fd, EPOLL_CTL_DEL, vq->kickfd, &vq->ev) < 0) {
+			VHOST_LOG(DEBUG, "Failed to unregister %d from rxq-%d epoll: %s\n",
+				vq->kickfd, rxq_idx, strerror(errno));
+		} else {
+			VHOST_LOG(DEBUG, "Unregistered %d from rxq-%d epoll\n",
+				vq->kickfd, rxq_idx);
+		}
+		vq->kickfd = -1;
+	}
+
+	/* Add new one, if valid */
+	if (vq->kickfd != vring.kickfd && vring.kickfd >= 0) {
+		if (epoll_ctl(vq->ev.data.fd, EPOLL_CTL_ADD, vring.kickfd, &vq->ev) < 0) {
+			VHOST_LOG(ERR, "Failed to register %d in rxq-%d epoll: %s\n",
+				vring.kickfd, rxq_idx, strerror(errno));
+		} else {
+			vq->kickfd = vring.kickfd;
+			VHOST_LOG(DEBUG, "Registered %d in rxq-%d epoll\n",
+				vq->kickfd, rxq_idx);
+		}
 	}
 
-	return 0;
+	rte_spinlock_unlock(&vq->intr_lock);
 }
 
 static int
 eth_rxq_intr_enable(struct rte_eth_dev *dev, uint16_t qid)
 {
-	struct rte_vhost_vring vring;
-	struct vhost_queue *vq;
-	int old_intr_enable, ret = 0;
-
-	vq = dev->data->rx_queues[qid];
-	if (!vq) {
-		VHOST_LOG(ERR, "rxq%d is not setup yet\n", qid);
-		return -1;
-	}
-
-	rte_spinlock_lock(&vq->intr_lock);
-	old_intr_enable = vq->intr_enable;
-	vq->intr_enable = 1;
-	ret = eth_vhost_update_intr(dev, qid);
-	rte_spinlock_unlock(&vq->intr_lock);
-
-	if (ret < 0) {
-		VHOST_LOG(ERR, "Failed to update rxq%d's intr\n", qid);
-		vq->intr_enable = old_intr_enable;
-		return ret;
-	}
+	struct vhost_queue *vq = dev->data->rx_queues[qid];
 
-	ret = rte_vhost_get_vhost_vring(vq->vid, (qid << 1) + 1, &vring);
-	if (ret < 0) {
-		VHOST_LOG(ERR, "Failed to get rxq%d's vring\n", qid);
-		return ret;
-	}
-	VHOST_LOG(INFO, "Enable interrupt for rxq%d\n", qid);
-	rte_vhost_enable_guest_notification(vq->vid, (qid << 1) + 1, 1);
-	rte_wmb();
+	if (vq->vid >= 0)
+		rte_vhost_enable_guest_notification(vq->vid, (qid << 1) + 1, 1);
 
-	return ret;
+	return 0;
 }
 
 static int
 eth_rxq_intr_disable(struct rte_eth_dev *dev, uint16_t qid)
 {
-	struct rte_vhost_vring vring;
-	struct vhost_queue *vq;
-	int ret = 0;
-
-	vq = dev->data->rx_queues[qid];
-	if (!vq) {
-		VHOST_LOG(ERR, "rxq%d is not setup yet\n", qid);
-		return -1;
-	}
+	struct vhost_queue *vq = dev->data->rx_queues[qid];
 
-	ret = rte_vhost_get_vhost_vring(vq->vid, (qid << 1) + 1, &vring);
-	if (ret < 0) {
-		VHOST_LOG(ERR, "Failed to get rxq%d's vring\n", qid);
-		return ret;
-	}
-	VHOST_LOG(INFO, "Disable interrupt for rxq%d\n", qid);
-	rte_vhost_enable_guest_notification(vq->vid, (qid << 1) + 1, 0);
-	rte_wmb();
-
-	vq->intr_enable = 0;
+	if (vq->vid >= 0)
+		rte_vhost_enable_guest_notification(vq->vid, (qid << 1) + 1, 0);
 
 	return 0;
 }
@@ -664,6 +618,14 @@ eth_vhost_uninstall_intr(struct rte_eth_dev *dev)
 	struct rte_intr_handle *intr_handle = dev->intr_handle;
 
 	if (intr_handle != NULL) {
+		int i;
+
+		for (i = 0; i < dev->data->nb_rx_queues; i++) {
+			int epoll_fd = rte_intr_efds_index_get(dev->intr_handle, i);
+
+			if (epoll_fd >= 0)
+				close(epoll_fd);
+		}
 		rte_intr_vec_list_free(intr_handle);
 		rte_intr_instance_free(intr_handle);
 	}
@@ -673,15 +635,11 @@ eth_vhost_uninstall_intr(struct rte_eth_dev *dev)
 static int
 eth_vhost_install_intr(struct rte_eth_dev *dev)
 {
-	struct rte_vhost_vring vring;
-	struct vhost_queue *vq;
 	int nb_rxq = dev->data->nb_rx_queues;
-	int i;
-	int ret;
+	struct vhost_queue *vq;
 
-	/* uninstall firstly if we are reconnecting */
-	if (dev->intr_handle != NULL)
-		eth_vhost_uninstall_intr(dev);
+	int ret;
+	int i;
 
 	dev->intr_handle = rte_intr_instance_alloc(RTE_INTR_INSTANCE_F_PRIVATE);
 	if (dev->intr_handle == NULL) {
@@ -689,7 +647,7 @@ eth_vhost_install_intr(struct rte_eth_dev *dev)
 		ret = -ENOMEM;
 		goto error;
 	}
-	if (rte_intr_efd_counter_size_set(dev->intr_handle, sizeof(uint64_t))) {
+	if (rte_intr_efd_counter_size_set(dev->intr_handle, 0)) {
 		ret = -rte_errno;
 		goto error;
 	}
@@ -700,40 +658,28 @@ eth_vhost_install_intr(struct rte_eth_dev *dev)
 		goto error;
 	}
 
-
-	VHOST_LOG(INFO, "Prepare intr vec\n");
+	VHOST_LOG(DEBUG, "Prepare intr vec\n");
 	for (i = 0; i < nb_rxq; i++) {
-		if (rte_intr_vec_list_index_set(dev->intr_handle, i,
-				RTE_INTR_VEC_RXTX_OFFSET + i)) {
-			ret = -rte_errno;
+		int epoll_fd = epoll_create1(0);
+
+		if (epoll_fd < 0) {
+			VHOST_LOG(ERR, "Failed to create proxy epoll fd for rxq-%d\n", i);
+			ret = -errno;
 			goto error;
 		}
-		if (rte_intr_efds_index_set(dev->intr_handle, i, -1)) {
+
+		if (rte_intr_vec_list_index_set(dev->intr_handle, i,
+				RTE_INTR_VEC_RXTX_OFFSET + i) ||
+				rte_intr_efds_index_set(dev->intr_handle, i, epoll_fd)) {
 			ret = -rte_errno;
+			close(epoll_fd);
 			goto error;
 		}
-		vq = dev->data->rx_queues[i];
-		if (!vq) {
-			VHOST_LOG(INFO, "rxq-%d not setup yet, skip!\n", i);
-			continue;
-		}
-
-		ret = rte_vhost_get_vhost_vring(vq->vid, (i << 1) + 1, &vring);
-		if (ret < 0) {
-			VHOST_LOG(INFO,
-				"Failed to get rxq-%d's vring, skip!\n", i);
-			continue;
-		}
-
-		if (vring.kickfd < 0) {
-			VHOST_LOG(INFO,
-				"rxq-%d's kickfd is invalid, skip!\n", i);
-			continue;
-		}
 
-		if (rte_intr_efds_index_set(dev->intr_handle, i, vring.kickfd))
-			continue;
-		VHOST_LOG(INFO, "Installed intr vec for rxq-%d\n", i);
+		vq = dev->data->rx_queues[i];
+		memset(&vq->ev, 0, sizeof(vq->ev));
+		vq->ev.events = EPOLLIN;
+		vq->ev.data.fd = epoll_fd;
 	}
 
 	if (rte_intr_nb_efd_set(dev->intr_handle, nb_rxq)) {
@@ -756,6 +702,46 @@ error:
 	return ret;
 }
 
+static void
+eth_vhost_configure_intr(struct rte_eth_dev *dev)
+{
+	int i;
+
+	VHOST_LOG(DEBUG, "Configure intr vec\n");
+	for (i = 0; i < dev->data->nb_rx_queues; i++)
+		eth_vhost_update_intr(dev, i);
+}
+
+static void
+eth_vhost_unconfigure_intr(struct rte_eth_dev *eth_dev)
+{
+	struct vhost_queue *vq;
+	int i;
+
+	VHOST_LOG(DEBUG, "Unconfigure intr vec\n");
+	for (i = 0; i < eth_dev->data->nb_rx_queues; i++) {
+		vq = eth_dev->data->rx_queues[i];
+		if (vq == NULL || vq->vid < 0)
+			continue;
+
+		rte_spinlock_lock(&vq->intr_lock);
+
+		/* Remove previous kickfd from proxy epoll */
+		if (vq->kickfd >= 0) {
+			if (epoll_ctl(vq->ev.data.fd, EPOLL_CTL_DEL, vq->kickfd, &vq->ev) < 0) {
+				VHOST_LOG(DEBUG, "Failed to unregister %d from rxq-%d epoll: %s\n",
+					vq->kickfd, i, strerror(errno));
+			} else {
+				VHOST_LOG(DEBUG, "Unregistered %d from rxq-%d epoll\n",
+					vq->kickfd, i);
+			}
+			vq->kickfd = -1;
+		}
+
+		rte_spinlock_unlock(&vq->intr_lock);
+	}
+}
+
 static void
 update_queuing_status(struct rte_eth_dev *dev, bool wait_queuing)
 {
@@ -862,16 +848,8 @@ new_device(int vid)
 	internal->vid = vid;
 	if (rte_atomic32_read(&internal->started) == 1) {
 		queue_setup(eth_dev, internal);
-
-		if (dev_conf->intr_conf.rxq) {
-			if (eth_vhost_install_intr(eth_dev) < 0) {
-				VHOST_LOG(INFO,
-					"Failed to install interrupt handler.\n");
-					return -1;
-			}
-		}
-	} else {
-		VHOST_LOG(INFO, "RX/TX queues not exist yet\n");
+		if (dev_conf->intr_conf.rxq)
+			eth_vhost_configure_intr(eth_dev);
 	}
 
 	for (i = 0; i < rte_vhost_get_vring_num(vid); i++)
@@ -915,6 +893,7 @@ destroy_device(int vid)
 
 	rte_atomic32_set(&internal->dev_attached, 0);
 	update_queuing_status(eth_dev, true);
+	eth_vhost_unconfigure_intr(eth_dev);
 
 	eth_dev->data->dev_link.link_status = RTE_ETH_LINK_DOWN;
 
@@ -943,55 +922,10 @@ destroy_device(int vid)
 	rte_spinlock_unlock(&state->lock);
 
 	VHOST_LOG(INFO, "Vhost device %d destroyed\n", vid);
-	eth_vhost_uninstall_intr(eth_dev);
 
 	rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC, NULL);
 }
 
-static int
-vring_conf_update(int vid, struct rte_eth_dev *eth_dev, uint16_t vring_id)
-{
-	struct rte_eth_conf *dev_conf = &eth_dev->data->dev_conf;
-	struct pmd_internal *internal = eth_dev->data->dev_private;
-	struct vhost_queue *vq;
-	struct rte_vhost_vring vring;
-	int rx_idx = vring_id % 2 ? (vring_id - 1) >> 1 : -1;
-	int ret = 0;
-
-	/*
-	 * The vring kickfd may be changed after the new device notification.
-	 * Update it when the vring state is updated.
-	 */
-	if (rx_idx >= 0 && rx_idx < eth_dev->data->nb_rx_queues &&
-	    rte_atomic32_read(&internal->dev_attached) &&
-	    rte_atomic32_read(&internal->started) &&
-	    dev_conf->intr_conf.rxq) {
-		ret = rte_vhost_get_vhost_vring(vid, vring_id, &vring);
-		if (ret) {
-			VHOST_LOG(ERR, "Failed to get vring %d information.\n",
-					vring_id);
-			return ret;
-		}
-
-		if (rte_intr_efds_index_set(eth_dev->intr_handle, rx_idx,
-						   vring.kickfd))
-			return -rte_errno;
-
-		vq = eth_dev->data->rx_queues[rx_idx];
-		if (!vq) {
-			VHOST_LOG(ERR, "rxq%d is not setup yet\n", rx_idx);
-			return -1;
-		}
-
-		rte_spinlock_lock(&vq->intr_lock);
-		if (vq->intr_enable)
-			ret = eth_vhost_update_intr(eth_dev, rx_idx);
-		rte_spinlock_unlock(&vq->intr_lock);
-	}
-
-	return ret;
-}
-
 static int
 vring_state_changed(int vid, uint16_t vring, int enable)
 {
@@ -1011,9 +945,8 @@ vring_state_changed(int vid, uint16_t vring, int enable)
 	/* won't be NULL */
 	state = vring_states[eth_dev->data->port_id];
 
-	if (enable && vring_conf_update(vid, eth_dev, vring))
-		VHOST_LOG(INFO, "Failed to update vring-%d configuration.\n",
-			  (int)vring);
+	if (eth_dev->data->dev_conf.intr_conf.rxq && vring % 2)
+		eth_vhost_update_intr(eth_dev, (vring - 1) >> 1);
 
 	rte_spinlock_lock(&state->lock);
 	if (state->cur[vring] == enable) {
@@ -1200,18 +1133,17 @@ eth_dev_start(struct rte_eth_dev *eth_dev)
 	struct pmd_internal *internal = eth_dev->data->dev_private;
 	struct rte_eth_conf *dev_conf = &eth_dev->data->dev_conf;
 
-	queue_setup(eth_dev, internal);
-
-	if (rte_atomic32_read(&internal->dev_attached) == 1) {
-		if (dev_conf->intr_conf.rxq) {
-			if (eth_vhost_install_intr(eth_dev) < 0) {
-				VHOST_LOG(INFO,
-					"Failed to install interrupt handler.\n");
-					return -1;
-			}
-		}
+	eth_vhost_uninstall_intr(eth_dev);
+	if (dev_conf->intr_conf.rxq && eth_vhost_install_intr(eth_dev) < 0) {
+		VHOST_LOG(ERR, "Failed to install interrupt handler.\n");
+		return -1;
 	}
 
+	queue_setup(eth_dev, internal);
+	if (rte_atomic32_read(&internal->dev_attached) == 1 &&
+			dev_conf->intr_conf.rxq)
+		eth_vhost_configure_intr(eth_dev);
+
 	rte_atomic32_set(&internal->started, 1);
 	update_queuing_status(eth_dev, false);
 
@@ -1266,6 +1198,8 @@ eth_dev_close(struct rte_eth_dev *dev)
 	rte_free(internal->iface_name);
 	rte_free(internal);
 
+	eth_vhost_uninstall_intr(dev);
+
 	dev->data->dev_private = NULL;
 
 	rte_free(vring_states[dev->data->port_id]);
@@ -1293,6 +1227,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
 	vq->mb_pool = mb_pool;
 	vq->virtqueue_id = rx_queue_id * VIRTIO_QNUM + VIRTIO_TXQ;
 	rte_spinlock_init(&vq->intr_lock);
+	vq->kickfd = -1;
 	dev->data->rx_queues[rx_queue_id] = vq;
 
 	return 0;
@@ -1315,6 +1250,7 @@ eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 
 	vq->virtqueue_id = tx_queue_id * VIRTIO_QNUM + VIRTIO_RXQ;
 	rte_spinlock_init(&vq->intr_lock);
+	vq->kickfd = -1;
 	dev->data->tx_queues[tx_queue_id] = vq;
 
 	return 0;
-- 
2.25.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2023-04-09 21:45:41.619568800 +0800
+++ 0111-net-vhost-fix-Rx-interrupt.patch	2023-04-09 21:45:38.769042200 +0800
@@ -1 +1 @@
-From 7995bf4c295464c3a4c3f4ac500f890ab55567e7 Mon Sep 17 00:00:00 2001
+From 7be8e75277a0b3a4065054e8f53ec4b38e3af83f Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl@nvidia.com>
+
+[ upstream commit 7995bf4c295464c3a4c3f4ac500f890ab55567e7 ]
@@ -39 +41,0 @@
-Cc: stable@dpdk.org
@@ -49 +51 @@
-index 96deb18d91..62ef955ebc 100644
+index 96598f710d..f7e1b268ed 100644

  parent reply	other threads:[~2023-04-09 15:35 UTC|newest]

Thread overview: 303+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-27  6:21 patch " Xueming Li
2023-02-27  6:21 ` patch 'drivers: fix symbol exports when map is omitted' " Xueming Li
2023-02-27  6:58 ` patch 'devtools: fix name check with mbox files' " Xueming Li
2023-02-27  6:58   ` patch 'eal/windows: mark memory config as complete' " Xueming Li
2023-02-27  6:58   ` patch 'kni: fix build on RHEL 9.1' " Xueming Li
2023-02-27  6:58   ` patch 'hash: fix GFNI implementation build with GCC 12' " Xueming Li
2023-02-27  6:58   ` patch 'doc: fix dependency setup in l2fwd-cat example guide' " Xueming Li
2023-02-27  6:58   ` patch 'devtools: fix escaped space in grep pattern' " Xueming Li
2023-02-27  6:58   ` patch 'crypto/cnxk: fix digest for empty input data' " Xueming Li
2023-02-27  6:58   ` patch 'app/crypto-perf: fix number of segments' " Xueming Li
2023-02-27  6:58   ` patch 'app/crypto-perf: fix session freeing' " Xueming Li
2023-02-27  6:58   ` patch 'app/crypto-perf: fix SPI zero' " Xueming Li
2023-02-27  6:58   ` patch 'app/crypto-perf: fix IPsec direction' " Xueming Li
2023-02-27  6:58   ` patch 'eventdev/crypto: fix enqueue count' " Xueming Li
2023-02-27  6:58   ` patch 'eventdev/crypto: fix offset used while flushing events' " Xueming Li
2023-02-27  6:58   ` patch 'eventdev/crypto: fix overflow in circular buffer' " Xueming Li
2023-02-27  6:58   ` patch 'eventdev/crypto: fix failed events' " Xueming Li
2023-02-27  6:58   ` patch 'eventdev/eth_tx: fix devices loop' " Xueming Li
2023-02-27  6:58   ` patch 'examples/l2fwd-event: fix worker cleanup' " Xueming Li
2023-02-27  6:58   ` patch 'crypto/qat: fix stream cipher direction' " Xueming Li
2023-02-27  6:58   ` patch 'crypto/qat: fix build for generic x86 with GCC 12' " Xueming Li
2023-02-27  6:58   ` patch 'crypto/qat: fix build' " Xueming Li
2023-02-27  6:58   ` patch 'bus/fslmc: fix deadlock on MC send command timeout' " Xueming Li
2023-02-27  6:58   ` patch 'fbarray: fix metadata dump' " Xueming Li
2023-02-27  6:58   ` patch 'gpudev: fix deadlocks when registering callback' " Xueming Li
2023-02-27  6:58   ` patch 'graph: fix node shrink' " Xueming Li
2023-02-27  6:58   ` patch 'net/nfp: fix Tx packet drop for large data length' " Xueming Li
2023-02-27  6:58   ` patch 'net/nfp: fix firmware name derived from PCI name' " Xueming Li
2023-02-27  6:58   ` patch 'net/ena: fix deadlock in RSS RETA update' " Xueming Li
2023-02-27  6:58   ` patch 'net/hns3: fix inaccurate RTC time to read' " Xueming Li
2023-02-27  6:58   ` patch 'net/nfp: store counter reset before zeroing flow query' " Xueming Li
2023-02-27  6:58   ` patch 'net/nfp: fix teardown of flows sharing a mask ID' " Xueming Li
2023-02-27  6:58   ` patch 'app/testpmd: fix interactive mode with no ports' " Xueming Li
2023-02-27  6:59   ` patch 'telemetry: move include after guard' " Xueming Li
2023-02-27  6:59   ` patch 'ethdev: fix telemetry data truncation' " Xueming Li
2023-02-27  6:59   ` patch 'mempool: " Xueming Li
2023-02-27  6:59   ` patch 'cryptodev: " Xueming Li
2023-02-27  6:59   ` patch 'mem: " Xueming Li
2023-02-27  6:59   ` patch 'examples/qos_sched: fix debug mode' " Xueming Li
2023-02-27  6:59   ` patch 'app/dumpcap: fix storing port identifier' " Xueming Li
2023-02-27  6:59   ` patch 'build: fix dependencies lookup' " Xueming Li
2023-02-27  6:59   ` patch 'vdpa/ifc: fix argument compatibility check' " Xueming Li
2023-02-27  6:59   ` patch 'vdpa/ifc: fix reconnection in SW-assisted live migration' " Xueming Li
2023-02-27  6:59   ` patch 'vhost: fix net header settings in datapath' " Xueming Li
2023-02-27  6:59   ` patch 'app/bbdev: fix build with optional flag' " Xueming Li
2023-02-27  6:59   ` Xueming Li
2023-02-27  6:59   ` patch 'app/bbdev: add allocation checks' " Xueming Li
2023-02-27  6:59   ` patch 'baseband/acc: fix memory leak on acc100 close' " Xueming Li
2023-02-27  6:59   ` patch 'baseband/acc: fix acc100 iteration counter in TB' " Xueming Li
2023-02-27  6:59   ` patch 'baseband/acc: fix multiplexing acc100 operations' " Xueming Li
2023-02-27  6:59   ` patch 'baseband/acc: fix acc100 queue mapping to 64 bits' " Xueming Li
2023-02-27  6:59   ` patch 'crypto/ccp: remove some printf' " Xueming Li
2023-02-27  6:59   ` patch 'crypto/ccp: remove some dead code for UIO' " Xueming Li
2023-02-27  6:59   ` patch 'crypto/ccp: fix IOVA handling' " Xueming Li
2023-02-27  6:59   ` patch 'crypto/openssl: fix warning on copy length' " Xueming Li
2023-02-27  6:59   ` patch 'crypto/ipsec_mb: remove unnecessary null check' " Xueming Li
2023-02-27  6:59   ` patch 'test/crypto: fix typo in AES test' " Xueming Li
2023-02-27  6:59   ` patch 'test/crypto: add missing MAC-I to PDCP vectors' " Xueming Li
2023-02-27  6:59   ` patch 'cryptodev: fix sym session mempool creation description' " Xueming Li
2023-02-27  6:59   ` patch 'compressdev: fix end of driver list' " Xueming Li
2023-02-27  6:59   ` patch 'crypto/ipsec_mb: fix ZUC-256 maximum tag length' " Xueming Li
2023-02-27  6:59   ` patch 'net/bnxt: fix Tx queue stats after queue stop and start' " Xueming Li
2023-02-27  6:59   ` patch 'net/bnxt: fix Rx " Xueming Li
2023-02-27  6:59   ` patch 'net/bnxt: fix RSS hash in mbuf' " Xueming Li
2023-02-27  6:59   ` patch 'doc: fix firmware list in bnxt guide' " Xueming Li
2023-02-27  6:59   ` patch 'eventdev/crypto: fix function symbol export' " Xueming Li
2023-02-27  6:59   ` patch 'event/cnxk: wait for CPT flow control on WQE path' " Xueming Li
2023-02-27  6:59   ` patch 'eventdev/eth_rx: fix getting adapter instance' " Xueming Li
2023-02-27  6:59   ` patch 'event/cnxk: fix burst timer arm' " Xueming Li
2023-02-27  6:59   ` patch 'event/cnxk: fix timer operations in secondary process' " Xueming Li
2023-02-27  6:59   ` patch 'net/cnxk: fix packet type for IPv6 packets post decryption' " Xueming Li
2023-02-27  6:59   ` patch 'common/cnxk: fix aura ID handling' " Xueming Li
2023-02-27  6:59   ` patch 'net/cnxk: fix deadlock in security session creation' " Xueming Li
2023-02-27  6:59   ` patch 'common/cnxk: fix dual VLAN parsing' " Xueming Li
2023-02-27  6:59   ` patch 'common/cnxk: fix IPv6 extension matching' " Xueming Li
2023-02-27  6:59   ` patch 'common/cnxk: reduce channel count per LMAC' " Xueming Li
2023-02-27  6:59   ` patch 'net/cnxk: validate RED threshold config' " Xueming Li
2023-02-27  6:59   ` patch 'mem: fix hugepage info mapping' " Xueming Li
2023-02-27  6:59   ` patch 'raw/ifpga/base: fix init with multi-process' " Xueming Li
2023-02-27  6:59   ` patch 'telemetry: fix repeat display when callback don't init dict' " Xueming Li
2023-02-27  6:59   ` patch 'eal/linux: fix hugetlbfs sub-directories discovery' " Xueming Li
2023-02-27  6:59   ` patch 'drivers/bus: fix leak for devices without driver' " Xueming Li
2023-02-27  6:59   ` patch 'test/mbuf: fix mbuf reset test' " Xueming Li
2023-02-27  6:59   ` patch 'eventdev/timer: fix overflow' " Xueming Li
2023-02-27  6:59   ` patch 'eal: cleanup alarm and hotplug before memory detach' " Xueming Li
2023-02-27  6:59   ` patch 'vhost: decrease log level for unimplemented requests' " Xueming Li
2023-02-27  6:59   ` patch 'vhost: fix possible FD leaks' " Xueming Li
2023-02-27  6:59   ` patch 'vhost: fix possible FD leaks on truncation' " Xueming Li
2023-02-27  6:59   ` patch 'net/virtio-user: fix device starting failure handling' " Xueming Li
2023-02-27  6:59   ` patch 'net/hns3: declare flow rule keeping capability' " Xueming Li
2023-02-27  6:59   ` patch 'doc: fix description of L2TPV2 flow item' " Xueming Li
2023-02-27  6:59   ` patch 'app/testpmd: fix forwarding stats for Tx dropped' " Xueming Li
2023-02-27  6:59   ` patch 'net/txgbe: fix default signal quality value for KX/KX4' " Xueming Li
2023-02-27  7:00   ` patch 'net/txgbe: fix packet type to parse from offload flags' " Xueming Li
2023-02-27  7:00   ` patch 'net/ngbe: " Xueming Li
2023-02-27  7:00   ` patch 'net/ngbe: add spinlock protection on YT PHY' " Xueming Li
2023-02-27  7:00   ` patch 'net/txgbe: fix interrupt loss' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: fix log about indirection table size' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: extract common function to query device' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: refactor set RSS hash algorithm and key interface' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: fix RSS key size compatibility' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: fix clearing RSS configuration' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: use RSS filter list to check duplicated rule' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: remove useless code when destroy valid RSS " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: fix warning on flush or destroy " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: fix config struct used for conversion' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: fix duplicate RSS rule check' " Xueming Li
2023-02-27  7:00   ` patch 'net/sfc: export pick transfer proxy callback to representors' " Xueming Li
2023-02-27  7:00   ` patch 'app/testpmd: fix link check condition on port start' " Xueming Li
2023-02-27  7:00   ` patch 'net/nfp: fix max DMA length' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: fix burst mode query with dummy function' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: add debug info for Rx/Tx " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: remove debug condition for Tx prepare' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: separate Tx prepare from getting Tx function' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: make getting Tx function static' " Xueming Li
2023-02-27  7:00   ` patch 'net/hns3: extract common functions to set Rx/Tx' " Xueming Li
2023-02-27  7:00   ` patch 'net/sfc: fix MAC address entry leak in transfer flow parsing' " Xueming Li
2023-02-27  7:00   ` patch 'net/sfc: enforce fate action in transfer flow rules' " Xueming Li
2023-02-27  7:00   ` patch 'net/txgbe: fix Rx buffer size in config register' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5: fix available tag registers calculation for HWS' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5: fix GENEVE resource overwrite' " Xueming Li
2023-02-27  7:00   ` patch 'common/mlx5: improve AES-XTS tweak capability check' " Xueming Li
2023-02-27  7:00   ` patch 'common/mlx5: fix offset of a field' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5: fix flow sample with ConnectX-5' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5: fix wait descriptor opcode for ConnectX-7' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5: fix warning for Tx scheduling option' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5: fix read device clock in real time mode' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5/hws: fix memory leak on general pool DB init' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5: fix error CQE dumping for vectorized Rx' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5: ignore non-critical syndromes for Rx queue' " Xueming Li
2023-02-27  7:00   ` patch 'net/mlx5: check compressed CQE opcode in vectorized Rx' " Xueming Li
2023-02-27  7:00   ` patch 'net/iavf: fix outer UDP checksum offload' " Xueming Li
2023-02-27  7:00   ` patch 'net/i40e: reduce interrupt interval in multi-driver mode' " Xueming Li
2023-02-27  7:00   ` patch 'net/idpf: fix mbuf leak in split Tx' " Xueming Li
2023-02-27  7:00   ` patch 'net/idpf: fix driver infos' " Xueming Li
2023-02-27  7:00   ` patch 'net/ixgbe: fix firmware version consistency' " Xueming Li
2023-02-27  7:00   ` patch 'net/iavf: add lock for VF commands' " Xueming Li
2023-02-27  7:00   ` patch 'net/i40e: fix validation of flow transfer attribute' " Xueming Li
2023-02-27  7:00   ` patch 'net/ice: " Xueming Li
2023-02-27  7:00   ` patch 'net/iavf: protect insertion in flow list' " Xueming Li
2023-02-27  7:00   ` patch 'net/iavf: fix building data desc' " Xueming Li
2023-02-27  7:00   ` patch 'net/ixgbe: enable IPv6 mask in flow rules' " Xueming Li
2023-02-27  7:00   ` patch 'net/iavf: fix VLAN offload with AVX2' " Xueming Li
2023-02-27  7:00   ` patch 'app/compress-perf: fix some typos' " Xueming Li
2023-02-27  7:00   ` patch 'app/compress-perf: fix testing single operation' " Xueming Li
2023-02-27  7:00   ` patch 'common/cnxk: fix channel mask for SDP interfaces' " Xueming Li
2023-02-27  7:00   ` patch 'net/bnxt: fix link state change interrupt config' " Xueming Li
2023-02-27  7:00   ` patch 'net/nfp: fix VNI of VXLAN encap action' " Xueming Li
2023-02-27  7:00   ` patch 'net/nfp: restrict flow flush to the port' " Xueming Li
2023-02-27  7:00   ` patch 'app/testpmd: fix crash on cleanup' " Xueming Li
2023-02-27  7:00   ` patch 'sched: fix alignment of structs in subport' " Xueming Li
2023-02-27  7:00   ` patch 'eal/freebsd: fix lock in alarm callback' " Xueming Li
2023-02-27  7:00   ` patch 'dma/ioat: fix device stop if no copies done' " Xueming Li
2023-02-27  7:01   ` patch 'dma/ioat: fix indexes after restart' " Xueming Li
2023-02-27  7:01   ` patch 'dma/ioat: fix error reporting on " Xueming Li
2023-02-27  7:01   ` patch 'reorder: invalidate buffer from ready queue in drain' " Xueming Li
2023-02-27  7:01   ` patch 'test/reorder: fix double free of drained buffers' " Xueming Li
2023-02-27  7:01   ` patch 'build: fix toolchain definition' " Xueming Li
2023-02-27  7:01   ` patch 'eal: use same atomic intrinsics for GCC and clang' " Xueming Li
2023-02-27  7:01   ` patch 'examples/cmdline: fix build with GCC 12' " Xueming Li
2023-02-27  7:01   ` patch 'examples/qos_sched: fix Tx port config when link down' " Xueming Li
2023-04-09 15:23 ` patch " Xueming Li
2023-04-09 15:23   ` patch 'common/cnxk: fix second pass flow rule layer type' " Xueming Li
2023-04-09 15:23   ` patch 'net/mlx5: fix crash on action template failure' " Xueming Li
2023-04-09 15:23   ` patch 'eal/windows: fix pedantic build' " Xueming Li
2023-04-09 15:23   ` patch 'doc: add gpudev to the Doxygen index' " Xueming Li
2023-04-09 15:23   ` patch 'doc: fix reference to event timer header' " Xueming Li
2023-04-09 15:23   ` patch 'event/cnxk: fix SSO cleanup' " Xueming Li
2023-04-09 15:23   ` patch 'eventdev: fix memory size for telemetry' " Xueming Li
2023-04-09 15:23   ` patch 'baseband/acc: protect from TB negative scenario' " Xueming Li
2023-04-09 15:23   ` patch 'baseband/acc: add explicit mbuf append for soft output' " Xueming Li
2023-04-09 15:23   ` patch 'baseband/acc: prevent to dequeue more than requested' " Xueming Li
2023-04-09 15:23   ` patch 'baseband/acc: fix iteration counter in TB mode' " Xueming Li
2023-04-09 15:23   ` patch 'baseband/acc: fix check after deref and dead code' " Xueming Li
2023-04-09 15:23   ` patch 'test/bbdev: fix crash for non supported HARQ length' " Xueming Li
2023-04-09 15:23   ` patch 'test/bbdev: extend HARQ tolerance' " Xueming Li
2023-04-09 15:23   ` patch 'test/bbdev: remove check for invalid opaque data' " Xueming Li
2023-04-09 15:23   ` patch 'vhost: fix slot index in async split virtqueue Tx' " Xueming Li
2023-04-09 15:23   ` patch 'vhost: fix OOB access for invalid vhost ID' " Xueming Li
2023-04-09 15:23   ` patch 'net/virtio: deduce IP length for TSO checksum' " Xueming Li
2023-04-09 15:23   ` patch 'examples/ipsec-secgw: fix auth IV length' " Xueming Li
2023-04-09 15:23   ` patch 'compress/mlx5: fix decompress xform validation' " Xueming Li
2023-04-09 15:23   ` patch 'compress/mlx5: fix output Adler-32 checksum offset' " Xueming Li
2023-04-09 15:23   ` patch 'compress/mlx5: fix queue setup for partial transformations' " Xueming Li
2023-04-09 15:23   ` patch 'examples/fips_validation: fix MCT output for SHA' " Xueming Li
2023-04-09 15:23   ` patch 'examples/fips_validation: fix integer parsing' " Xueming Li
2023-04-09 15:23   ` patch 'examples/fips_validation: fix AES-GCM tests' " Xueming Li
2023-04-09 15:23   ` patch 'examples/fips_validation: fix AES-XTS sequence number' " Xueming Li
2023-04-09 15:23   ` patch 'examples/fips_validation: add extra space in JSON buffer' " Xueming Li
2023-04-09 15:23   ` patch 'common/cnxk: fix auth key length' " Xueming Li
2023-04-09 15:23   ` patch 'net/nfp: fix 48-bit DMA support for NFDk' " Xueming Li
2023-04-09 15:23   ` patch 'net/gve: fix offloading capability' " Xueming Li
2023-04-09 15:23   ` patch 'net/mana: enable driver by default' " Xueming Li
2023-04-09 15:23   ` patch 'app/testpmd: fix Tx preparation in checksum engine' " Xueming Li
2023-04-09 15:23   ` patch 'app/testpmd: fix packet count in IEEE 1588 " Xueming Li
2023-04-09 15:23   ` patch 'app/testpmd: fix packet transmission in noisy VNF " Xueming Li
2023-04-09 15:23   ` patch 'ethdev: fix build with LTO' " Xueming Li
2023-04-09 15:23   ` patch 'net/mana: fix stats counters' " Xueming Li
2023-04-09 15:23   ` patch 'net/nfp: fix getting RSS configuration' " Xueming Li
2023-04-09 15:23   ` patch 'ethdev: remove telemetry Rx mbuf alloc failed field' " Xueming Li
2023-04-09 15:23   ` patch 'net/nfp: fix set MAC flow action' " Xueming Li
2023-04-09 15:23   ` patch 'net/nfp: fix set IPv4 " Xueming Li
2023-04-09 15:23   ` patch 'net/nfp: fix set IPv6 " Xueming Li
2023-04-09 15:23   ` patch 'net/nfp: fix set TP " Xueming Li
2023-04-09 15:23   ` patch 'net/nfp: fix set TTL " Xueming Li
2023-04-09 15:23   ` patch 'net/nfp: fix set DSCP " Xueming Li
2023-04-09 15:23   ` patch 'net/nfp: fix offload of multiple output actions' " Xueming Li
2023-04-09 15:23   ` patch 'app/testpmd: fix secondary process packet forwarding' " Xueming Li
2023-04-09 15:23   ` patch 'net/ixgbe: fix IPv6 mask in flow director' " Xueming Li
2023-04-09 15:23   ` patch 'net/i40e: revert link status check on device start' " Xueming Li
2023-04-09 15:23   ` patch 'net/i40e: fix maximum frame size configuration' " Xueming Li
2023-04-09 15:23   ` patch 'net/ice: fix Rx timestamp' " Xueming Li
2023-04-09 15:23   ` patch 'net/cnxk: fix LBK BPID usage' " Xueming Li
2023-04-09 15:24   ` patch 'common/cnxk: add memory clobber to steor and ldeor' " Xueming Li
2023-04-09 15:24   ` patch 'eal/windows: fix thread creation' " Xueming Li
2023-04-09 15:24   ` patch 'net/nfp: fix MTU configuration order' " Xueming Li
2023-04-09 15:24   ` patch 'kvargs: add API documentation for process callback' " Xueming Li
2023-04-09 15:24   ` patch 'compressdev: fix empty devargs parsing' " Xueming Li
2023-04-09 15:24   ` patch 'cryptodev: " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: " Xueming Li
2023-04-09 15:24   ` patch 'net/virtio: " Xueming Li
2023-04-09 15:24   ` patch 'dma/skeleton: " Xueming Li
2023-04-09 15:24   ` patch 'raw/skeleton: " Xueming Li
2023-04-09 15:24   ` patch 'table: fix action selector group size log2 setting' " Xueming Li
2023-04-09 15:24   ` patch 'regex/mlx5: utilize all available queue pairs' " Xueming Li
2023-04-09 15:24   ` patch 'regex/mlx5: fix doorbell record' " Xueming Li
2023-04-09 15:24   ` patch 'common/sfc_efx/base: add MAE mark reset action' " Xueming Li
2023-04-09 15:24   ` patch 'net/sfc: fix resetting mark in tunnel offload switch rules' " Xueming Li
2023-04-09 15:24   ` patch 'kni: fix possible starvation when mbufs are exhausted' " Xueming Li
2023-04-09 15:24   ` patch 'cmdline: make rdline status not private' " Xueming Li
2023-04-09 15:24   ` patch 'cmdline: handle EOF as quit' " Xueming Li
2023-04-09 15:24   ` patch 'app/testpmd: cleanup cleanly from signal' " Xueming Li
2023-04-09 15:24   ` patch 'mem: fix heap ID in telemetry' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: fix possible truncation of hash key when config' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: fix possible truncation of redirection table' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: use hardware config to report hash key' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: use hardware config to report hash types' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: use hardware config to report redirection table' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: separate setting hash algorithm' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: separate setting hash key' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: separate setting redirection table' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: separate setting RSS types' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: separate setting and clearing RSS rule' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: use new RSS rule to configure hardware' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: save hash algo to RSS filter list node' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: allow adding queue buffer size hash rule' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: separate flow RSS config from RSS conf' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: reimplement hash flow function' " Xueming Li
2023-04-09 15:24   ` patch 'net/hns3: add verification of RSS types' " Xueming Li
2023-04-09 15:24   ` patch 'net/mlx5: fix Windows build with MinGW GCC 12' " Xueming Li
2023-04-09 15:24   ` patch 'crypto/ccp: fix PCI probing' " Xueming Li
2023-04-09 15:24   ` patch 'crypto/qat: fix SM3 auth mode' " Xueming Li
2023-04-09 15:24   ` patch 'crypto/openssl: fix freeing in RSA EVP' " Xueming Li
2023-04-09 15:24   ` patch 'app/crypto-perf: fix test file memory leak' " Xueming Li
2023-04-09 15:24   ` patch 'app/flow-perf: fix division or module by zero' " Xueming Li
2023-04-09 15:24   ` patch 'examples/ipsec-secgw: fix offload variable init' " Xueming Li
2023-04-09 15:24   ` patch 'raw/skeleton: fix selftest' " Xueming Li
2023-04-09 15:24   ` patch 'ring: silence GCC 12 warnings' " Xueming Li
2023-04-09 15:24   ` patch 'reorder: fix sequence number mbuf field register' " Xueming Li
2023-04-09 15:24   ` patch 'test: fix segment length in packet generator' " Xueming Li
2023-04-09 15:24   ` patch 'test/mbuf: fix test with mbuf debug enabled' " Xueming Li
2023-04-09 15:24   ` patch 'eal/unix: fix thread creation' " Xueming Li
2023-04-09 15:24   ` patch 'gpudev: export header file for external drivers' " Xueming Li
2023-04-09 15:24   ` patch 'app/testpmd: fix interactive mode on Windows' " Xueming Li
2023-04-09 15:24   ` patch 'test/crypto: fix ZUC digest length in comparison' " Xueming Li
2023-04-09 15:24   ` patch 'test/crypto: fix capability check for ZUC cipher-auth' " Xueming Li
2023-04-09 15:24   ` patch 'test/crypto: fix skip condition for CPU crypto SGL' " Xueming Li
2023-04-09 15:24   ` patch 'app/compress-perf: fix remaining data for ops' " Xueming Li
2023-04-09 15:24   ` patch 'crypto/ipsec_mb: relax multi-process requirement' " Xueming Li
2023-04-09 15:24   ` patch 'app/bbdev: check statistics failure' " Xueming Li
2023-04-09 15:24   ` patch 'net/vhost: add missing newline in logs' " Xueming Li
2023-04-09 15:24   ` patch 'net/vhost: fix leak in interrupt handle setup' " Xueming Li
2023-04-09 15:24   ` Xueming Li [this message]
2023-04-09 15:25   ` patch 'net/virtio: remove address width limit for modern devices' " Xueming Li
2023-04-09 15:25   ` patch 'net/sfc: invalidate switch port entry on representor unplug' " Xueming Li
2023-04-09 15:25   ` patch 'net/i40e: fix AVX512 fast-free path' " Xueming Li
2023-04-09 15:25   ` patch 'net/e1000: fix saving of stripped VLAN TCI' " Xueming Li
2023-04-09 15:25   ` patch 'net/i40e: fix MAC loopback on X722' " Xueming Li
2023-04-09 15:25   ` patch 'net/idpf: reset queue flag when queue is stopped' " Xueming Li
2023-04-09 15:25   ` patch 'net/iavf: fix device stop during reset' " Xueming Li
2023-04-09 15:25   ` patch 'net/mlx5: fix hairpin Tx queue reference count' " Xueming Li
2023-04-09 15:25   ` patch 'examples/l3fwd: remove hash entry number' " Xueming Li
2023-04-09 15:25   ` patch 'doc: fix LPM support in l3forward guide' " Xueming Li
2023-04-09 15:25   ` patch 'net/mlx5: fix egress group translation in HWS' " Xueming Li
2023-04-09 15:25   ` patch 'net/mlx5: fix isolated mode if no representor matching' " Xueming Li
2023-04-09 15:25   ` patch 'bus/ifpga: fix devargs handling' " Xueming Li
2023-04-09 15:25   ` patch 'net/ipn3ke: fix thread exit' " Xueming Li
2023-04-09 15:25   ` patch 'net/ipn3ke: fix representor name' " Xueming Li
2023-04-09 15:25   ` patch 'examples/qos_sched: fix config entries in wrong sections' " Xueming Li
2023-04-09 15:25   ` patch 'app/testpmd: fix encap/decap size calculation' " Xueming Li
2023-04-09 15:25   ` patch 'net/mlx5/hws: fix pattern creation' " Xueming Li
2023-04-09 15:25   ` patch 'net/mlx5: fix build with GCC 12 and ASan' " Xueming Li
2023-04-09 15:25   ` patch 'net/mlx5/hws: fix error code of send queue action' " Xueming Li
2023-04-09 15:25   ` patch 'net/mlx5: fix CQE dump for Tx' " Xueming Li
2023-04-09 15:25   ` patch 'net/mlx5: fix sysfs port name translation' " Xueming Li
2023-04-09 15:25   ` patch 'doc: fix code blocks in cryptodev guide' " Xueming Li
2023-04-09 15:25   ` patch 'test/crypto: fix statistics error messages' " Xueming Li
2023-04-09 15:25   ` patch 'pdump: fix build with GCC 12' " Xueming Li
2023-04-09 15:25   ` patch 'acl: fix crash on PPC64 with GCC 11' " Xueming Li
2023-04-09 15:45 ` patch 'devtools: move mailmap check after patch applied' " Xueming Li
2023-04-09 15:45   ` patch 'doc: fix pipeline example path in user guide' " Xueming Li
2023-04-09 15:45   ` patch 'doc: add Linux capability to access physical addresses' " Xueming Li
2023-04-09 15:45   ` patch 'doc: fix DCF instructions in ice guide' " 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=20230409152529.5308-112-xuemingl@nvidia.com \
    --to=xuemingl@nvidia.com \
    --cc=chenbo.xia@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dukaix.yuan@intel.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).