qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 for-2.12] tap: set vhostfd passed from qemu c


From: Brijesh Singh
Subject: Re: [Qemu-devel] [PATCH v2 for-2.12] tap: set vhostfd passed from qemu cli to non-blocking
Date: Thu, 17 May 2018 09:54:40 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0

Hi Michael and Jason,

Looks like this patch was not included in any of your pull request hence it didn't made into 2.12. Can you please include this patch in your next pull request?

~ Brijesh

On 04/07/2018 10:53 PM, Michael S. Tsirkin wrote:
On Fri, Apr 06, 2018 at 01:51:25PM -0500, Brijesh Singh wrote:
A guest boot hangs while probing the network interface when
iommu_platform=on is used.

The following qemu cli hangs without this patch:

# $QEMU \
   -netdev tap,fd=3,id=hostnet0,vhost=on,vhostfd=4 3<>/dev/tap67 
4<>/dev/host-net \
   -device 
virtio-net-pci,netdev=hostnet0,id=net0,iommu_platform=on,disable-legacy=on \
   ...

Commit: c471ad0e9bd46 (vhost_net: device IOTLB support) took care of
setting vhostfd to non-blocking when QEMU opens /dev/host-net but if
the fd is passed from qemu cli then we need to ensure that fd is set
to non-blocking.

Fixes: c471ad0e9bd46 "vhost_net: device IOTLB support"
Cc: Michael S. Tsirkin <address@hidden>
Cc: Jason Wang <address@hidden>
Signed-off-by: Brijesh Singh <address@hidden>

Reviewed-by: Michael S. Tsirkin <address@hidden>

---

Changes since v1:
  - use qemu_set_nonblock() instead of fcntl(..)

  net/tap.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/net/tap.c b/net/tap.c
index 2b3a36f9b50d..89c4e19162a2 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -40,6 +40,7 @@
  #include "qemu-common.h"
  #include "qemu/cutils.h"
  #include "qemu/error-report.h"
+#include "qemu/sockets.h"
#include "net/tap.h" @@ -693,6 +694,7 @@ static void net_init_tap_one(const NetdevTapOptions *tap, NetClientState *peer,
                  }
                  return;
              }
+            qemu_set_nonblock(vhostfd);
          } else {
              vhostfd = open("/dev/vhost-net", O_RDWR);
              if (vhostfd < 0) {
--
2.14.3



reply via email to

[Prev in Thread] Current Thread [Next in Thread]