[libvirt] [PATCH] Revert "qemu: Expose rx/tx_queue_size in qemu.conf too"

Daniel P. Berrangé berrange at redhat.com
Mon Feb 12 14:56:49 UTC 2018


This reverts commit 038eb472a0d970a17ccf4343ead0666df5c92f9d.

On reflection adding defaults for arbitrary guest XML device config
settings to the qemu.conf is not a sustainable path. Removing the
support for rx/tx queue size so that it doesn't set a bad precedent.

Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
---
 docs/formatdomain.html.in          | 14 ++--------
 src/qemu/libvirtd_qemu.aug         |  4 ---
 src/qemu/qemu.conf                 |  6 -----
 src/qemu/qemu_command.c            | 55 +++++++++++---------------------------
 src/qemu/qemu_command.h            |  3 +--
 src/qemu/qemu_conf.c               |  4 ---
 src/qemu/qemu_conf.h               |  3 ---
 src/qemu/qemu_hotplug.c            |  2 +-
 src/qemu/test_libvirtd_qemu.aug.in |  2 --
 9 files changed, 19 insertions(+), 74 deletions(-)

diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 6707744bda..3ec1173c6f 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -5456,12 +5456,7 @@ qemu-kvm -net nic,model=? /dev/null
         some restrictions on actual value. For instance, latest
         QEMU (as of 2016-09-01) requires value to be a power of two
         from [256, 1024] range.
-        <span class="since">Since 2.3.0 (QEMU and KVM only)</span>
-        Additionally, <span class="since">since 4.1.0</span> the
-        value can be set in the <code>qemu.conf</code> file in order
-        to override the hypervisor default value. Note that XML has
-        higher precedence because it's more specific.
-        <br/><br/>
+        <span class="since">Since 2.3.0 (QEMU and KVM only)</span><br/><br/>
 
         <b>In general you should leave this option alone, unless you
         are very certain you know what you are doing.</b>
@@ -5477,12 +5472,7 @@ qemu-kvm -net nic,model=? /dev/null
         range. In addition to that, this may work only for a subset of
         interface types, e.g. aforementioned QEMU enables this option
         only for <code>vhostuser</code> type.
-        <span class="since">Since 3.7.0 (QEMU and KVM only)</span>
-        Additionally, <span class="since">since 4.1.0</span> the
-        value can be set in the <code>qemu.conf</code> file in order
-        to override the hypervisor default value. Note that XML has
-        higher precedence because it's more specific.
-        <br/><br/>
+        <span class="since">Since 3.7.0 (QEMU and KVM only)</span><br/><br/>
 
         <b>In general you should leave this option alone, unless you
         are very certain you know what you are doing.</b>
diff --git a/src/qemu/libvirtd_qemu.aug b/src/qemu/libvirtd_qemu.aug
index 084290296a..c19bf3a43a 100644
--- a/src/qemu/libvirtd_qemu.aug
+++ b/src/qemu/libvirtd_qemu.aug
@@ -118,9 +118,6 @@ module Libvirtd_qemu =
    let vxhs_entry = bool_entry "vxhs_tls"
                  | str_entry "vxhs_tls_x509_cert_dir"
 
-   let virtio_entry = int_entry "rx_queue_size"
-                 | int_entry "tx_queue_size"
-
    (* Each entry in the config is one of the following ... *)
    let entry = default_tls_entry
              | vnc_entry
@@ -140,7 +137,6 @@ module Libvirtd_qemu =
              | gluster_debug_level_entry
              | memory_entry
              | vxhs_entry
-             | virtio_entry
 
    let comment = [ label "#comment" . del /#[ \t]*/ "# " .  store /([^ \t\n][^\n]*)?/ . del /\n/ "\n" ]
    let empty = [ label "#empty" . eol ]
diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf
index 62c4265ea9..43dd561cca 100644
--- a/src/qemu/qemu.conf
+++ b/src/qemu/qemu.conf
@@ -775,9 +775,3 @@
 # This directory is used for memoryBacking source if configured as file.
 # NOTE: big files will be stored here
 #memory_backing_dir = "/var/lib/libvirt/qemu/ram"
-
-# The following two values set the default RX/TX ring buffer size for virtio
-# interfaces. These values are taken unless overridden in domain XML. For more
-# info consult docs to corresponding attributes from domain XML.
-#rx_queue_size = 1024
-#tx_queue_size = 1024
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 2bcaa5fc22..f7925c93a8 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3351,8 +3351,7 @@ qemuBuildNicStr(virDomainNetDefPtr net,
 
 
 char *
-qemuBuildNicDevStr(virQEMUDriverConfigPtr cfg,
-                   virDomainDefPtr def,
+qemuBuildNicDevStr(virDomainDefPtr def,
                    virDomainNetDefPtr net,
                    int vlan,
                    unsigned int bootindex,
@@ -3472,41 +3471,21 @@ qemuBuildNicDevStr(virQEMUDriverConfigPtr cfg,
             virBufferAsprintf(&buf, ",mq=on,vectors=%zu", 2 * vhostfdSize + 2);
         }
     }
-    if (usingVirtio) {
-        unsigned int rx_queue_size = net->driver.virtio.rx_queue_size;
-
-        if (rx_queue_size == 0)
-            rx_queue_size = cfg->rx_queue_size;
-
-        if (rx_queue_size) {
-            if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_NET_RX_QUEUE_SIZE)) {
-                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                               _("virtio rx_queue_size option is "
-                                 "not supported with this QEMU binary"));
-                goto error;
-            }
-
-            net->driver.virtio.rx_queue_size = rx_queue_size;
-            virBufferAsprintf(&buf, ",rx_queue_size=%u", rx_queue_size);
+    if (usingVirtio && net->driver.virtio.rx_queue_size) {
+        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_NET_RX_QUEUE_SIZE)) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("virtio rx_queue_size option is not supported with this QEMU binary"));
+            goto error;
         }
+        virBufferAsprintf(&buf, ",rx_queue_size=%u", net->driver.virtio.rx_queue_size);
     }
-    if (usingVirtio) {
-        unsigned int tx_queue_size = net->driver.virtio.tx_queue_size;
-
-        if (tx_queue_size == 0)
-            tx_queue_size = cfg->tx_queue_size;
-
-        if (tx_queue_size) {
-            if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_NET_TX_QUEUE_SIZE)) {
-                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                               _("virtio tx_queue_size option is "
-                                 "not supported with this QEMU binary"));
-                goto error;
-            }
-
-            net->driver.virtio.tx_queue_size = tx_queue_size;
-            virBufferAsprintf(&buf, ",tx_queue_size=%u", tx_queue_size);
+    if (usingVirtio && net->driver.virtio.tx_queue_size) {
+        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_VIRTIO_NET_TX_QUEUE_SIZE)) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("virtio tx_queue_size option is not supported with this QEMU binary"));
+            goto error;
         }
+        virBufferAsprintf(&buf, ",tx_queue_size=%u", net->driver.virtio.tx_queue_size);
     }
 
     if (usingVirtio && net->mtu) {
@@ -8192,7 +8171,7 @@ qemuBuildVhostuserCommandLine(virQEMUDriverPtr driver,
     virCommandAddArg(cmd, netdev);
     VIR_FREE(netdev);
 
-    if (!(nic = qemuBuildNicDevStr(cfg, def, net, -1, bootindex,
+    if (!(nic = qemuBuildNicDevStr(def, net, -1, bootindex,
                                    queues, qemuCaps))) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        "%s", _("Error generating NIC -device string"));
@@ -8229,7 +8208,6 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
                               int **nicindexes,
                               bool chardevStdioLogd)
 {
-    virQEMUDriverConfigPtr cfg = NULL;
     int ret = -1;
     char *nic = NULL, *host = NULL;
     int *tapfd = NULL;
@@ -8291,8 +8269,6 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
         return -1;
     }
 
-    cfg = virQEMUDriverGetConfig(driver);
-
     switch (actualType) {
     case VIR_DOMAIN_NET_TYPE_NETWORK:
     case VIR_DOMAIN_NET_TYPE_BRIDGE:
@@ -8488,7 +8464,7 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
         virCommandAddArgList(cmd, "-netdev", host, NULL);
     }
     if (qemuDomainSupportsNicdev(def, net)) {
-        if (!(nic = qemuBuildNicDevStr(cfg, def, net, vlan, bootindex,
+        if (!(nic = qemuBuildNicDevStr(def, net, vlan, bootindex,
                                        vhostfdSize, qemuCaps)))
             goto cleanup;
         virCommandAddArgList(cmd, "-device", nic, NULL);
@@ -8532,7 +8508,6 @@ qemuBuildInterfaceCommandLine(virQEMUDriverPtr driver,
     VIR_FREE(host);
     VIR_FREE(tapfdName);
     VIR_FREE(vhostfdName);
-    virObjectUnref(cfg);
     return ret;
 }
 
diff --git a/src/qemu/qemu_command.h b/src/qemu/qemu_command.h
index 6449883291..31c9da673c 100644
--- a/src/qemu/qemu_command.h
+++ b/src/qemu/qemu_command.h
@@ -90,8 +90,7 @@ char *qemuBuildNicStr(virDomainNetDefPtr net,
                       int vlan);
 
 /* Current, best practice */
-char *qemuBuildNicDevStr(virQEMUDriverConfigPtr cfg,
-                         virDomainDefPtr def,
+char *qemuBuildNicDevStr(virDomainDefPtr def,
                          virDomainNetDefPtr net,
                          int vlan,
                          unsigned int bootindex,
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 2fa96431fa..af503d31cb 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -912,10 +912,6 @@ int virQEMUDriverConfigLoadFile(virQEMUDriverConfigPtr cfg,
     if (virConfGetValueString(conf, "memory_backing_dir", &cfg->memoryBackingDir) < 0)
         goto cleanup;
 
-    if (virConfGetValueUInt(conf, "rx_queue_size", &cfg->rx_queue_size) < 0 ||
-        virConfGetValueUInt(conf, "tx_queue_size", &cfg->tx_queue_size) < 0)
-        goto cleanup;
-
     ret = 0;
 
  cleanup:
diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
index 3f38a76c26..a553e30e2e 100644
--- a/src/qemu/qemu_conf.h
+++ b/src/qemu/qemu_conf.h
@@ -206,9 +206,6 @@ struct _virQEMUDriverConfig {
 
     bool vxhsTLS;
     char *vxhsTLSx509certdir;
-
-    unsigned int rx_queue_size;
-    unsigned int tx_queue_size;
 };
 
 /* Main driver state */
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 3291ce6130..c9868de778 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1118,7 +1118,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
     for (i = 0; i < vhostfdSize; i++)
         VIR_FORCE_CLOSE(vhostfd[i]);
 
-    if (!(nicstr = qemuBuildNicDevStr(cfg, vm->def, net, vlan, 0,
+    if (!(nicstr = qemuBuildNicDevStr(vm->def, net, vlan, 0,
                                       queueSize, priv->qemuCaps)))
         goto try_remove;
 
diff --git a/src/qemu/test_libvirtd_qemu.aug.in b/src/qemu/test_libvirtd_qemu.aug.in
index 4fc4e2f4ec..688e5b9fda 100644
--- a/src/qemu/test_libvirtd_qemu.aug.in
+++ b/src/qemu/test_libvirtd_qemu.aug.in
@@ -100,5 +100,3 @@ module Test_libvirtd_qemu =
     { "1" = "mount" }
 }
 { "memory_backing_dir" = "/var/lib/libvirt/qemu/ram" }
-{ "rx_queue_size" = "1024" }
-{ "tx_queue_size" = "1024" }
-- 
2.14.3




More information about the libvir-list mailing list