* [PATCH 0/5] centralize deferred start checks @ 2024-12-13 21:48 Stephen Hemminger 2024-12-13 21:48 ` [PATCH 1/5] ethdev: check that device supports deferred start Stephen Hemminger ` (6 more replies) 0 siblings, 7 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-13 21:48 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger Recent zxdh driver review raised the question of why should drivers have to check rx_conf for deferred start support. This can be better handled across all drivers at ethdev level. Stephen Hemminger (5): ethdev: check that device supports deferred start net/dpaa: remove unnecessary deferred start check net/dpaa2: remove unneeded deferred start check net/enetfec: remove unneeded deferred start check net/virtio: remove unneeded deferred start check drivers/net/dpaa/dpaa_ethdev.c | 10 ---------- drivers/net/dpaa2/dpaa2_ethdev.c | 14 -------------- drivers/net/enetfec/enet_ethdev.c | 12 ------------ drivers/net/virtio/virtio_rxtx.c | 10 ---------- lib/ethdev/rte_ethdev.c | 10 ++++++++++ 5 files changed, 10 insertions(+), 46 deletions(-) -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 1/5] ethdev: check that device supports deferred start 2024-12-13 21:48 [PATCH 0/5] centralize deferred start checks Stephen Hemminger @ 2024-12-13 21:48 ` Stephen Hemminger 2024-12-13 21:48 ` [PATCH 2/5] net/dpaa: remove unnecessary deferred start check Stephen Hemminger ` (5 subsequent siblings) 6 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-13 21:48 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Thomas Monjalon, Ferruh Yigit, Andrew Rybchenko The check for supporting deferred start should be handled at the ethdev level for all devices. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- lib/ethdev/rte_ethdev.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 6413c54e3b..7768058f6d 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -2264,6 +2264,11 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id, if (rx_conf != NULL) rx_offloads |= rx_conf->offloads; + /* Deferred start requires that device supports queue start */ + if (rx_conf != NULL && rx_conf->rx_deferred_start && + *dev->dev_ops->rx_queue_start == NULL) + return -ENOTSUP; + /* Ensure that we have one and only one source of Rx buffers */ if ((mp != NULL) + (rx_conf != NULL && rx_conf->rx_nseg > 0) + @@ -2575,6 +2580,11 @@ rte_eth_tx_queue_setup(uint16_t port_id, uint16_t tx_queue_id, return -EINVAL; } + /* Deferred start requires that device supports queue start */ + if (tx_conf != NULL && tx_conf->tx_deferred_start && + *dev->dev_ops->tx_queue_start == NULL) + return -ENOTSUP; + ret = rte_eth_dev_info_get(port_id, &dev_info); if (ret != 0) return ret; -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 2/5] net/dpaa: remove unnecessary deferred start check 2024-12-13 21:48 [PATCH 0/5] centralize deferred start checks Stephen Hemminger 2024-12-13 21:48 ` [PATCH 1/5] ethdev: check that device supports deferred start Stephen Hemminger @ 2024-12-13 21:48 ` Stephen Hemminger 2024-12-13 21:48 ` [PATCH 3/5] net/dpaa2: remove unneeded " Stephen Hemminger ` (4 subsequent siblings) 6 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-13 21:48 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Hemant Agrawal, Sachin Saxena This check is now done in ethdev layer. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/dpaa/dpaa_ethdev.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index e8d34e5898..ce4bbbb8f0 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -1089,11 +1089,6 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, return -rte_errno; } - /* Rx deferred start is not supported */ - if (rx_conf->rx_deferred_start) { - DPAA_PMD_ERR("%p:Rx deferred start not supported", (void *)dev); - return -EINVAL; - } rxq->nb_desc = UINT16_MAX; rxq->offloads = rx_conf->offloads; @@ -1399,11 +1394,6 @@ int dpaa_eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, PMD_INIT_FUNC_TRACE(); - /* Tx deferred start is not supported */ - if (tx_conf->tx_deferred_start) { - DPAA_PMD_ERR("%p:Tx deferred start not supported", (void *)dev); - return -EINVAL; - } txq->nb_desc = UINT16_MAX; txq->offloads = tx_conf->offloads; -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 3/5] net/dpaa2: remove unneeded deferred start check 2024-12-13 21:48 [PATCH 0/5] centralize deferred start checks Stephen Hemminger 2024-12-13 21:48 ` [PATCH 1/5] ethdev: check that device supports deferred start Stephen Hemminger 2024-12-13 21:48 ` [PATCH 2/5] net/dpaa: remove unnecessary deferred start check Stephen Hemminger @ 2024-12-13 21:48 ` Stephen Hemminger 2024-12-13 21:48 ` [PATCH 4/5] net/enetfec: " Stephen Hemminger ` (3 subsequent siblings) 6 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-13 21:48 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Hemant Agrawal, Sachin Saxena Already checked in ethdev now. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/dpaa2/dpaa2_ethdev.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index a9bce854c3..8624bba0ce 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -726,13 +726,6 @@ dpaa2_dev_rx_queue_setup(struct rte_eth_dev *dev, DPAA2_PMD_WARN("To use Normal buffers, run 'export DPNI_NORMAL_BUF=1' before running dynamic_dpl.sh script"); } - /* Rx deferred start is not supported */ - if (rx_conf->rx_deferred_start) { - DPAA2_PMD_ERR("%s:Rx deferred start not supported", - dev->data->name); - return -EINVAL; - } - if (!priv->bp_list || priv->bp_list->mp != mb_pool) { if (rte_eal_process_type() != RTE_PROC_PRIMARY) { ret = rte_dpaa2_bpid_info_init(mb_pool); @@ -889,13 +882,6 @@ dpaa2_dev_tx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - /* Tx deferred start is not supported */ - if (tx_conf->tx_deferred_start) { - DPAA2_PMD_ERR("%s:Tx deferred start not supported", - dev->data->name); - return -EINVAL; - } - dpaa2_q->nb_desc = UINT16_MAX; dpaa2_q->offloads = tx_conf->offloads; -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 4/5] net/enetfec: remove unneeded deferred start check 2024-12-13 21:48 [PATCH 0/5] centralize deferred start checks Stephen Hemminger ` (2 preceding siblings ...) 2024-12-13 21:48 ` [PATCH 3/5] net/dpaa2: remove unneeded " Stephen Hemminger @ 2024-12-13 21:48 ` Stephen Hemminger 2024-12-13 21:48 ` [PATCH 5/5] net/virtio: " Stephen Hemminger ` (2 subsequent siblings) 6 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-13 21:48 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Apeksha Gupta, Sachin Saxena Already checked in ethdev now. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/enetfec/enet_ethdev.c | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/drivers/net/enetfec/enet_ethdev.c b/drivers/net/enetfec/enet_ethdev.c index 91c0f60490..d8c81f4a70 100644 --- a/drivers/net/enetfec/enet_ethdev.c +++ b/drivers/net/enetfec/enet_ethdev.c @@ -377,12 +377,6 @@ enetfec_tx_queue_setup(struct rte_eth_dev *dev, sizeof(struct bufdesc); unsigned int dsize_log2 = rte_fls_u64(dsize) - 1; - /* Tx deferred start is not supported */ - if (tx_conf->tx_deferred_start) { - ENETFEC_PMD_ERR("Tx deferred start not supported"); - return -EINVAL; - } - /* allocate transmit queue */ txq = rte_zmalloc(NULL, sizeof(*txq), RTE_CACHE_LINE_SIZE); if (txq == NULL) { @@ -456,12 +450,6 @@ enetfec_rx_queue_setup(struct rte_eth_dev *dev, sizeof(struct bufdesc); unsigned int dsize_log2 = rte_fls_u64(dsize) - 1; - /* Rx deferred start is not supported */ - if (rx_conf->rx_deferred_start) { - ENETFEC_PMD_ERR("Rx deferred start not supported"); - return -EINVAL; - } - if (queue_idx >= ENETFEC_MAX_Q) { ENETFEC_PMD_ERR("Invalid queue id %" PRIu16 ", max %d", queue_idx, ENETFEC_MAX_Q); -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH 5/5] net/virtio: remove unneeded deferred start check 2024-12-13 21:48 [PATCH 0/5] centralize deferred start checks Stephen Hemminger ` (3 preceding siblings ...) 2024-12-13 21:48 ` [PATCH 4/5] net/enetfec: " Stephen Hemminger @ 2024-12-13 21:48 ` Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 0/5] add check for deferred start to ethdev Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger 6 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-13 21:48 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Maxime Coquelin, Chenbo Xia Already checked in ethdev now. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/virtio/virtio_rxtx.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c index b67f063b31..6ae3a6eb12 100644 --- a/drivers/net/virtio/virtio_rxtx.c +++ b/drivers/net/virtio/virtio_rxtx.c @@ -654,11 +654,6 @@ virtio_dev_rx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - if (rx_conf->rx_deferred_start) { - PMD_INIT_LOG(ERR, "Rx deferred start is not supported"); - return -EINVAL; - } - buf_size = virtio_rx_mem_pool_buf_size(mp); if (!virtio_rx_check_scatter(hw->max_rx_pkt_len, buf_size, hw->rx_ol_scatter, &error)) { @@ -819,11 +814,6 @@ virtio_dev_tx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - if (tx_conf->tx_deferred_start) { - PMD_INIT_LOG(ERR, "Tx deferred start is not supported"); - return -EINVAL; - } - if (nb_desc == 0 || nb_desc > vq->vq_nentries) nb_desc = vq->vq_nentries; vq->vq_free_cnt = RTE_MIN(vq->vq_free_cnt, nb_desc); -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 0/5] add check for deferred start to ethdev 2024-12-13 21:48 [PATCH 0/5] centralize deferred start checks Stephen Hemminger ` (4 preceding siblings ...) 2024-12-13 21:48 ` [PATCH 5/5] net/virtio: " Stephen Hemminger @ 2024-12-14 18:07 ` Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 1/5] ethdev: check that device supports deferred start Stephen Hemminger ` (4 more replies) 2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger 6 siblings, 5 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-14 18:07 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger Recent zxdh driver review raised the question of why should drivers have to check rx_conf for deferred start support. This can be better handled across all drivers at ethdev level. v2 - annotate now unused conf pointer in enetfec Stephen Hemminger (5): ethdev: check that device supports deferred start net/dpaa: remove unnecessary deferred start check net/dpaa2: remove unneeded deferred start check net/enetfec: remove unneeded deferred start check net/virtio: remove unneeded deferred start check drivers/net/dpaa/dpaa_ethdev.c | 10 ---------- drivers/net/dpaa2/dpaa2_ethdev.c | 14 -------------- drivers/net/enetfec/enet_ethdev.c | 16 ++-------------- drivers/net/virtio/virtio_rxtx.c | 10 ---------- lib/ethdev/rte_ethdev.c | 10 ++++++++++ 5 files changed, 12 insertions(+), 48 deletions(-) -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 1/5] ethdev: check that device supports deferred start 2024-12-14 18:07 ` [PATCH v2 0/5] add check for deferred start to ethdev Stephen Hemminger @ 2024-12-14 18:07 ` Stephen Hemminger 2024-12-15 8:56 ` Andrew Rybchenko 2024-12-14 18:07 ` [PATCH v2 2/5] net/dpaa: remove unnecessary deferred start check Stephen Hemminger ` (3 subsequent siblings) 4 siblings, 1 reply; 22+ messages in thread From: Stephen Hemminger @ 2024-12-14 18:07 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Thomas Monjalon, Ferruh Yigit, Andrew Rybchenko The check for supporting deferred start should be handled at the ethdev level for all devices. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- lib/ethdev/rte_ethdev.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 6413c54e3b..7768058f6d 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -2264,6 +2264,11 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id, if (rx_conf != NULL) rx_offloads |= rx_conf->offloads; + /* Deferred start requires that device supports queue start */ + if (rx_conf != NULL && rx_conf->rx_deferred_start && + *dev->dev_ops->rx_queue_start == NULL) + return -ENOTSUP; + /* Ensure that we have one and only one source of Rx buffers */ if ((mp != NULL) + (rx_conf != NULL && rx_conf->rx_nseg > 0) + @@ -2575,6 +2580,11 @@ rte_eth_tx_queue_setup(uint16_t port_id, uint16_t tx_queue_id, return -EINVAL; } + /* Deferred start requires that device supports queue start */ + if (tx_conf != NULL && tx_conf->tx_deferred_start && + *dev->dev_ops->tx_queue_start == NULL) + return -ENOTSUP; + ret = rte_eth_dev_info_get(port_id, &dev_info); if (ret != 0) return ret; -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 1/5] ethdev: check that device supports deferred start 2024-12-14 18:07 ` [PATCH v2 1/5] ethdev: check that device supports deferred start Stephen Hemminger @ 2024-12-15 8:56 ` Andrew Rybchenko 2024-12-16 18:58 ` Stephen Hemminger 0 siblings, 1 reply; 22+ messages in thread From: Andrew Rybchenko @ 2024-12-15 8:56 UTC (permalink / raw) To: Stephen Hemminger, dev; +Cc: Thomas Monjalon, Ferruh Yigit On 12/14/24 21:07, Stephen Hemminger wrote: > The check for supporting deferred start should be handled at > the ethdev level for all devices. It is a good idea to check it on ethdev level. Strictly speaking presence of queue start/stop callback does not mean support for deferred start right now. It is possible to use stop/start without deferred start feature. However, such check is much better than nothing since deferred start definitely requires queue start callback. It would be good to clarify it in the documentation. doc/guides/nics/features.rst does not mention deferred start at all. In fact, I don't mind to couple deferred start to queue start/stop features. One nit below. Anyway: Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> > --- > lib/ethdev/rte_ethdev.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c > index 6413c54e3b..7768058f6d 100644 > --- a/lib/ethdev/rte_ethdev.c > +++ b/lib/ethdev/rte_ethdev.c > @@ -2264,6 +2264,11 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id, > if (rx_conf != NULL) > rx_offloads |= rx_conf->offloads; > > + /* Deferred start requires that device supports queue start */ > + if (rx_conf != NULL && rx_conf->rx_deferred_start && > + *dev->dev_ops->rx_queue_start == NULL) > + return -ENOTSUP; Wouldn't it be useful to add some kind of logging to simplify debugging in this case. > + > /* Ensure that we have one and only one source of Rx buffers */ > if ((mp != NULL) + > (rx_conf != NULL && rx_conf->rx_nseg > 0) + > @@ -2575,6 +2580,11 @@ rte_eth_tx_queue_setup(uint16_t port_id, uint16_t tx_queue_id, > return -EINVAL; > } > > + /* Deferred start requires that device supports queue start */ > + if (tx_conf != NULL && tx_conf->tx_deferred_start && > + *dev->dev_ops->tx_queue_start == NULL) > + return -ENOTSUP; > + > ret = rte_eth_dev_info_get(port_id, &dev_info); > if (ret != 0) > return ret; ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 1/5] ethdev: check that device supports deferred start 2024-12-15 8:56 ` Andrew Rybchenko @ 2024-12-16 18:58 ` Stephen Hemminger 2024-12-17 6:07 ` Andrew Rybchenko 0 siblings, 1 reply; 22+ messages in thread From: Stephen Hemminger @ 2024-12-16 18:58 UTC (permalink / raw) To: Andrew Rybchenko; +Cc: dev, Thomas Monjalon, Ferruh Yigit On Sun, 15 Dec 2024 11:56:55 +0300 Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> wrote: > On 12/14/24 21:07, Stephen Hemminger wrote: > > The check for supporting deferred start should be handled at > > the ethdev level for all devices. > > It is a good idea to check it on ethdev level. > > Strictly speaking presence of queue start/stop callback does not mean > support for deferred start right now. It is possible to use stop/start > without deferred start feature. Right, there are drivers that define the callback but have no logic in place to do deferred start. They just ignore the flag. Drivers with this odditiy are: ark, atlantic, cxgbe, enic, hinic, ipn3ke, nfb, nfp, ntnic This patch set won't change that. There are also some drivers which claim to support queue start/stop in the documentation, but there is no functions: virtio, mana, netvsc, mlx4, vmxnet3 Will fix that in next version of this series. > > However, such check is much better than nothing since deferred start > definitely requires queue start callback. > > It would be good to clarify it in the documentation. > doc/guides/nics/features.rst does not mention deferred start at all. > In fact, I don't mind to couple deferred start to queue start/stop > features. It is a bug that the drivers that do queue start/stop and don't implement deferred start. There is no hardware reason to not support it, just missing feature during driver development. > > One nit below. > > Anyway: > Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> ^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v2 1/5] ethdev: check that device supports deferred start 2024-12-16 18:58 ` Stephen Hemminger @ 2024-12-17 6:07 ` Andrew Rybchenko 0 siblings, 0 replies; 22+ messages in thread From: Andrew Rybchenko @ 2024-12-17 6:07 UTC (permalink / raw) To: Stephen Hemminger; +Cc: dev, Thomas Monjalon, Ferruh Yigit On 12/16/24 21:58, Stephen Hemminger wrote: > On Sun, 15 Dec 2024 11:56:55 +0300 > Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> wrote: > >> On 12/14/24 21:07, Stephen Hemminger wrote: >>> The check for supporting deferred start should be handled at >>> the ethdev level for all devices. >> >> It is a good idea to check it on ethdev level. >> >> Strictly speaking presence of queue start/stop callback does not mean >> support for deferred start right now. It is possible to use stop/start >> without deferred start feature. > > Right, there are drivers that define the callback but have no logic > in place to do deferred start. They just ignore the flag. > Drivers with this odditiy are: > ark, atlantic, cxgbe, enic, hinic, ipn3ke, nfb, nfp, ntnic > This patch set won't change that. > > There are also some drivers which claim to support queue start/stop > in the documentation, but there is no functions: > virtio, mana, netvsc, mlx4, vmxnet3 > Will fix that in next version of this series. > >> >> However, such check is much better than nothing since deferred start >> definitely requires queue start callback. >> >> It would be good to clarify it in the documentation. >> doc/guides/nics/features.rst does not mention deferred start at all. >> In fact, I don't mind to couple deferred start to queue start/stop >> features. > > It is a bug that the drivers that do queue start/stop and don't > implement deferred start. There is no hardware reason to not support > it, just missing feature during driver development. I agree. Please, don't forget to add rx_deferred_start and tx_deferred_start to queue start/stop features in doc/guides/nics/features.rst. >> >> One nit below. >> >> Anyway: >> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 2/5] net/dpaa: remove unnecessary deferred start check 2024-12-14 18:07 ` [PATCH v2 0/5] add check for deferred start to ethdev Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 1/5] ethdev: check that device supports deferred start Stephen Hemminger @ 2024-12-14 18:07 ` Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 3/5] net/dpaa2: remove unneeded " Stephen Hemminger ` (2 subsequent siblings) 4 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-14 18:07 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Hemant Agrawal, Sachin Saxena This check is now done in ethdev layer. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/dpaa/dpaa_ethdev.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index e8d34e5898..ce4bbbb8f0 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -1089,11 +1089,6 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, return -rte_errno; } - /* Rx deferred start is not supported */ - if (rx_conf->rx_deferred_start) { - DPAA_PMD_ERR("%p:Rx deferred start not supported", (void *)dev); - return -EINVAL; - } rxq->nb_desc = UINT16_MAX; rxq->offloads = rx_conf->offloads; @@ -1399,11 +1394,6 @@ int dpaa_eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, PMD_INIT_FUNC_TRACE(); - /* Tx deferred start is not supported */ - if (tx_conf->tx_deferred_start) { - DPAA_PMD_ERR("%p:Tx deferred start not supported", (void *)dev); - return -EINVAL; - } txq->nb_desc = UINT16_MAX; txq->offloads = tx_conf->offloads; -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 3/5] net/dpaa2: remove unneeded deferred start check 2024-12-14 18:07 ` [PATCH v2 0/5] add check for deferred start to ethdev Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 1/5] ethdev: check that device supports deferred start Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 2/5] net/dpaa: remove unnecessary deferred start check Stephen Hemminger @ 2024-12-14 18:07 ` Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 4/5] net/enetfec: " Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 5/5] net/virtio: " Stephen Hemminger 4 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-14 18:07 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Hemant Agrawal, Sachin Saxena Already checked in ethdev now. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/dpaa2/dpaa2_ethdev.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index a9bce854c3..8624bba0ce 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -726,13 +726,6 @@ dpaa2_dev_rx_queue_setup(struct rte_eth_dev *dev, DPAA2_PMD_WARN("To use Normal buffers, run 'export DPNI_NORMAL_BUF=1' before running dynamic_dpl.sh script"); } - /* Rx deferred start is not supported */ - if (rx_conf->rx_deferred_start) { - DPAA2_PMD_ERR("%s:Rx deferred start not supported", - dev->data->name); - return -EINVAL; - } - if (!priv->bp_list || priv->bp_list->mp != mb_pool) { if (rte_eal_process_type() != RTE_PROC_PRIMARY) { ret = rte_dpaa2_bpid_info_init(mb_pool); @@ -889,13 +882,6 @@ dpaa2_dev_tx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - /* Tx deferred start is not supported */ - if (tx_conf->tx_deferred_start) { - DPAA2_PMD_ERR("%s:Tx deferred start not supported", - dev->data->name); - return -EINVAL; - } - dpaa2_q->nb_desc = UINT16_MAX; dpaa2_q->offloads = tx_conf->offloads; -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 4/5] net/enetfec: remove unneeded deferred start check 2024-12-14 18:07 ` [PATCH v2 0/5] add check for deferred start to ethdev Stephen Hemminger ` (2 preceding siblings ...) 2024-12-14 18:07 ` [PATCH v2 3/5] net/dpaa2: remove unneeded " Stephen Hemminger @ 2024-12-14 18:07 ` Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 5/5] net/virtio: " Stephen Hemminger 4 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-14 18:07 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Apeksha Gupta, Sachin Saxena Already checked in ethdev now. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/enetfec/enet_ethdev.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/drivers/net/enetfec/enet_ethdev.c b/drivers/net/enetfec/enet_ethdev.c index 91c0f60490..9835532595 100644 --- a/drivers/net/enetfec/enet_ethdev.c +++ b/drivers/net/enetfec/enet_ethdev.c @@ -366,7 +366,7 @@ enetfec_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_desc, unsigned int socket_id __rte_unused, - const struct rte_eth_txconf *tx_conf) + const struct rte_eth_txconf *tx_conf __rte_unused) { struct enetfec_private *fep = dev->data->dev_private; unsigned int i; @@ -377,12 +377,6 @@ enetfec_tx_queue_setup(struct rte_eth_dev *dev, sizeof(struct bufdesc); unsigned int dsize_log2 = rte_fls_u64(dsize) - 1; - /* Tx deferred start is not supported */ - if (tx_conf->tx_deferred_start) { - ENETFEC_PMD_ERR("Tx deferred start not supported"); - return -EINVAL; - } - /* allocate transmit queue */ txq = rte_zmalloc(NULL, sizeof(*txq), RTE_CACHE_LINE_SIZE); if (txq == NULL) { @@ -443,7 +437,7 @@ enetfec_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_rx_desc, unsigned int socket_id __rte_unused, - const struct rte_eth_rxconf *rx_conf, + const struct rte_eth_rxconf *rx_conf __rte_unused, struct rte_mempool *mb_pool) { struct enetfec_private *fep = dev->data->dev_private; @@ -456,12 +450,6 @@ enetfec_rx_queue_setup(struct rte_eth_dev *dev, sizeof(struct bufdesc); unsigned int dsize_log2 = rte_fls_u64(dsize) - 1; - /* Rx deferred start is not supported */ - if (rx_conf->rx_deferred_start) { - ENETFEC_PMD_ERR("Rx deferred start not supported"); - return -EINVAL; - } - if (queue_idx >= ENETFEC_MAX_Q) { ENETFEC_PMD_ERR("Invalid queue id %" PRIu16 ", max %d", queue_idx, ENETFEC_MAX_Q); -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v2 5/5] net/virtio: remove unneeded deferred start check 2024-12-14 18:07 ` [PATCH v2 0/5] add check for deferred start to ethdev Stephen Hemminger ` (3 preceding siblings ...) 2024-12-14 18:07 ` [PATCH v2 4/5] net/enetfec: " Stephen Hemminger @ 2024-12-14 18:07 ` Stephen Hemminger 4 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-14 18:07 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Maxime Coquelin, Chenbo Xia Already checked in ethdev now. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/virtio/virtio_rxtx.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c index b67f063b31..6ae3a6eb12 100644 --- a/drivers/net/virtio/virtio_rxtx.c +++ b/drivers/net/virtio/virtio_rxtx.c @@ -654,11 +654,6 @@ virtio_dev_rx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - if (rx_conf->rx_deferred_start) { - PMD_INIT_LOG(ERR, "Rx deferred start is not supported"); - return -EINVAL; - } - buf_size = virtio_rx_mem_pool_buf_size(mp); if (!virtio_rx_check_scatter(hw->max_rx_pkt_len, buf_size, hw->rx_ol_scatter, &error)) { @@ -819,11 +814,6 @@ virtio_dev_tx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - if (tx_conf->tx_deferred_start) { - PMD_INIT_LOG(ERR, "Tx deferred start is not supported"); - return -EINVAL; - } - if (nb_desc == 0 || nb_desc > vq->vq_nentries) nb_desc = vq->vq_nentries; vq->vq_free_cnt = RTE_MIN(vq->vq_free_cnt, nb_desc); -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v3 0/6] queue start/stop and deferred checks 2024-12-13 21:48 [PATCH 0/5] centralize deferred start checks Stephen Hemminger ` (5 preceding siblings ...) 2024-12-14 18:07 ` [PATCH v2 0/5] add check for deferred start to ethdev Stephen Hemminger @ 2024-12-16 19:11 ` Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 1/6] ethdev: check that device supports deferred start Stephen Hemminger ` (5 more replies) 6 siblings, 6 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-16 19:11 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger Recent zxdh driver review raised the question of why should drivers have to check rx_conf for deferred start support. This can be better handled across all drivers at ethdev level. Also found some drivers were incorrect in feature flags about handling of queue start/stop. v3 - fix doc about queue start/stop for some drivers Stephen Hemminger (6): ethdev: check that device supports deferred start doc: fix feature flags for queue start/stop net/dpaa: remove unnecessary deferred start check net/dpaa2: remove unneeded deferred start check net/enetfec: remove unneeded deferred start check net/virtio: remove unneeded deferred start check doc/guides/nics/features/gve.ini | 1 + doc/guides/nics/features/mana.ini | 1 - doc/guides/nics/features/netvsc.ini | 1 - doc/guides/nics/features/virtio.ini | 1 - doc/guides/nics/features/vmxnet3.ini | 1 - drivers/net/dpaa/dpaa_ethdev.c | 10 ---------- drivers/net/dpaa2/dpaa2_ethdev.c | 14 -------------- drivers/net/enetfec/enet_ethdev.c | 16 ++-------------- drivers/net/virtio/virtio_rxtx.c | 10 ---------- lib/ethdev/rte_ethdev.c | 16 ++++++++++++++++ 10 files changed, 19 insertions(+), 52 deletions(-) -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v3 1/6] ethdev: check that device supports deferred start 2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger @ 2024-12-16 19:11 ` Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 2/6] doc: fix feature flags for queue start/stop Stephen Hemminger ` (4 subsequent siblings) 5 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-16 19:11 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Andrew Rybchenko, Thomas Monjalon, Ferruh Yigit The check for supporting deferred start should be handled at the ethdev level for all devices. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> --- lib/ethdev/rte_ethdev.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 6413c54e3b..7678fa47b6 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -2264,6 +2264,14 @@ rte_eth_rx_queue_setup(uint16_t port_id, uint16_t rx_queue_id, if (rx_conf != NULL) rx_offloads |= rx_conf->offloads; + /* Deferred start requires that device supports queue start */ + if (rx_conf != NULL && rx_conf->rx_deferred_start && + *dev->dev_ops->rx_queue_start == NULL) { + RTE_ETHDEV_LOG_LINE(ERR, + "Deferred start requested, but driver does not support queue start"); + return -ENOTSUP; + } + /* Ensure that we have one and only one source of Rx buffers */ if ((mp != NULL) + (rx_conf != NULL && rx_conf->rx_nseg > 0) + @@ -2575,6 +2583,14 @@ rte_eth_tx_queue_setup(uint16_t port_id, uint16_t tx_queue_id, return -EINVAL; } + /* Deferred start requires that device supports queue start */ + if (tx_conf != NULL && tx_conf->tx_deferred_start && + *dev->dev_ops->tx_queue_start == NULL) { + RTE_ETHDEV_LOG_LINE(ERR, + "Deferred start requested, but driver does not support queue start"); + return -ENOTSUP; + } + ret = rte_eth_dev_info_get(port_id, &dev_info); if (ret != 0) return ret; -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v3 2/6] doc: fix feature flags for queue start/stop 2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 1/6] ethdev: check that device supports deferred start Stephen Hemminger @ 2024-12-16 19:11 ` Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 3/6] net/dpaa: remove unnecessary deferred start check Stephen Hemminger ` (3 subsequent siblings) 5 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-16 19:11 UTC (permalink / raw) To: dev Cc: Stephen Hemminger, Jeroen de Borst, Rushil Gupta, Joshua Washington, Long Li, Wei Hu, Maxime Coquelin, Chenbo Xia, Jochen Behrens Several drivers have mismatch between the ethdev ops for queue start/stop and the documentation. The gve driver does implement queue start/stop support. The mana, netvsc, virtio and vmxnet3 drivers do not implement the rx_queue_start callback. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- doc/guides/nics/features/gve.ini | 1 + doc/guides/nics/features/mana.ini | 1 - doc/guides/nics/features/netvsc.ini | 1 - doc/guides/nics/features/virtio.ini | 1 - doc/guides/nics/features/vmxnet3.ini | 1 - 5 files changed, 1 insertion(+), 4 deletions(-) diff --git a/doc/guides/nics/features/gve.ini b/doc/guides/nics/features/gve.ini index 8dfa229bb0..f18b829eda 100644 --- a/doc/guides/nics/features/gve.ini +++ b/doc/guides/nics/features/gve.ini @@ -6,6 +6,7 @@ [Features] Speed capabilities = Y Link status = Y +Queue start/stop = Y MTU update = Y TSO = Y RSS hash = Y diff --git a/doc/guides/nics/features/mana.ini b/doc/guides/nics/features/mana.ini index 42fd3327d2..db555ffe27 100644 --- a/doc/guides/nics/features/mana.ini +++ b/doc/guides/nics/features/mana.ini @@ -8,7 +8,6 @@ Speed capabilities = P Link status = P Removal event = Y Rx interrupt = Y -Queue start/stop = Y RSS hash = Y L3 checksum offload = Y L4 checksum offload = Y diff --git a/doc/guides/nics/features/netvsc.ini b/doc/guides/nics/features/netvsc.ini index de8c698184..32df77a03e 100644 --- a/doc/guides/nics/features/netvsc.ini +++ b/doc/guides/nics/features/netvsc.ini @@ -7,7 +7,6 @@ Speed capabilities = P Link status = Y Free Tx mbuf on demand = Y -Queue start/stop = Y Scattered Rx = Y Promiscuous mode = Y Allmulticast mode = Y diff --git a/doc/guides/nics/features/virtio.ini b/doc/guides/nics/features/virtio.ini index a5eab4932f..f0a1a564f9 100644 --- a/doc/guides/nics/features/virtio.ini +++ b/doc/guides/nics/features/virtio.ini @@ -8,7 +8,6 @@ Speed capabilities = P Link status = Y Link status event = Y Rx interrupt = Y -Queue start/stop = Y Scattered Rx = P Promiscuous mode = Y Allmulticast mode = Y diff --git a/doc/guides/nics/features/vmxnet3.ini b/doc/guides/nics/features/vmxnet3.ini index 971695fc4a..749887d642 100644 --- a/doc/guides/nics/features/vmxnet3.ini +++ b/doc/guides/nics/features/vmxnet3.ini @@ -7,7 +7,6 @@ Speed capabilities = P Link status = Y Link status event = Y -Queue start/stop = Y MTU update = Y LRO = Y TSO = Y -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v3 3/6] net/dpaa: remove unnecessary deferred start check 2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 1/6] ethdev: check that device supports deferred start Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 2/6] doc: fix feature flags for queue start/stop Stephen Hemminger @ 2024-12-16 19:11 ` Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 4/6] net/dpaa2: remove unneeded " Stephen Hemminger ` (2 subsequent siblings) 5 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-16 19:11 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Hemant Agrawal, Sachin Saxena This check is now done in ethdev layer. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/dpaa/dpaa_ethdev.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index e8d34e5898..ce4bbbb8f0 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -1089,11 +1089,6 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, return -rte_errno; } - /* Rx deferred start is not supported */ - if (rx_conf->rx_deferred_start) { - DPAA_PMD_ERR("%p:Rx deferred start not supported", (void *)dev); - return -EINVAL; - } rxq->nb_desc = UINT16_MAX; rxq->offloads = rx_conf->offloads; @@ -1399,11 +1394,6 @@ int dpaa_eth_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, PMD_INIT_FUNC_TRACE(); - /* Tx deferred start is not supported */ - if (tx_conf->tx_deferred_start) { - DPAA_PMD_ERR("%p:Tx deferred start not supported", (void *)dev); - return -EINVAL; - } txq->nb_desc = UINT16_MAX; txq->offloads = tx_conf->offloads; -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v3 4/6] net/dpaa2: remove unneeded deferred start check 2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger ` (2 preceding siblings ...) 2024-12-16 19:11 ` [PATCH v3 3/6] net/dpaa: remove unnecessary deferred start check Stephen Hemminger @ 2024-12-16 19:11 ` Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 5/6] net/enetfec: " Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 6/6] net/virtio: " Stephen Hemminger 5 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-16 19:11 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Hemant Agrawal, Sachin Saxena Already checked in ethdev now. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/dpaa2/dpaa2_ethdev.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index a9bce854c3..8624bba0ce 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -726,13 +726,6 @@ dpaa2_dev_rx_queue_setup(struct rte_eth_dev *dev, DPAA2_PMD_WARN("To use Normal buffers, run 'export DPNI_NORMAL_BUF=1' before running dynamic_dpl.sh script"); } - /* Rx deferred start is not supported */ - if (rx_conf->rx_deferred_start) { - DPAA2_PMD_ERR("%s:Rx deferred start not supported", - dev->data->name); - return -EINVAL; - } - if (!priv->bp_list || priv->bp_list->mp != mb_pool) { if (rte_eal_process_type() != RTE_PROC_PRIMARY) { ret = rte_dpaa2_bpid_info_init(mb_pool); @@ -889,13 +882,6 @@ dpaa2_dev_tx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - /* Tx deferred start is not supported */ - if (tx_conf->tx_deferred_start) { - DPAA2_PMD_ERR("%s:Tx deferred start not supported", - dev->data->name); - return -EINVAL; - } - dpaa2_q->nb_desc = UINT16_MAX; dpaa2_q->offloads = tx_conf->offloads; -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v3 5/6] net/enetfec: remove unneeded deferred start check 2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger ` (3 preceding siblings ...) 2024-12-16 19:11 ` [PATCH v3 4/6] net/dpaa2: remove unneeded " Stephen Hemminger @ 2024-12-16 19:11 ` Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 6/6] net/virtio: " Stephen Hemminger 5 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-16 19:11 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Apeksha Gupta, Sachin Saxena Already checked in ethdev now. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/enetfec/enet_ethdev.c | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/drivers/net/enetfec/enet_ethdev.c b/drivers/net/enetfec/enet_ethdev.c index 91c0f60490..9835532595 100644 --- a/drivers/net/enetfec/enet_ethdev.c +++ b/drivers/net/enetfec/enet_ethdev.c @@ -366,7 +366,7 @@ enetfec_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_desc, unsigned int socket_id __rte_unused, - const struct rte_eth_txconf *tx_conf) + const struct rte_eth_txconf *tx_conf __rte_unused) { struct enetfec_private *fep = dev->data->dev_private; unsigned int i; @@ -377,12 +377,6 @@ enetfec_tx_queue_setup(struct rte_eth_dev *dev, sizeof(struct bufdesc); unsigned int dsize_log2 = rte_fls_u64(dsize) - 1; - /* Tx deferred start is not supported */ - if (tx_conf->tx_deferred_start) { - ENETFEC_PMD_ERR("Tx deferred start not supported"); - return -EINVAL; - } - /* allocate transmit queue */ txq = rte_zmalloc(NULL, sizeof(*txq), RTE_CACHE_LINE_SIZE); if (txq == NULL) { @@ -443,7 +437,7 @@ enetfec_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, uint16_t nb_rx_desc, unsigned int socket_id __rte_unused, - const struct rte_eth_rxconf *rx_conf, + const struct rte_eth_rxconf *rx_conf __rte_unused, struct rte_mempool *mb_pool) { struct enetfec_private *fep = dev->data->dev_private; @@ -456,12 +450,6 @@ enetfec_rx_queue_setup(struct rte_eth_dev *dev, sizeof(struct bufdesc); unsigned int dsize_log2 = rte_fls_u64(dsize) - 1; - /* Rx deferred start is not supported */ - if (rx_conf->rx_deferred_start) { - ENETFEC_PMD_ERR("Rx deferred start not supported"); - return -EINVAL; - } - if (queue_idx >= ENETFEC_MAX_Q) { ENETFEC_PMD_ERR("Invalid queue id %" PRIu16 ", max %d", queue_idx, ENETFEC_MAX_Q); -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v3 6/6] net/virtio: remove unneeded deferred start check 2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger ` (4 preceding siblings ...) 2024-12-16 19:11 ` [PATCH v3 5/6] net/enetfec: " Stephen Hemminger @ 2024-12-16 19:11 ` Stephen Hemminger 5 siblings, 0 replies; 22+ messages in thread From: Stephen Hemminger @ 2024-12-16 19:11 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Maxime Coquelin, Chenbo Xia Already checked in ethdev now. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/virtio/virtio_rxtx.c | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c index b67f063b31..6ae3a6eb12 100644 --- a/drivers/net/virtio/virtio_rxtx.c +++ b/drivers/net/virtio/virtio_rxtx.c @@ -654,11 +654,6 @@ virtio_dev_rx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - if (rx_conf->rx_deferred_start) { - PMD_INIT_LOG(ERR, "Rx deferred start is not supported"); - return -EINVAL; - } - buf_size = virtio_rx_mem_pool_buf_size(mp); if (!virtio_rx_check_scatter(hw->max_rx_pkt_len, buf_size, hw->rx_ol_scatter, &error)) { @@ -819,11 +814,6 @@ virtio_dev_tx_queue_setup(struct rte_eth_dev *dev, PMD_INIT_FUNC_TRACE(); - if (tx_conf->tx_deferred_start) { - PMD_INIT_LOG(ERR, "Tx deferred start is not supported"); - return -EINVAL; - } - if (nb_desc == 0 || nb_desc > vq->vq_nentries) nb_desc = vq->vq_nentries; vq->vq_free_cnt = RTE_MIN(vq->vq_free_cnt, nb_desc); -- 2.45.2 ^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2024-12-17 6:07 UTC | newest] Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2024-12-13 21:48 [PATCH 0/5] centralize deferred start checks Stephen Hemminger 2024-12-13 21:48 ` [PATCH 1/5] ethdev: check that device supports deferred start Stephen Hemminger 2024-12-13 21:48 ` [PATCH 2/5] net/dpaa: remove unnecessary deferred start check Stephen Hemminger 2024-12-13 21:48 ` [PATCH 3/5] net/dpaa2: remove unneeded " Stephen Hemminger 2024-12-13 21:48 ` [PATCH 4/5] net/enetfec: " Stephen Hemminger 2024-12-13 21:48 ` [PATCH 5/5] net/virtio: " Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 0/5] add check for deferred start to ethdev Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 1/5] ethdev: check that device supports deferred start Stephen Hemminger 2024-12-15 8:56 ` Andrew Rybchenko 2024-12-16 18:58 ` Stephen Hemminger 2024-12-17 6:07 ` Andrew Rybchenko 2024-12-14 18:07 ` [PATCH v2 2/5] net/dpaa: remove unnecessary deferred start check Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 3/5] net/dpaa2: remove unneeded " Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 4/5] net/enetfec: " Stephen Hemminger 2024-12-14 18:07 ` [PATCH v2 5/5] net/virtio: " Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 0/6] queue start/stop and deferred checks Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 1/6] ethdev: check that device supports deferred start Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 2/6] doc: fix feature flags for queue start/stop Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 3/6] net/dpaa: remove unnecessary deferred start check Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 4/6] net/dpaa2: remove unneeded " Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 5/6] net/enetfec: " Stephen Hemminger 2024-12-16 19:11 ` [PATCH v3 6/6] net/virtio: " Stephen Hemminger
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).