Vladimir Sementsov-Ogievskiy <[email protected]> writes: > This option for tap and vhost-user netdevs doesn't make sense > since long ago (10 years!), starting from commits: > > 1e7398a140f7a6 ("vhost: enable vhost without without MSI-X") > 24f938a682d934 ("vhost user:support vhost user nic for non msi guests") > > Prior these commits, to enable kernel vhost-net, or vhost-user-net for > some specific kind of guests (that don't have MSI-X support), you should > have set vhostforce=on. > > Now guest type doesn't matter, all guests are equal for these > options logic. > > For tap the current logic is: > vhost=on / vhost=off : vhostforce ignored, doesn't make sense > vhost unset : vhostforce counts, enabling vhost > > So you may enable vhost for tap several ways: > - vhost=on > - vhostforce=on > - vhost=on + vhostforce=on > - and even vhost=on + vhostforce=off > > - they are all equal. > > For vhost-user we simply ignore the vhostforce option at all in the > code. > > Let's finally deprecate the extra options. > > Also, fix @vhostforce documentation everywhere to show the real picture, > and update vhost-user test to not use deprecated option. > > While updating command line options, drop "experimental" word from > "experimental in kernel accelerator". vhost-net is in production for > years. > > Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]> > Reviewed-by: Markus Armbruster <[email protected]> > --- > docs/about/deprecated.rst | 11 +++++++++++ > qapi/net.json | 18 ++++++++++++++---- > qemu-options.hx | 13 +++++-------- > tests/qtest/vhost-user-test.c | 2 +- > 4 files changed, 31 insertions(+), 13 deletions(-) > > > v7: rebase on master (on top of "[PATCH v16 0/8] virtio-net: live-TAP local > migration") > 01: update version 11.0 -> 11.1, keep r-b > > Based-on: <[email protected]> > "[PATCH v16 0/8] virtio-net: live-TAP local migration" > > diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst > index 95bf7613295..2c79cdb4eeb 100644 > --- a/docs/about/deprecated.rst > +++ b/docs/about/deprecated.rst > @@ -384,6 +384,17 @@ Backend ``memory`` (since 9.0) > ``memory`` is a deprecated synonym for ``ringbuf``. > > > +TAP ``vhostforce`` (since 11.1) > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +The ``vhostforce`` option is redundant with the ``vhost`` option. > +If they conflict, ``vhost`` takes precedence. Just use ``vhost``. > + > +Vhost-user ``vhostforce`` (since 11.1) > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > + > +The ``vhostforce`` option is a no-op. Do not use it. > + > CPU device properties > ''''''''''''''''''''' > > diff --git a/qapi/net.json b/qapi/net.json > index 82ddbb51cd7..70a749a0e64 100644 > --- a/qapi/net.json > +++ b/qapi/net.json > @@ -418,7 +418,8 @@ > # @vhostfds: file descriptors of multiple already opened vhost net > # devices > # > -# @vhostforce: vhost on for non-MSIX virtio guests > +# @vhostforce: enable vhost-net network accelerator. Ignored when > +# @vhost is set. > # > # @queues: number of queues to be created for multiqueue capable tap > # > @@ -432,6 +433,10 @@ > # @downscript be explicitly set to nothing (empty string or "no") > # (Since 11.1) > # > +# Features: > +# > +# @deprecated: Member @vhostforce is deprecated. Use @vhost instead. > +# > # Since: 1.2 > ## > { 'struct': 'NetdevTapOptions', > @@ -448,7 +453,7 @@ > '*vhost': 'bool', > '*vhostfd': 'str', > '*vhostfds': 'str', > - '*vhostforce': 'bool', > + '*vhostforce': { 'type': 'bool', 'features': [ 'deprecated' ] }, > '*queues': 'uint32', > '*poll-us': 'uint32', > '*incoming-fds': 'bool' } } > @@ -688,17 +693,22 @@ > # > # @chardev: name of a unix socket chardev > # > -# @vhostforce: vhost on for non-MSIX virtio guests (default: false). > +# @vhostforce: silently ignored, exists just for backward > +# compatibility. > # > # @queues: number of queues to be created for multiqueue vhost-user > # (default: 1) (Since 2.5) > # > +# Features: > +# > +# @deprecated: Member @vhostforce is deprecated. > +# > # Since: 2.1 > ## > { 'struct': 'NetdevVhostUserOptions', > 'data': { > 'chardev': 'str', > - '*vhostforce': 'bool', > + '*vhostforce': { 'type': 'bool', 'features': [ 'deprecated' ] }, > '*queues': 'int' } } > > ## > diff --git a/qemu-options.hx b/qemu-options.hx > index 96ae41f787b..f5a1ad6c577 100644 > --- a/qemu-options.hx > +++ b/qemu-options.hx > @@ -2969,7 +2969,7 @@ DEF("netdev", HAS_ARG, QEMU_OPTION_netdev, > #else > "-netdev > tap,id=str[,fd=h][,fds=x:y:...:z][,ifname=name][,script=file][,downscript=dfile]\n" > " > [,br=bridge][,helper=helper][,sndbuf=nbytes][,vnet_hdr=on|off][,vhost=on|off]\n" > - " > [,vhostfd=h][,vhostfds=x:y:...:z][,vhostforce=on|off][,queues=n]\n" > + " [,vhostfd=h][,vhostfds=x:y:...:z][,queues=n]\n" > " [,poll-us=n]\n" > " configure a host TAP network backend with ID 'str'\n" > " connected to a bridge (default=" > DEFAULT_BRIDGE_INTERFACE ")\n" > @@ -2985,9 +2985,7 @@ DEF("netdev", HAS_ARG, QEMU_OPTION_netdev, > " default is disabled 'sndbuf=0' to enable flow control > set 'sndbuf=1048576')\n" > " use vnet_hdr=off to avoid enabling the IFF_VNET_HDR tap > flag\n" > " use vnet_hdr=on to make the lack of IFF_VNET_HDR > support an error condition\n" > - " use vhost=on to enable experimental in kernel > accelerator\n" > - " (only has effect for virtio guests which use > MSIX)\n" > - " use vhostforce=on to force vhost on for non-MSIX virtio > guests\n" > + " use vhost=on to enable in kernel accelerator\n" > " use 'vhostfd=h' to connect to an already opened vhost > net device\n" > " use 'vhostfds=x:y:...:z to connect to multiple already > opened vhost net devices\n" > " use 'queues=n' to specify the number of queues to be > created for multiqueue TAP\n" > @@ -3078,7 +3076,7 @@ DEF("netdev", HAS_ARG, QEMU_OPTION_netdev, > " use 'start-queue=m' to specify the first queue that > should be used\n" > #endif > #ifdef CONFIG_POSIX > - "-netdev vhost-user,id=str,chardev=dev[,vhostforce=on|off]\n" > + "-netdev vhost-user,id=str,chardev=dev\n" > " configure a vhost-user network, backed by a chardev > 'dev'\n" > #endif > #ifdef __linux__ > @@ -3978,12 +3976,11 @@ SRST > for insertion into the socket map. The combination of 'map-path' and > 'sock-fds' together is not supported. > > -``-netdev vhost-user,chardev=id[,vhostforce=on|off][,queues=n]`` > +``-netdev vhost-user,chardev=id[,queues=n]`` > Establish a vhost-user netdev, backed by a chardev id. The chardev > should be a unix domain socket backed one. The vhost-user uses a > specifically defined protocol to pass vhost ioctl replacement > - messages to an application on the other end of the socket. On > - non-MSIX guests, the feature can be forced with vhostforce. Use > + messages to an application on the other end of the socket. Use > 'queues=n' to specify the number of queues to be created for > multiqueue vhost-user. > > diff --git a/tests/qtest/vhost-user-test.c b/tests/qtest/vhost-user-test.c > index c8b5f8ff714..ebeebde2281 100644 > --- a/tests/qtest/vhost-user-test.c > +++ b/tests/qtest/vhost-user-test.c > @@ -46,7 +46,7 @@ > #define QEMU_CMD_SHM " -m %d -object memory-backend-shm,id=mem,size=%dM," > \ > " -numa node,memdev=mem" > #define QEMU_CMD_CHR " -chardev socket,id=%s,path=%s%s" > -#define QEMU_CMD_NETDEV " -netdev vhost-user,id=hs0,chardev=%s,vhostforce=on" > +#define QEMU_CMD_NETDEV " -netdev vhost-user,id=hs0,chardev=%s" > > #define HUGETLBFS_MAGIC 0x958458f6
Acked-by: Fabiano Rosas <[email protected]>
