On 14.10.25 08:48, Jason Wang wrote:
On Mon, Sep 1, 2025 at 11:39 PM Vladimir Sementsov-Ogievskiy
<[email protected]> wrote:

This option doesn't make sense since long ago (10 years!)
commit 1e7398a140f7a6 ("vhost: enable vhost without without MSI-X").

qemu-options.hx still say:

"""
     "                use vhostforce=on to force vhost on for non-MSIX
virtio guests\n"
"""

Should we fix that as well?

will do.



Prior 1e7398a140f7a6, to enable vhost for some specific kind of guests
(that don't have MSI-X support), you should have set vhostforce=on
(with vhost=on or unset).

Since 1e7398a140f7a6, guest type doesn't matter, all guests are equal
for vhost-enabling options logic.

The current logic is:
   vhost=on / vhost=off : vhostforce ignored, doesn't make sense
   vhost unset : vhostforce counts, enabling vhost

Currently you may enable vhost several ways:
- vhost=on
- vhostforce=on
- vhost=on + vhostforce=on
- and even vhost=on + vhostforce=off

- they are all equal.

Let's finally deprecate the extra option.

Note that vhostforce works for vhost-user as well:

{ 'struct': 'NetdevVhostUserOptions',
   'data': {
     'chardev':        'str',
     '*vhostforce':    'bool',
     '*queues':        'int' } }

Should we change that as well?


hmm, this vhostforce is unused. Will deprecate it as well.


Also, fix @vhostforce documentation.

Signed-off-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: Markus Armbruster <[email protected]>
---

v3: - two spaces between sentences for vhostforce description
     - add r-b by Markus

  docs/about/deprecated.rst |  7 +++++++
  qapi/net.json             | 11 +++++++++--
  2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst
index d50645a071..b17a5a41aa 100644
--- a/docs/about/deprecated.rst
+++ b/docs/about/deprecated.rst
@@ -516,6 +516,13 @@ Stream ``reconnect`` (since 9.2)
  The ``reconnect`` option only allows specifying second granularity timeouts,
  which is not enough for all types of use cases, use ``reconnect-ms`` instead.

+TAP ``vhostforce`` (since 10.2)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``vhostforce`` option is redundant with the ``vhost`` option.
+If they conflict, ``vhost`` takes precedence.  Just use ``vhost``.
+
+
  VFIO device options
  '''''''''''''''''''

diff --git a/qapi/net.json b/qapi/net.json
index 78bcc9871e..bab26e0c5d 100644
--- a/qapi/net.json
+++ b/qapi/net.json
@@ -346,13 +346,20 @@
  # @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
  #
  # @poll-us: maximum number of microseconds that could be spent on busy
  #     polling for tap (since 2.7)
  #
+# Features:
+#
+# @deprecated: Member @vhostforce is deprecated.  The @vhostforce
+#    option is redundant with the @vhost option. If they conflict,
+#    @vhost takes precedence.  Just use @vhost.
+#
  # Since: 1.2
  ##
  { 'struct': 'NetdevTapOptions',
@@ -369,7 +376,7 @@
      '*vhost':      'bool',
      '*vhostfd':    'str',
      '*vhostfds':   'str',
-    '*vhostforce': 'bool',
+    '*vhostforce': { 'type': 'bool', 'features': [ 'deprecated' ] },
      '*queues':     'uint32',
      '*poll-us':    'uint32'} }

--
2.48.1


Thanks


Thanks for reviewing!

--
Best regards,
Vladimir

Reply via email to