* [dpdk-stable] [PATCH] net/virtio: reconfigure LSC handler when required @ 2021-08-30 15:13 David Marchand [not found] ` <20210831155411.17672-1-david.marchand@redhat.com> 0 siblings, 1 reply; 5+ messages in thread From: David Marchand @ 2021-08-30 15:13 UTC (permalink / raw) To: dev; +Cc: stable, Maxime Coquelin, Chenbo Xia, Jianfeng Tan, Yuanhan Liu There is no reason to re-register a interrupt handler for LSC if this feature was not requested in the first place. A simple usecase is when asking for Rx interrupts without LSC interrupt. Fixes: 26b683b4f7d0 ("net/virtio: setup Rx queue interrupts") Cc: stable@dpdk.org Signed-off-by: David Marchand <david.marchand@redhat.com> --- drivers/net/virtio/virtio_ethdev.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index e58085a2c9..314a291e8c 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -1684,13 +1684,15 @@ virtio_configure_intr(struct rte_eth_dev *dev) } } - /* Re-register callback to update max_intr */ - rte_intr_callback_unregister(dev->intr_handle, - virtio_interrupt_handler, - dev); - rte_intr_callback_register(dev->intr_handle, - virtio_interrupt_handler, - dev); + if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) { + /* Re-register callback to update max_intr */ + rte_intr_callback_unregister(dev->intr_handle, + virtio_interrupt_handler, + dev); + rte_intr_callback_register(dev->intr_handle, + virtio_interrupt_handler, + dev); + } /* DO NOT try to remove this! This function will enable msix, or QEMU * will encounter SIGSEGV when DRIVER_OK is sent. -- 2.23.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20210831155411.17672-1-david.marchand@redhat.com>]
* [dpdk-stable] [PATCH v2 1/2] net/virtio: reconfigure LSC handler when required [not found] ` <20210831155411.17672-1-david.marchand@redhat.com> @ 2021-08-31 15:54 ` David Marchand 2021-09-14 8:36 ` Maxime Coquelin 2021-08-31 15:54 ` [dpdk-stable] [PATCH v2 2/2] net/virtio: fix virtio-user Rx interrupts with multi queue David Marchand 1 sibling, 1 reply; 5+ messages in thread From: David Marchand @ 2021-08-31 15:54 UTC (permalink / raw) To: dev; +Cc: stable, Maxime Coquelin, Chenbo Xia, Jianfeng Tan, Yuanhan Liu There is no reason to re-register a interrupt handler for LSC if this feature was not requested in the first place. A simple usecase is when asking for Rx interrupts without LSC interrupt. Fixes: 26b683b4f7d0 ("net/virtio: setup Rx queue interrupts") Cc: stable@dpdk.org Signed-off-by: David Marchand <david.marchand@redhat.com> --- drivers/net/virtio/virtio_ethdev.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index e58085a2c9..314a291e8c 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -1684,13 +1684,15 @@ virtio_configure_intr(struct rte_eth_dev *dev) } } - /* Re-register callback to update max_intr */ - rte_intr_callback_unregister(dev->intr_handle, - virtio_interrupt_handler, - dev); - rte_intr_callback_register(dev->intr_handle, - virtio_interrupt_handler, - dev); + if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) { + /* Re-register callback to update max_intr */ + rte_intr_callback_unregister(dev->intr_handle, + virtio_interrupt_handler, + dev); + rte_intr_callback_register(dev->intr_handle, + virtio_interrupt_handler, + dev); + } /* DO NOT try to remove this! This function will enable msix, or QEMU * will encounter SIGSEGV when DRIVER_OK is sent. -- 2.23.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [PATCH v2 1/2] net/virtio: reconfigure LSC handler when required 2021-08-31 15:54 ` [dpdk-stable] [PATCH v2 1/2] " David Marchand @ 2021-09-14 8:36 ` Maxime Coquelin 0 siblings, 0 replies; 5+ messages in thread From: Maxime Coquelin @ 2021-09-14 8:36 UTC (permalink / raw) To: David Marchand, dev; +Cc: stable, Chenbo Xia, Jianfeng Tan, Yuanhan Liu On 8/31/21 5:54 PM, David Marchand wrote: > There is no reason to re-register a interrupt handler for LSC if this > feature was not requested in the first place. > A simple usecase is when asking for Rx interrupts without LSC interrupt. > > Fixes: 26b683b4f7d0 ("net/virtio: setup Rx queue interrupts") > Cc: stable@dpdk.org > > Signed-off-by: David Marchand <david.marchand@redhat.com> > --- > drivers/net/virtio/virtio_ethdev.c | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c > index e58085a2c9..314a291e8c 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -1684,13 +1684,15 @@ virtio_configure_intr(struct rte_eth_dev *dev) > } > } > > - /* Re-register callback to update max_intr */ > - rte_intr_callback_unregister(dev->intr_handle, > - virtio_interrupt_handler, > - dev); > - rte_intr_callback_register(dev->intr_handle, > - virtio_interrupt_handler, > - dev); > + if (dev->data->dev_flags & RTE_ETH_DEV_INTR_LSC) { > + /* Re-register callback to update max_intr */ > + rte_intr_callback_unregister(dev->intr_handle, > + virtio_interrupt_handler, > + dev); > + rte_intr_callback_register(dev->intr_handle, > + virtio_interrupt_handler, > + dev); > + } > > /* DO NOT try to remove this! This function will enable msix, or QEMU > * will encounter SIGSEGV when DRIVER_OK is sent. > Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Thanks, Maxime ^ permalink raw reply [flat|nested] 5+ messages in thread
* [dpdk-stable] [PATCH v2 2/2] net/virtio: fix virtio-user Rx interrupts with multi queue [not found] ` <20210831155411.17672-1-david.marchand@redhat.com> 2021-08-31 15:54 ` [dpdk-stable] [PATCH v2 1/2] " David Marchand @ 2021-08-31 15:54 ` David Marchand 2021-09-14 8:39 ` Maxime Coquelin 1 sibling, 1 reply; 5+ messages in thread From: David Marchand @ 2021-08-31 15:54 UTC (permalink / raw) To: dev; +Cc: stable, Maxime Coquelin, Chenbo Xia, Jianfeng Tan The callfds[] array stores eventfds sequentially for Rx and Tx vq. Fixes: 3d4fb6fd2505 ("net/virtio-user: support Rx interrupt") Cc: stable@dpdk.org Signed-off-by: David Marchand <david.marchand@redhat.com> --- drivers/net/virtio/virtio_user/virtio_user_dev.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c index 16c58710d7..89f8b2271f 100644 --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c @@ -416,7 +416,7 @@ virtio_user_fill_intr_handle(struct virtio_user_dev *dev) } for (i = 0; i < dev->max_queue_pairs; ++i) - eth_dev->intr_handle->efds[i] = dev->callfds[i]; + eth_dev->intr_handle->efds[i] = dev->callfds[2 * i]; eth_dev->intr_handle->nb_efd = dev->max_queue_pairs; eth_dev->intr_handle->max_intr = dev->max_queue_pairs + 1; eth_dev->intr_handle->type = RTE_INTR_HANDLE_VDEV; -- 2.23.0 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [dpdk-stable] [PATCH v2 2/2] net/virtio: fix virtio-user Rx interrupts with multi queue 2021-08-31 15:54 ` [dpdk-stable] [PATCH v2 2/2] net/virtio: fix virtio-user Rx interrupts with multi queue David Marchand @ 2021-09-14 8:39 ` Maxime Coquelin 0 siblings, 0 replies; 5+ messages in thread From: Maxime Coquelin @ 2021-09-14 8:39 UTC (permalink / raw) To: David Marchand, dev; +Cc: stable, Chenbo Xia, Jianfeng Tan On 8/31/21 5:54 PM, David Marchand wrote: > The callfds[] array stores eventfds sequentially for Rx and Tx vq. > > Fixes: 3d4fb6fd2505 ("net/virtio-user: support Rx interrupt") > Cc: stable@dpdk.org > > Signed-off-by: David Marchand <david.marchand@redhat.com> > --- > drivers/net/virtio/virtio_user/virtio_user_dev.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c b/drivers/net/virtio/virtio_user/virtio_user_dev.c > index 16c58710d7..89f8b2271f 100644 > --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c > +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c > @@ -416,7 +416,7 @@ virtio_user_fill_intr_handle(struct virtio_user_dev *dev) > } > > for (i = 0; i < dev->max_queue_pairs; ++i) > - eth_dev->intr_handle->efds[i] = dev->callfds[i]; > + eth_dev->intr_handle->efds[i] = dev->callfds[2 * i]; > eth_dev->intr_handle->nb_efd = dev->max_queue_pairs; > eth_dev->intr_handle->max_intr = dev->max_queue_pairs + 1; > eth_dev->intr_handle->type = RTE_INTR_HANDLE_VDEV; > Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Thanks, Maxime ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-09-14 8:39 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-08-30 15:13 [dpdk-stable] [PATCH] net/virtio: reconfigure LSC handler when required David Marchand [not found] ` <20210831155411.17672-1-david.marchand@redhat.com> 2021-08-31 15:54 ` [dpdk-stable] [PATCH v2 1/2] " David Marchand 2021-09-14 8:36 ` Maxime Coquelin 2021-08-31 15:54 ` [dpdk-stable] [PATCH v2 2/2] net/virtio: fix virtio-user Rx interrupts with multi queue David Marchand 2021-09-14 8:39 ` Maxime Coquelin
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).