summary refs log tree commit diff
path: root/src/main.rs
diff options
context:
space:
mode:
authorXiong Zhang <xiong.y.zhang@intel.corp-partner.google.com>2020-03-20 10:39:55 +0800
committerCommit Bot <commit-bot@chromium.org>2020-04-04 19:52:11 +0000
commit773c70740e98c1aaf73a7b02e65eadaeab33c9d8 (patch)
tree9af2f03662973a833320193e21a50fcc6b066c31 /src/main.rs
parentc56bc989668d2d79f2a00d098a24729fc0cd6801 (diff)
downloadcrosvm-773c70740e98c1aaf73a7b02e65eadaeab33c9d8.tar
crosvm-773c70740e98c1aaf73a7b02e65eadaeab33c9d8.tar.gz
crosvm-773c70740e98c1aaf73a7b02e65eadaeab33c9d8.tar.bz2
crosvm-773c70740e98c1aaf73a7b02e65eadaeab33c9d8.tar.lz
crosvm-773c70740e98c1aaf73a7b02e65eadaeab33c9d8.tar.xz
crosvm-773c70740e98c1aaf73a7b02e65eadaeab33c9d8.tar.zst
crosvm-773c70740e98c1aaf73a7b02e65eadaeab33c9d8.zip
Virtio-net: Let queue-num could configurable
Virtio-net multi queue feature need multi queue pairs, this patch change
queue-num configurable instead of static. --net-vq-pairs parameter could
config virtio net device virtual queue pairs.

BUG=chromium:1064482
TEST=Test virtio net function in guest with --net-vq-pairs=1 and
--net-vq-pairs=2

Change-Id: I75202c8ae52a83b8087b52149ec6d2138d8831cb
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2120312
Tested-by: kokoro <noreply+kokoro@google.com>
Commit-Queue: Xiong  Zhang <xiong.y.zhang@intel.corp-partner.google.com>
Reviewed-by: Stephen Barber <smbarber@chromium.org>
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
index 3afca8e..241334d 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -762,6 +762,26 @@ fn set_argument(cfg: &mut Config, name: &str, value: Option<&str>) -> argument::
                         })?,
                 )
         }
+        "net-vq-pairs" => {
+            if cfg.net_vq_pairs.is_some() {
+                return Err(argument::Error::TooManyArguments(
+                    "`net-vq-pairs` already given".to_owned(),
+                ));
+            }
+            cfg.net_vq_pairs =
+                Some(
+                    value
+                        .unwrap()
+                        .parse()
+                        .map_err(|_| argument::Error::InvalidValue {
+                            value: value.unwrap().to_owned(),
+                            expected: String::from(
+                                "this value for `net-vq-pairs` needs to be integer",
+                            ),
+                        })?,
+                )
+        }
+
         "wayland-sock" => {
             let mut components = value.unwrap().split(',');
             let path =
@@ -1237,6 +1257,7 @@ fn run_vm(args: std::env::Args) -> std::result::Result<(), ()> {
                           "IP address to assign to host tap interface."),
           Argument::value("netmask", "NETMASK", "Netmask for VM subnet."),
           Argument::value("mac", "MAC", "MAC address for VM."),
+          Argument::value("net-vq-pairs", "N", "virtio net virtual queue paris. (default: 1)"),
           Argument::value("ac97",
                           "[backend=BACKEND,capture=true,capture_effect=EFFECT]",
                           "Comma separated key=value pairs for setting up Ac97 devices. Can be given more than once .