[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: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v2 for-2.12] tap: set vhostfd passed from qemu cli to non-blocking |
Date: |
Thu, 17 May 2018 18:08:58 +0300 |
On Thu, May 17, 2018 at 09:54:40AM -0500, Brijesh Singh wrote:
> 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
I reviewed.
Jason?
Cc stable I guess ...
> 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