From 2781b9b69049875c787389d11abe20264f587c40 Mon Sep 17 00:00:00 2001 From: hkk Date: Thu, 29 Aug 2024 11:57:30 +0800 Subject: [PATCH] adapt xdp interrupt --- 0001-adapt-xdp-interrupt.patch | 63 ++++++++++++++++++++++++++++++++++ dpdk.spec | 4 ++- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 0001-adapt-xdp-interrupt.patch diff --git a/0001-adapt-xdp-interrupt.patch b/0001-adapt-xdp-interrupt.patch new file mode 100644 index 0000000..9accfd9 --- /dev/null +++ b/0001-adapt-xdp-interrupt.patch @@ -0,0 +1,63 @@ +From 3533b976eab5ad4738095c1b417eaba02716becc Mon Sep 17 00:00:00 2001 +From: hkk +Date: Thu, 29 Aug 2024 11:50:39 +0800 +Subject: [PATCH] adapt xdp interrupt + +--- + drivers/net/af_xdp/rte_eth_af_xdp.c | 14 +++++++------- + lib/ethdev/rte_ethdev.c | 4 ++-- + 2 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/drivers/net/af_xdp/rte_eth_af_xdp.c b/drivers/net/af_xdp/rte_eth_af_xdp.c +index 96c2c9d..2d93a69 100644 +--- a/drivers/net/af_xdp/rte_eth_af_xdp.c ++++ b/drivers/net/af_xdp/rte_eth_af_xdp.c +@@ -281,12 +281,12 @@ af_xdp_rx_zc(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) + * which is only supported for AF_XDP sockets in kernels >= + * 5.11. + */ +- if (rxq->busy_budget) { +- (void)recvfrom(xsk_socket__fd(rxq->xsk), NULL, 0, +- MSG_DONTWAIT, NULL, NULL); +- } else if (xsk_ring_prod__needs_wakeup(fq)) { +- (void)poll(&rxq->fds[0], 1, 1000); +- } ++ //if (rxq->busy_budget) { ++ // (void)recvfrom(xsk_socket__fd(rxq->xsk), NULL, 0, ++ // MSG_DONTWAIT, NULL, NULL); ++ //} else if (xsk_ring_prod__needs_wakeup(fq)) { ++ // (void)poll(&rxq->fds[0], 1, 1000); ++ //} + + return 0; + } +@@ -1390,7 +1390,7 @@ eth_rx_queue_setup(struct rte_eth_dev *dev, + rxq->fds[0].events = POLLIN; + + dev->data->rx_queues[rx_queue_id] = rxq; +- return 0; ++ return rxq->fds[0].fd; + + err: + return ret; +diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c +index 10312b3..d7c123f 100644 +--- a/lib/ethdev/rte_ethdev.c ++++ b/lib/ethdev/rte_ethdev.c +@@ -2305,11 +2305,11 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id, + + ret = (*dev->dev_ops->rx_queue_setup)(dev, rx_queue_id, nb_rx_desc, + socket_id, &local_conf, mp); +- if (!ret) { ++// if (!ret) { + if (!dev->data->min_rx_buf_size || + dev->data->min_rx_buf_size > mbp_buf_size) + dev->data->min_rx_buf_size = mbp_buf_size; +- } ++// } + + rte_ethdev_trace_rxq_setup(port_id, rx_queue_id, nb_rx_desc, mp, + rx_conf, ret); +-- +2.33.0 + diff --git a/dpdk.spec b/dpdk.spec index 29fa1c6..15f38b3 100644 --- a/dpdk.spec +++ b/dpdk.spec @@ -1,6 +1,6 @@ Name: dpdk Version: 21.11 -Release: 68 +Release: 69 Packager: packaging@6wind.com URL: http://dpdk.org %global source_version 21.11 @@ -468,6 +468,8 @@ Patch6430: 0431-dma-hisilicon-remove-support-for-HIP09-platform.patch Patch6431: 0432-net-hns3-support-new-device.patch patch6432: 0433-fix-mode4-with-dedicated-queues.patch +Patch6433: 0001-adapt-xdp-interrupt.patch + Summary: Data Plane Development Kit core Group: System Environment/Libraries -- Gitee