[dpdk-dev] [PATCH] net/bonding:fix balance-xor link down stack overflow
When slave link down, deactivate_slave will internals->active_slaves and internals->active_slave_count.Active_slave in bond_ethdev_rx_burst may out of range in internals->active_slaves.It will get bond's port_id cause stack overflow Cc: sta...@dpdk.org Signed-off-by: jilei --- drivers/net/bonding/rte_eth_bond_pmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index a6755661c4..46f2c42d60 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -82,7 +82,7 @@ bond_ethdev_rx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) bufs + num_rx_total, nb_pkts); num_rx_total += num_rx_slave; nb_pkts -= num_rx_slave; - if (++active_slave == slave_count) + if (++active_slave >= slave_count) active_slave = 0; } -- 2.23.0
[dpdk-dev] [PATCH] Enhance code readability when dma_map in ifc/ifcvp_vdpa
From: Jilei Chen Signed-off-by: Jilei Chen --- drivers/net/ifc/ifcvf_vdpa.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/ifc/ifcvf_vdpa.c b/drivers/net/ifc/ifcvf_vdpa.c index da4667ba54..fe7ec87a8a 100644 --- a/drivers/net/ifc/ifcvf_vdpa.c +++ b/drivers/net/ifc/ifcvf_vdpa.c @@ -37,6 +37,8 @@ #define IFCVF_VDPA_MODE"vdpa" #define IFCVF_SW_FALLBACK_LM "sw-live-migration" +#define IFCVF_MAP 1 +#define IFCVF_UNMAP0 static const char * const ifcvf_valid_arguments[] = { IFCVF_VDPA_MODE, @@ -535,7 +537,7 @@ update_datapath(struct ifcvf_internal *internal) if (!rte_atomic32_read(&internal->running) && (rte_atomic32_read(&internal->started) && rte_atomic32_read(&internal->dev_attached))) { - ret = ifcvf_dma_map(internal, 1); + ret = ifcvf_dma_map(internal, IFCVF_MAP); if (ret) goto err; @@ -565,7 +567,7 @@ update_datapath(struct ifcvf_internal *internal) if (ret) goto err; - ret = ifcvf_dma_map(internal, 0); + ret = ifcvf_dma_map(internal, IFCVF_UNMAP); if (ret) goto err; @@ -869,7 +871,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) unset_intr: vdpa_disable_vfio_intr(internal); unmap: - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, IFCVF_UNMAP); error: return -1; } @@ -926,7 +928,7 @@ ifcvf_dev_close(int vid) vdpa_disable_vfio_intr(internal); /* unset DMA map for guest memory */ - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, IFCVF_UNMAP); internal->sw_fallback_running = false; } else { -- 2.12.2
[dpdk-dev] [PATCH] Enhance code readability when dma_map in ifc/ifcvp_vdpa
Signed-off-by: jilei chen --- drivers/vdpa/ifc/ifcvf_vdpa.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c index 1dc813d0a3..c2bf26f2b7 100644 --- a/drivers/vdpa/ifc/ifcvf_vdpa.c +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c @@ -36,6 +36,8 @@ RTE_LOG_REGISTER(ifcvf_vdpa_logtype, pmd.vdpa.ifcvf, NOTICE); #define IFCVF_VDPA_MODE"vdpa" #define IFCVF_SW_FALLBACK_LM "sw-live-migration" +#define IFCVF_MAP 1 +#define IFCVF_UNMAP0 #define THREAD_NAME_LEN16 @@ -538,7 +540,7 @@ update_datapath(struct ifcvf_internal *internal) if (!rte_atomic32_read(&internal->running) && (rte_atomic32_read(&internal->started) && rte_atomic32_read(&internal->dev_attached))) { - ret = ifcvf_dma_map(internal, 1); + ret = ifcvf_dma_map(internal, IFCVF_MAP); if (ret) goto err; @@ -568,7 +570,7 @@ update_datapath(struct ifcvf_internal *internal) if (ret) goto err; - ret = ifcvf_dma_map(internal, 0); + ret = ifcvf_dma_map(internal, IFCVF_UNMAP); if (ret) goto err; @@ -875,7 +877,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) unset_intr: vdpa_disable_vfio_intr(internal); unmap: - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, IFCVF_UNMAP); error: return -1; } @@ -934,7 +936,7 @@ ifcvf_dev_close(int vid) vdpa_disable_vfio_intr(internal); /* unset DMA map for guest memory */ - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, IFCVF_UNMAP); internal->sw_fallback_running = false; } else { -- 2.12.2
[dpdk-dev] [PATCH] vdpa/ifc: increase readability in function
Optimize several parameters form order to better readability Signed-off-by: jilei chen --- drivers/vdpa/ifc/ifcvf_vdpa.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c index 1dc813d0a3..365da2a8b9 100644 --- a/drivers/vdpa/ifc/ifcvf_vdpa.c +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c @@ -182,7 +182,7 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal) } static int -ifcvf_dma_map(struct ifcvf_internal *internal, int do_map) +ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map) { uint32_t i; int ret; @@ -538,11 +538,11 @@ update_datapath(struct ifcvf_internal *internal) if (!rte_atomic32_read(&internal->running) && (rte_atomic32_read(&internal->started) && rte_atomic32_read(&internal->dev_attached))) { - ret = ifcvf_dma_map(internal, 1); + ret = ifcvf_dma_map(internal, true); if (ret) goto err; - ret = vdpa_enable_vfio_intr(internal, 0); + ret = vdpa_enable_vfio_intr(internal, false); if (ret) goto err; @@ -568,7 +568,7 @@ update_datapath(struct ifcvf_internal *internal) if (ret) goto err; - ret = ifcvf_dma_map(internal, 0); + ret = ifcvf_dma_map(internal, false); if (ret) goto err; @@ -850,7 +850,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) goto error; /* set up interrupt for interrupt relay */ - ret = vdpa_enable_vfio_intr(internal, 1); + ret = vdpa_enable_vfio_intr(internal, true); if (ret) goto unmap; @@ -875,7 +875,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) unset_intr: vdpa_disable_vfio_intr(internal); unmap: - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, false); error: return -1; } @@ -934,7 +934,7 @@ ifcvf_dev_close(int vid) vdpa_disable_vfio_intr(internal); /* unset DMA map for guest memory */ - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, false); internal->sw_fallback_running = false; } else { @@ -1130,7 +1130,7 @@ ifcvf_set_vring_state(int vid, int vring, int state) } if (state && !hw->vring[vring].enable) { - ret = vdpa_enable_vfio_intr(internal, 0); + ret = vdpa_enable_vfio_intr(internal, false); if (ret) return ret; } -- 2.12.2
[dpdk-dev] [PATCH] [v2] vdpa/ifc: increase readability in function
Optimize several parameters form order to better readability Signed-off-by: jilei chen --- v2: * Concise subject of the patch * Optimize function parameters --- drivers/vdpa/ifc/ifcvf_vdpa.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c index 1dc813d0a3..365da2a8b9 100644 --- a/drivers/vdpa/ifc/ifcvf_vdpa.c +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c @@ -182,7 +182,7 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal) } static int -ifcvf_dma_map(struct ifcvf_internal *internal, int do_map) +ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map) { uint32_t i; int ret; @@ -538,11 +538,11 @@ update_datapath(struct ifcvf_internal *internal) if (!rte_atomic32_read(&internal->running) && (rte_atomic32_read(&internal->started) && rte_atomic32_read(&internal->dev_attached))) { - ret = ifcvf_dma_map(internal, 1); + ret = ifcvf_dma_map(internal, true); if (ret) goto err; - ret = vdpa_enable_vfio_intr(internal, 0); + ret = vdpa_enable_vfio_intr(internal, false); if (ret) goto err; @@ -568,7 +568,7 @@ update_datapath(struct ifcvf_internal *internal) if (ret) goto err; - ret = ifcvf_dma_map(internal, 0); + ret = ifcvf_dma_map(internal, false); if (ret) goto err; @@ -850,7 +850,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) goto error; /* set up interrupt for interrupt relay */ - ret = vdpa_enable_vfio_intr(internal, 1); + ret = vdpa_enable_vfio_intr(internal, true); if (ret) goto unmap; @@ -875,7 +875,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) unset_intr: vdpa_disable_vfio_intr(internal); unmap: - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, false); error: return -1; } @@ -934,7 +934,7 @@ ifcvf_dev_close(int vid) vdpa_disable_vfio_intr(internal); /* unset DMA map for guest memory */ - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, false); internal->sw_fallback_running = false; } else { @@ -1130,7 +1130,7 @@ ifcvf_set_vring_state(int vid, int vring, int state) } if (state && !hw->vring[vring].enable) { - ret = vdpa_enable_vfio_intr(internal, 0); + ret = vdpa_enable_vfio_intr(internal, false); if (ret) return ret; } -- 2.12.2
[dpdk-dev] [PATCH] [v3] vdpa/ifc: increase readability in function
Use bool type for function's switch parameter, this could avoid passing "1" or "0" which is not reader friendly. Signed-off-by: jilei chen --- v3: * Update inappropriate description v2: * Concise subject of the patch * Optimize function parameters --- drivers/vdpa/ifc/ifcvf_vdpa.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c index 1dc813d0a3..365da2a8b9 100644 --- a/drivers/vdpa/ifc/ifcvf_vdpa.c +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c @@ -182,7 +182,7 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal) } static int -ifcvf_dma_map(struct ifcvf_internal *internal, int do_map) +ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map) { uint32_t i; int ret; @@ -538,11 +538,11 @@ update_datapath(struct ifcvf_internal *internal) if (!rte_atomic32_read(&internal->running) && (rte_atomic32_read(&internal->started) && rte_atomic32_read(&internal->dev_attached))) { - ret = ifcvf_dma_map(internal, 1); + ret = ifcvf_dma_map(internal, true); if (ret) goto err; - ret = vdpa_enable_vfio_intr(internal, 0); + ret = vdpa_enable_vfio_intr(internal, false); if (ret) goto err; @@ -568,7 +568,7 @@ update_datapath(struct ifcvf_internal *internal) if (ret) goto err; - ret = ifcvf_dma_map(internal, 0); + ret = ifcvf_dma_map(internal, false); if (ret) goto err; @@ -850,7 +850,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) goto error; /* set up interrupt for interrupt relay */ - ret = vdpa_enable_vfio_intr(internal, 1); + ret = vdpa_enable_vfio_intr(internal, true); if (ret) goto unmap; @@ -875,7 +875,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) unset_intr: vdpa_disable_vfio_intr(internal); unmap: - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, false); error: return -1; } @@ -934,7 +934,7 @@ ifcvf_dev_close(int vid) vdpa_disable_vfio_intr(internal); /* unset DMA map for guest memory */ - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, false); internal->sw_fallback_running = false; } else { @@ -1130,7 +1130,7 @@ ifcvf_set_vring_state(int vid, int vring, int state) } if (state && !hw->vring[vring].enable) { - ret = vdpa_enable_vfio_intr(internal, 0); + ret = vdpa_enable_vfio_intr(internal, false); if (ret) return ret; } -- 2.12.2
[dpdk-dev] [PATCH] [v3] vdpa/ifc: increase readability in function
Use bool type for function's switch parameter, this could avoid passing "1" or "0" which is not reader friendly. Signed-off-by: jilei chen --- v3: * Update inappropriate description v2: * Concise subject of the patch * Optimize function parameters --- drivers/vdpa/ifc/ifcvf_vdpa.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c index 1dc813d0a3..365da2a8b9 100644 --- a/drivers/vdpa/ifc/ifcvf_vdpa.c +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c @@ -182,7 +182,7 @@ ifcvf_vfio_setup(struct ifcvf_internal *internal) } static int -ifcvf_dma_map(struct ifcvf_internal *internal, int do_map) +ifcvf_dma_map(struct ifcvf_internal *internal, bool do_map) { uint32_t i; int ret; @@ -538,11 +538,11 @@ update_datapath(struct ifcvf_internal *internal) if (!rte_atomic32_read(&internal->running) && (rte_atomic32_read(&internal->started) && rte_atomic32_read(&internal->dev_attached))) { - ret = ifcvf_dma_map(internal, 1); + ret = ifcvf_dma_map(internal, true); if (ret) goto err; - ret = vdpa_enable_vfio_intr(internal, 0); + ret = vdpa_enable_vfio_intr(internal, false); if (ret) goto err; @@ -568,7 +568,7 @@ update_datapath(struct ifcvf_internal *internal) if (ret) goto err; - ret = ifcvf_dma_map(internal, 0); + ret = ifcvf_dma_map(internal, false); if (ret) goto err; @@ -850,7 +850,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) goto error; /* set up interrupt for interrupt relay */ - ret = vdpa_enable_vfio_intr(internal, 1); + ret = vdpa_enable_vfio_intr(internal, true); if (ret) goto unmap; @@ -875,7 +875,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) unset_intr: vdpa_disable_vfio_intr(internal); unmap: - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, false); error: return -1; } @@ -934,7 +934,7 @@ ifcvf_dev_close(int vid) vdpa_disable_vfio_intr(internal); /* unset DMA map for guest memory */ - ifcvf_dma_map(internal, 0); + ifcvf_dma_map(internal, false); internal->sw_fallback_running = false; } else { @@ -1130,7 +1130,7 @@ ifcvf_set_vring_state(int vid, int vring, int state) } if (state && !hw->vring[vring].enable) { - ret = vdpa_enable_vfio_intr(internal, 0); + ret = vdpa_enable_vfio_intr(internal, false); if (ret) return ret; } -- 2.12.2