Thread (38 messages) 38 messages, 2 authors, 2017-04-01

Re: [PATCH 2/5] net/virtio-user: add rxq interrupt mode support

From: Tan, Jianfeng <hidden>
Date: 2017-03-28 01:33:34

-----Original Message-----
From: Yuanhan Liu [mailto:yuanhan.liu@linux.intel.com]
Sent: Friday, March 17, 2017 2:48 PM
To: Tan, Jianfeng
Cc: dev@dpdk.org; david.marchand@6wind.com
Subject: Re: [PATCH 2/5] net/virtio-user: add rxq interrupt mode support

On Fri, Mar 03, 2017 at 05:56:40PM +0000, Jianfeng Tan wrote:
quoted
Signed-off-by: Jianfeng Tan <redacted>
I don't see a single word to explain how this patch works :/
Sorry, will add that in next version.
quoted
---
 drivers/net/virtio/virtio_ethdev.c               | 17 ++++++++++++++--
 drivers/net/virtio/virtio_user/virtio_user_dev.c | 25
+++++++++++++++++++++++-
quoted
 drivers/net/virtio/virtio_user/virtio_user_dev.h |  2 +-
 drivers/net/virtio/virtio_user_ethdev.c          | 12 +++++++++++-
 4 files changed, 51 insertions(+), 5 deletions(-)
diff --git a/drivers/net/virtio/virtio_ethdev.c
b/drivers/net/virtio/virtio_ethdev.c
quoted
index 4dc03b9..5d80d1a 100644
--- a/drivers/net/virtio/virtio_ethdev.c
+++ b/drivers/net/virtio/virtio_ethdev.c
@@ -1264,6 +1264,10 @@ virtio_configure_intr(struct rte_eth_dev *dev)
 {
 	struct virtio_hw *hw = dev->data->dev_private;

+
+#ifdef RTE_VIRTIO_USER
+        if (!hw->virtio_user_dev) {
+#endif
No need to put the #ifdef block here. virtio_user_dev is defined even
when RTE_VIRTIO_USER is not configured.
Correct. I'll remove that.
...
quoted
+	vtpci_reinit_complete(hw);
+
 	if (eth_dev->data->dev_conf.intr_conf.rxq) {
 		if (virtio_configure_intr(eth_dev) < 0) {
 			PMD_INIT_LOG(ERR, "failed to configure interrupt");
@@ -1416,8 +1431,6 @@ virtio_init_device(struct rte_eth_dev *eth_dev,
uint64_t req_features)
quoted
 		}
 	}

-	vtpci_reinit_complete(hw);

Hmm, why ...? Such stealthy change definitely need an explanation.
And it's more likely it needs a single patch.
I should have described it more. The reason of above change is to make sure intr_handle is filled in virtio_user_start_device(). But reconsidering this, this could have effect on virtio pci device as it requires interrupts are set up before setting DRIVER_OK. So how about:

1. configure intr for PCI devices;
2. vtpci_reinit_complete();
3. configure intr for vdev;

Thanks,
Jianfeng
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help