mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-11-04 19:11:11 +00:00
tests,vm-virtio,vmm: Use 'socket' for all CLI/API parameters
This patch unifies the inconsistent uses of 'socket' and 'sock' from our CLI/API parameters. Fixes: #1091 Signed-off-by: Bo Chen <chen.bo@intel.com>
This commit is contained in:
parent
90e7accf8b
commit
a8cdf2f070
@ -59,21 +59,21 @@ Assuming you have `clear-kvm.img` and `custom-vmlinux.bin` on your system, here
|
||||
--memory "size=512,file=/dev/shm" \
|
||||
--disk path=clear-kvm.img \
|
||||
--kernel custom-vmlinux.bin \
|
||||
--cmdline "console=ttyS0 reboot=k panic=1 nomodules root=/dev/vda3" \
|
||||
--fs tag=myfs,sock=/tmp/virtiofs,num_queues=1,queue_size=512
|
||||
--cmdline "console=ttyS0 reboot=k panic=1 nomodules root=/dev/vda3" \
|
||||
--fs tag=myfs,socket=/tmp/virtiofs,num_queues=1,queue_size=512
|
||||
```
|
||||
|
||||
By default, DAX is enabled with a cache window of 8GiB. You can specify a custom size (let's say 4GiB for this example) for the cache by explicitly setting DAX and the cache size:
|
||||
|
||||
```bash
|
||||
--fs tag=virtiofs,sock=/tmp/virtiofs,num_queues=1,queue_size=512,dax=on,cache_size=4G
|
||||
--fs tag=virtiofs,socket=/tmp/virtiofs,num_queues=1,queue_size=512,dax=on,cache_size=4G
|
||||
|
||||
```
|
||||
|
||||
In case you don't want to use a shared window of cache to pass the shared files content, this means you will have to explicitly disable DAX with `dax=off`. Note that in this case, the `cache_size` parameter will be ignored.
|
||||
|
||||
```bash
|
||||
--fs tag=virtiofs,sock=/tmp/virtiofs,num_queues=1,queue_size=512,dax=off
|
||||
--fs tag=virtiofs,socket=/tmp/virtiofs,num_queues=1,queue_size=512,dax=off
|
||||
|
||||
```
|
||||
|
||||
|
82
src/main.rs
82
src/main.rs
@ -745,14 +745,14 @@ mod unit_tests {
|
||||
"--memory",
|
||||
"shared=true",
|
||||
"--disk",
|
||||
"vhost_user=true,socket=/tmp/socket1",
|
||||
"vhost_user=true,socket=/tmp/sock1",
|
||||
"path=/path/to/disk/2",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"disks": [
|
||||
{"vhost_user":true, "vhost_socket":"/tmp/socket1"},
|
||||
{"vhost_user":true, "vhost_socket":"/tmp/sock1"},
|
||||
{"path": "/path/to/disk/2"}
|
||||
]
|
||||
}"#,
|
||||
@ -766,14 +766,14 @@ mod unit_tests {
|
||||
"--memory",
|
||||
"shared=true",
|
||||
"--disk",
|
||||
"vhost_user=true,socket=/tmp/socket1",
|
||||
"vhost_user=true,socket=/tmp/sock1",
|
||||
"path=/path/to/disk/2",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"disks": [
|
||||
{"vhost_user":true, "vhost_socket":"/tmp/socket1"},
|
||||
{"vhost_user":true, "vhost_socket":"/tmp/sock1"},
|
||||
{"path": "/path/to/disk/2"}
|
||||
]
|
||||
}"#,
|
||||
@ -952,12 +952,12 @@ mod unit_tests {
|
||||
true,
|
||||
),
|
||||
(
|
||||
vec!["cloud-hypervisor", "--kernel", "/path/to/kernel", "--memory", "shared=true", "--net", "mac=12:34:56:78:90:ab,host_mac=34:56:78:90:ab:cd,vhost_user=true,socket=/tmp/socket"],
|
||||
vec!["cloud-hypervisor", "--kernel", "/path/to/kernel", "--memory", "shared=true", "--net", "mac=12:34:56:78:90:ab,host_mac=34:56:78:90:ab:cd,vhost_user=true,socket=/tmp/sock"],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"net": [
|
||||
{"mac": "12:34:56:78:90:ab", "host_mac": "34:56:78:90:ab:cd", "vhost_user": true, "vhost_socket": "/tmp/socket"}
|
||||
{"mac": "12:34:56:78:90:ab", "host_mac": "34:56:78:90:ab:cd", "vhost_user": true, "vhost_socket": "/tmp/sock"}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -999,15 +999,15 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1",
|
||||
"tag=virtiofs2,sock=/path/to/sock2",
|
||||
"tag=virtiofs1,socket=/path/to/sock1",
|
||||
"tag=virtiofs2,socket=/path/to/sock2",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1"},
|
||||
{"tag": "virtiofs2", "sock": "/path/to/sock2"}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1"},
|
||||
{"tag": "virtiofs2", "socket": "/path/to/sock2"}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -1017,14 +1017,14 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1",
|
||||
"tag=virtiofs2,sock=/path/to/sock2",
|
||||
"tag=virtiofs1,socket=/path/to/sock1",
|
||||
"tag=virtiofs2,socket=/path/to/sock2",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1"}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1"}
|
||||
]
|
||||
}"#,
|
||||
false,
|
||||
@ -1034,13 +1034,13 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1,num_queues=4",
|
||||
"tag=virtiofs1,socket=/path/to/sock1,num_queues=4",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1", "num_queues": 4}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1", "num_queues": 4}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -1050,13 +1050,13 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1,num_queues=4,queue_size=128"
|
||||
"tag=virtiofs1,socket=/path/to/sock1,num_queues=4,queue_size=128"
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1", "num_queues": 4, "queue_size": 128}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1", "num_queues": 4, "queue_size": 128}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -1066,13 +1066,13 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1,num_queues=4,queue_size=128,dax=on"
|
||||
"tag=virtiofs1,socket=/path/to/sock1,num_queues=4,queue_size=128,dax=on"
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1", "num_queues": 4, "queue_size": 128}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1", "num_queues": 4, "queue_size": 128}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -1082,13 +1082,13 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1,num_queues=4,queue_size=128,dax=on"
|
||||
"tag=virtiofs1,socket=/path/to/sock1,num_queues=4,queue_size=128,dax=on"
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1", "num_queues": 4, "queue_size": 128, "dax": true}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1", "num_queues": 4, "queue_size": 128, "dax": true}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -1098,13 +1098,13 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1,num_queues=4,queue_size=128"
|
||||
"tag=virtiofs1,socket=/path/to/sock1,num_queues=4,queue_size=128"
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1", "num_queues": 4, "queue_size": 128, "dax": true}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1", "num_queues": 4, "queue_size": 128, "dax": true}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -1114,13 +1114,13 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1,num_queues=4,queue_size=128,cache_size=8589934592"
|
||||
"tag=virtiofs1,socket=/path/to/sock1,num_queues=4,queue_size=128,cache_size=8589934592"
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1", "num_queues": 4, "queue_size": 128}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1", "num_queues": 4, "queue_size": 128}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -1130,13 +1130,13 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1,num_queues=4,queue_size=128"
|
||||
"tag=virtiofs1,socket=/path/to/sock1,num_queues=4,queue_size=128"
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1", "num_queues": 4, "queue_size": 128, "cache_size": 8589934592}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1", "num_queues": 4, "queue_size": 128, "cache_size": 8589934592}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -1146,13 +1146,13 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1,num_queues=4,queue_size=128,cache_size=4294967296"
|
||||
"tag=virtiofs1,socket=/path/to/sock1,num_queues=4,queue_size=128,cache_size=4294967296"
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1", "num_queues": 4, "queue_size": 128, "cache_size": 4294967296}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1", "num_queues": 4, "queue_size": 128, "cache_size": 4294967296}
|
||||
]
|
||||
}"#,
|
||||
true,
|
||||
@ -1162,13 +1162,13 @@ mod unit_tests {
|
||||
"cloud-hypervisor", "--kernel", "/path/to/kernel",
|
||||
"--memory", "shared=true",
|
||||
"--fs",
|
||||
"tag=virtiofs1,sock=/path/to/sock1,num_queues=4,queue_size=128,cache_size=4294967296"
|
||||
"tag=virtiofs1,socket=/path/to/sock1,num_queues=4,queue_size=128,cache_size=4294967296"
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"fs": [
|
||||
{"tag": "virtiofs1", "sock": "/path/to/sock1", "num_queues": 4, "queue_size": 128}
|
||||
{"tag": "virtiofs1", "socket": "/path/to/sock1", "num_queues": 4, "queue_size": 128}
|
||||
]
|
||||
}"#,
|
||||
false,
|
||||
@ -1427,11 +1427,11 @@ mod unit_tests {
|
||||
"--kernel",
|
||||
"/path/to/kernel",
|
||||
"--vsock",
|
||||
"cid=123,sock=/path/to/sock/1",
|
||||
"cid=123,socket=/path/to/sock/1",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"vsock": {"cid": 123, "sock": "/path/to/sock/1"}
|
||||
"vsock": {"cid": 123, "socket": "/path/to/sock/1"}
|
||||
}"#,
|
||||
true,
|
||||
),
|
||||
@ -1441,11 +1441,11 @@ mod unit_tests {
|
||||
"--kernel",
|
||||
"/path/to/kernel",
|
||||
"--vsock",
|
||||
"cid=124,sock=/path/to/sock/1",
|
||||
"cid=124,socket=/path/to/sock/1",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"vsock": {"cid": 123, "sock": "/path/to/sock/1"}
|
||||
"vsock": {"cid": 123, "socket": "/path/to/sock/1"}
|
||||
}"#,
|
||||
false,
|
||||
),
|
||||
@ -1455,11 +1455,11 @@ mod unit_tests {
|
||||
"--kernel",
|
||||
"/path/to/kernel",
|
||||
"--vsock",
|
||||
"cid=123,sock=/path/to/sock/1,iommu=on",
|
||||
"cid=123,socket=/path/to/sock/1,iommu=on",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"vsock": {"cid": 123, "sock": "/path/to/sock/1", "iommu": true},
|
||||
"vsock": {"cid": 123, "socket": "/path/to/sock/1", "iommu": true},
|
||||
"iommu": true
|
||||
}"#,
|
||||
true,
|
||||
@ -1470,11 +1470,11 @@ mod unit_tests {
|
||||
"--kernel",
|
||||
"/path/to/kernel",
|
||||
"--vsock",
|
||||
"cid=123,sock=/path/to/sock/1,iommu=on",
|
||||
"cid=123,socket=/path/to/sock/1,iommu=on",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"vsock": {"cid": 123, "sock": "/path/to/sock/1", "iommu": true}
|
||||
"vsock": {"cid": 123, "socket": "/path/to/sock/1", "iommu": true}
|
||||
}"#,
|
||||
false,
|
||||
),
|
||||
@ -1484,11 +1484,11 @@ mod unit_tests {
|
||||
"--kernel",
|
||||
"/path/to/kernel",
|
||||
"--vsock",
|
||||
"cid=123,sock=/path/to/sock/1,iommu=off",
|
||||
"cid=123,socket=/path/to/sock/1,iommu=off",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"vsock": {"cid": 123, "sock": "/path/to/sock/1", "iommu": false}
|
||||
"vsock": {"cid": 123, "socket": "/path/to/sock/1", "iommu": false}
|
||||
}"#,
|
||||
true,
|
||||
),
|
||||
|
@ -370,7 +370,7 @@ mod tests {
|
||||
// Start the daemon
|
||||
let child = Command::new(clh_command("vhost_user_fs"))
|
||||
.args(&["--shared-dir", shared_dir])
|
||||
.args(&["--sock", virtiofsd_socket_path.as_str()])
|
||||
.args(&["--socket", virtiofsd_socket_path.as_str()])
|
||||
.spawn()
|
||||
.unwrap();
|
||||
|
||||
@ -813,7 +813,7 @@ mod tests {
|
||||
Ok(cache == (end_addr - start_addr + 1))
|
||||
}
|
||||
|
||||
fn check_vsock(&self, sock: &str) {
|
||||
fn check_vsock(&self, socket: &str) {
|
||||
// Listen from guest on vsock CID=3 PORT=16
|
||||
// SOCKET-LISTEN:<domain>:<protocol>:<local-address>
|
||||
let guest_ip = self.network.guest_ip.clone();
|
||||
@ -830,7 +830,7 @@ mod tests {
|
||||
.arg(
|
||||
format!(
|
||||
"echo -e \"CONNECT 16\\nHelloWorld!\" | socat - UNIX-CONNECT:{}",
|
||||
sock
|
||||
socket
|
||||
)
|
||||
.as_str(),
|
||||
)
|
||||
@ -1926,7 +1926,7 @@ mod tests {
|
||||
.args(&["--api-socket", &api_socket]);
|
||||
|
||||
let fs_params = format!(
|
||||
"id=myfs0,tag=myfs,sock={},num_queues=1,queue_size=1024,dax={}{}",
|
||||
"id=myfs0,tag=myfs,socket={},num_queues=1,queue_size=1024,dax={}{}",
|
||||
virtiofsd_socket_path, dax_vmm_param, cache_size_vmm_param
|
||||
);
|
||||
|
||||
@ -2048,7 +2048,7 @@ mod tests {
|
||||
);
|
||||
thread::sleep(std::time::Duration::new(10, 0));
|
||||
let fs_params = format!(
|
||||
"id=myfs0,tag=myfs,sock={},num_queues=1,queue_size=1024,dax={}{}",
|
||||
"id=myfs0,tag=myfs,socket={},num_queues=1,queue_size=1024,dax={}{}",
|
||||
virtiofsd_socket_path, dax_vmm_param, cache_size_vmm_param
|
||||
);
|
||||
|
||||
@ -2706,7 +2706,7 @@ mod tests {
|
||||
.args(&[
|
||||
"--fs",
|
||||
format!(
|
||||
"tag=myfs,sock={},num_queues=1,queue_size=1024,dax=on",
|
||||
"tag=myfs,socket={},num_queues=1,queue_size=1024,dax=on",
|
||||
virtiofsd_socket_path,
|
||||
)
|
||||
.as_str(),
|
||||
@ -3023,7 +3023,7 @@ mod tests {
|
||||
let mut workload_path = dirs::home_dir().unwrap();
|
||||
workload_path.push("workloads");
|
||||
|
||||
let sock = temp_vsock_path(&guest.tmp_dir);
|
||||
let socket = temp_vsock_path(&guest.tmp_dir);
|
||||
let api_socket = temp_api_path(&guest.tmp_dir);
|
||||
|
||||
let mut cmd = GuestCommand::new(&guest);
|
||||
@ -3035,7 +3035,7 @@ mod tests {
|
||||
cmd.default_net();
|
||||
|
||||
if !hotplug {
|
||||
cmd.args(&["--vsock", format!("cid=3,sock={}", sock).as_str()]);
|
||||
cmd.args(&["--vsock", format!("cid=3,socket={}", socket).as_str()]);
|
||||
}
|
||||
|
||||
let mut child = cmd.spawn().unwrap();
|
||||
@ -3048,19 +3048,19 @@ mod tests {
|
||||
remote_command(
|
||||
&api_socket,
|
||||
"add-vsock",
|
||||
Some(format!("cid=3,sock={},id=test0", sock).as_str())
|
||||
Some(format!("cid=3,socket={},id=test0", socket).as_str())
|
||||
)
|
||||
);
|
||||
thread::sleep(std::time::Duration::new(10, 0));
|
||||
// Check adding a second one fails
|
||||
aver!(
|
||||
tb,
|
||||
!remote_command(&api_socket, "add-vsock", Some("cid=1234,sock=/tmp/fail"))
|
||||
!remote_command(&api_socket, "add-vsock", Some("cid=1234,socket=/tmp/fail"))
|
||||
);
|
||||
}
|
||||
|
||||
// Validate vsock works as expected.
|
||||
guest.check_vsock(sock.as_str());
|
||||
guest.check_vsock(socket.as_str());
|
||||
|
||||
let reboot_count = guest
|
||||
.ssh_command("sudo journalctl | grep -c -- \"-- Reboot --\"")
|
||||
@ -3082,7 +3082,7 @@ mod tests {
|
||||
aver_eq!(tb, reboot_count, 1);
|
||||
|
||||
// Validate vsock still works after a reboot.
|
||||
guest.check_vsock(sock.as_str());
|
||||
guest.check_vsock(socket.as_str());
|
||||
|
||||
if hotplug {
|
||||
aver!(
|
||||
@ -4304,7 +4304,7 @@ mod tests {
|
||||
)
|
||||
};
|
||||
|
||||
let sock = temp_vsock_path(&guest.tmp_dir);
|
||||
let socket = temp_vsock_path(&guest.tmp_dir);
|
||||
|
||||
let mut child = GuestCommand::new(&guest)
|
||||
.args(&["--api-socket", &api_socket])
|
||||
@ -4321,7 +4321,7 @@ mod tests {
|
||||
cloudinit_params.as_str(),
|
||||
])
|
||||
.args(&["--net", net_params.as_str()])
|
||||
.args(&["--vsock", format!("cid=3,sock={}", sock).as_str()])
|
||||
.args(&["--vsock", format!("cid=3,socket={}", socket).as_str()])
|
||||
.args(&["--cmdline", CLEAR_KERNEL_CMDLINE])
|
||||
.capture_output()
|
||||
.spawn()
|
||||
@ -4354,7 +4354,7 @@ mod tests {
|
||||
.is_ok()
|
||||
);
|
||||
// Check vsock
|
||||
guest.check_vsock(sock.as_str());
|
||||
guest.check_vsock(socket.as_str());
|
||||
// Check if the console is usable
|
||||
let console_text = String::from("On a branch floating down river a cricket, singing.");
|
||||
let console_cmd = format!("echo {} | sudo tee /dev/hvc0", console_text);
|
||||
@ -4416,7 +4416,7 @@ mod tests {
|
||||
// Remove the vsock socket file.
|
||||
Command::new("rm")
|
||||
.arg("-f")
|
||||
.arg(sock.as_str())
|
||||
.arg(socket.as_str())
|
||||
.output()
|
||||
.unwrap();
|
||||
|
||||
@ -4455,7 +4455,7 @@ mod tests {
|
||||
.ssh_command("head -c 1000 /dev/hwrng > /dev/null")
|
||||
.is_ok()
|
||||
);
|
||||
guest.check_vsock(sock.as_str());
|
||||
guest.check_vsock(socket.as_str());
|
||||
aver!(tb, guest.ssh_command(&console_cmd).is_ok());
|
||||
|
||||
// Shutdown the target VM and check console output
|
||||
|
@ -50,7 +50,7 @@ pub struct Blk {
|
||||
impl Blk {
|
||||
/// Create a new vhost-user-blk device
|
||||
pub fn new(id: String, vu_cfg: VhostUserConfig) -> Result<Blk> {
|
||||
let mut vhost_user_blk = Master::connect(&vu_cfg.sock, vu_cfg.num_queues as u64)
|
||||
let mut vhost_user_blk = Master::connect(&vu_cfg.socket, vu_cfg.num_queues as u64)
|
||||
.map_err(Error::VhostUserCreateMaster)?;
|
||||
|
||||
// Filling device and vring features VMM supports.
|
||||
|
@ -56,7 +56,7 @@ impl Net {
|
||||
/// Create a new vhost-user-net device
|
||||
/// Create a new vhost-user-net device
|
||||
pub fn new(id: String, mac_addr: MacAddr, vu_cfg: VhostUserConfig) -> Result<Net> {
|
||||
let mut vhost_user_net = Master::connect(&vu_cfg.sock, vu_cfg.num_queues as u64)
|
||||
let mut vhost_user_net = Master::connect(&vu_cfg.socket, vu_cfg.num_queues as u64)
|
||||
.map_err(Error::VhostUserCreateMaster)?;
|
||||
|
||||
// Filling device and vring features VMM supports.
|
||||
|
@ -18,7 +18,7 @@ use vmm_sys_util::eventfd::EventFd;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct VhostUserConfig {
|
||||
pub sock: String,
|
||||
pub socket: String,
|
||||
pub num_queues: usize,
|
||||
pub queue_size: u16,
|
||||
}
|
||||
|
@ -506,12 +506,12 @@ components:
|
||||
FsConfig:
|
||||
required:
|
||||
- tag
|
||||
- sock
|
||||
- socket
|
||||
type: object
|
||||
properties:
|
||||
tag:
|
||||
type: string
|
||||
sock:
|
||||
socket:
|
||||
type: string
|
||||
num_queues:
|
||||
type: integer
|
||||
@ -581,7 +581,7 @@ components:
|
||||
VsockConfig:
|
||||
required:
|
||||
- cid
|
||||
- sock
|
||||
- socket
|
||||
type: object
|
||||
properties:
|
||||
cid:
|
||||
@ -589,7 +589,7 @@ components:
|
||||
format: int64
|
||||
minimum: 3
|
||||
description: Guest Vsock CID
|
||||
sock:
|
||||
socket:
|
||||
type: string
|
||||
description: Path to UNIX domain socket, used to proxy vsock connections.
|
||||
iommu:
|
||||
|
@ -123,7 +123,7 @@ impl fmt::Display for Error {
|
||||
ParseDevice(o) => write!(f, "Error parsing --device: {}", o),
|
||||
ParseDevicePathMissing => write!(f, "Error parsing --device: path missing"),
|
||||
ParseFileSystem(o) => write!(f, "Error parsing --fs: {}", o),
|
||||
ParseFsSockMissing => write!(f, "Error parsing --fs: sock missing"),
|
||||
ParseFsSockMissing => write!(f, "Error parsing --fs: socket missing"),
|
||||
ParseFsTagMissing => write!(f, "Error parsing --fs: tag missing"),
|
||||
InvalidCacheSizeWithDaxOff => {
|
||||
write!(f, "Error parsing --fs: cache_size used with dax=on")
|
||||
@ -132,7 +132,7 @@ impl fmt::Display for Error {
|
||||
ParsePmemFileMissing => write!(f, "Error parsing --pmem: file missing"),
|
||||
ParseVsock(o) => write!(f, "Error parsing --vsock: {}", o),
|
||||
ParseVsockCidMissing => write!(f, "Error parsing --vsock: cid missing"),
|
||||
ParseVsockSockMissing => write!(f, "Error parsing --vsock: sock missing"),
|
||||
ParseVsockSockMissing => write!(f, "Error parsing --vsock: socket missing"),
|
||||
ParseMemory(o) => write!(f, "Error parsing --memory: {}", o),
|
||||
ParseNetwork(o) => write!(f, "Error parsing --net: {}", o),
|
||||
ParseDisk(o) => write!(f, "Error parsing --disk: {}", o),
|
||||
@ -857,7 +857,7 @@ impl Default for RngConfig {
|
||||
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
|
||||
pub struct FsConfig {
|
||||
pub tag: String,
|
||||
pub sock: PathBuf,
|
||||
pub socket: PathBuf,
|
||||
#[serde(default = "default_fsconfig_num_queues")]
|
||||
pub num_queues: usize,
|
||||
#[serde(default = "default_fsconfig_queue_size")]
|
||||
@ -890,7 +890,7 @@ impl Default for FsConfig {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
tag: "".to_owned(),
|
||||
sock: PathBuf::new(),
|
||||
socket: PathBuf::new(),
|
||||
num_queues: default_fsconfig_num_queues(),
|
||||
queue_size: default_fsconfig_queue_size(),
|
||||
dax: default_fsconfig_dax(),
|
||||
@ -902,7 +902,7 @@ impl Default for FsConfig {
|
||||
|
||||
impl FsConfig {
|
||||
pub const SYNTAX: &'static str = "virtio-fs parameters \
|
||||
\"tag=<tag_name>,sock=<socket_path>,num_queues=<number_of_queues>,\
|
||||
\"tag=<tag_name>,socket=<socket_path>,num_queues=<number_of_queues>,\
|
||||
queue_size=<size_of_each_queue>,dax=on|off,cache_size=<DAX cache size: \
|
||||
default 8Gib>,id=<device_id>\"";
|
||||
|
||||
@ -914,12 +914,12 @@ impl FsConfig {
|
||||
.add("cache_size")
|
||||
.add("queue_size")
|
||||
.add("num_queues")
|
||||
.add("sock")
|
||||
.add("socket")
|
||||
.add("id");
|
||||
parser.parse(fs).map_err(Error::ParseFileSystem)?;
|
||||
|
||||
let tag = parser.get("tag").ok_or(Error::ParseFsTagMissing)?;
|
||||
let sock = PathBuf::from(parser.get("sock").ok_or(Error::ParseFsSockMissing)?);
|
||||
let socket = PathBuf::from(parser.get("socket").ok_or(Error::ParseFsSockMissing)?);
|
||||
|
||||
let queue_size = parser
|
||||
.convert("queue_size")
|
||||
@ -950,7 +950,7 @@ impl FsConfig {
|
||||
|
||||
Ok(FsConfig {
|
||||
tag,
|
||||
sock,
|
||||
socket,
|
||||
num_queues,
|
||||
queue_size,
|
||||
dax,
|
||||
@ -1141,7 +1141,7 @@ impl DeviceConfig {
|
||||
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize, Default)]
|
||||
pub struct VsockConfig {
|
||||
pub cid: u64,
|
||||
pub sock: PathBuf,
|
||||
pub socket: PathBuf,
|
||||
#[serde(default)]
|
||||
pub iommu: bool,
|
||||
#[serde(default)]
|
||||
@ -1150,14 +1150,14 @@ pub struct VsockConfig {
|
||||
|
||||
impl VsockConfig {
|
||||
pub const SYNTAX: &'static str = "Virtio VSOCK parameters \
|
||||
\"cid=<context_id>,sock=<socket_path>,iommu=on|off,id=<device_id>\"";
|
||||
\"cid=<context_id>,socket=<socket_path>,iommu=on|off,id=<device_id>\"";
|
||||
pub fn parse(vsock: &str) -> Result<Self> {
|
||||
let mut parser = OptionParser::new();
|
||||
parser.add("sock").add("cid").add("iommu").add("id");
|
||||
parser.add("socket").add("cid").add("iommu").add("id");
|
||||
parser.parse(vsock).map_err(Error::ParseVsock)?;
|
||||
|
||||
let sock = parser
|
||||
.get("sock")
|
||||
let socket = parser
|
||||
.get("socket")
|
||||
.map(PathBuf::from)
|
||||
.ok_or(Error::ParseVsockSockMissing)?;
|
||||
let iommu = parser
|
||||
@ -1173,7 +1173,7 @@ impl VsockConfig {
|
||||
|
||||
Ok(VsockConfig {
|
||||
cid,
|
||||
sock,
|
||||
socket,
|
||||
iommu,
|
||||
id,
|
||||
})
|
||||
@ -1663,12 +1663,14 @@ mod tests {
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
NetConfig::parse("mac=de:ad:be:ef:12:34,host_mac=12:34:de:ad:be:ef,vhost_user=true,socket=/tmp/socket")?,
|
||||
NetConfig::parse(
|
||||
"mac=de:ad:be:ef:12:34,host_mac=12:34:de:ad:be:ef,vhost_user=true,socket=/tmp/sock"
|
||||
)?,
|
||||
NetConfig {
|
||||
mac: MacAddr::parse_str("de:ad:be:ef:12:34").unwrap(),
|
||||
host_mac: MacAddr::parse_str("12:34:de:ad:be:ef").unwrap(),
|
||||
vhost_user: true,
|
||||
vhost_socket: Some("/tmp/socket".to_owned()),
|
||||
vhost_socket: Some("/tmp/sock".to_owned()),
|
||||
..Default::default()
|
||||
}
|
||||
);
|
||||
@ -1720,27 +1722,27 @@ mod tests {
|
||||
// "tag" and "socket" must be supplied
|
||||
assert!(FsConfig::parse("").is_err());
|
||||
assert!(FsConfig::parse("tag=mytag").is_err());
|
||||
assert!(FsConfig::parse("sock=/tmp/sock").is_err());
|
||||
assert!(FsConfig::parse("socket=/tmp/sock").is_err());
|
||||
assert_eq!(
|
||||
FsConfig::parse("tag=mytag,sock=/tmp/sock")?,
|
||||
FsConfig::parse("tag=mytag,socket=/tmp/sock")?,
|
||||
FsConfig {
|
||||
sock: PathBuf::from("/tmp/sock"),
|
||||
socket: PathBuf::from("/tmp/sock"),
|
||||
tag: "mytag".to_owned(),
|
||||
..Default::default()
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
FsConfig::parse("tag=mytag,sock=/tmp/sock")?,
|
||||
FsConfig::parse("tag=mytag,socket=/tmp/sock")?,
|
||||
FsConfig {
|
||||
sock: PathBuf::from("/tmp/sock"),
|
||||
socket: PathBuf::from("/tmp/sock"),
|
||||
tag: "mytag".to_owned(),
|
||||
..Default::default()
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
FsConfig::parse("tag=mytag,sock=/tmp/sock,num_queues=4,queue_size=1024")?,
|
||||
FsConfig::parse("tag=mytag,socket=/tmp/sock,num_queues=4,queue_size=1024")?,
|
||||
FsConfig {
|
||||
sock: PathBuf::from("/tmp/sock"),
|
||||
socket: PathBuf::from("/tmp/sock"),
|
||||
tag: "mytag".to_owned(),
|
||||
num_queues: 4,
|
||||
queue_size: 1024,
|
||||
@ -1749,9 +1751,9 @@ mod tests {
|
||||
);
|
||||
// DAX on -> default cache size
|
||||
assert_eq!(
|
||||
FsConfig::parse("tag=mytag,sock=/tmp/sock,dax=on")?,
|
||||
FsConfig::parse("tag=mytag,socket=/tmp/sock,dax=on")?,
|
||||
FsConfig {
|
||||
sock: PathBuf::from("/tmp/sock"),
|
||||
socket: PathBuf::from("/tmp/sock"),
|
||||
tag: "mytag".to_owned(),
|
||||
dax: true,
|
||||
cache_size: default_fsconfig_cache_size(),
|
||||
@ -1759,9 +1761,9 @@ mod tests {
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
FsConfig::parse("tag=mytag,sock=/tmp/sock,dax=on,cache_size=4G")?,
|
||||
FsConfig::parse("tag=mytag,socket=/tmp/sock,dax=on,cache_size=4G")?,
|
||||
FsConfig {
|
||||
sock: PathBuf::from("/tmp/sock"),
|
||||
socket: PathBuf::from("/tmp/sock"),
|
||||
tag: "mytag".to_owned(),
|
||||
dax: true,
|
||||
cache_size: 4 << 30,
|
||||
@ -1769,7 +1771,7 @@ mod tests {
|
||||
}
|
||||
);
|
||||
// Cache size without DAX is an error
|
||||
assert!(FsConfig::parse("tag=mytag,sock=/tmp/sock,dax=off,cache_size=4G").is_err());
|
||||
assert!(FsConfig::parse("tag=mytag,socket=/tmp/sock,dax=off,cache_size=4G").is_err());
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@ -1901,22 +1903,22 @@ mod tests {
|
||||
|
||||
#[test]
|
||||
fn test_vsock_parsing() -> Result<()> {
|
||||
// sock and cid is required
|
||||
// socket and cid is required
|
||||
assert!(VsockConfig::parse("").is_err());
|
||||
assert_eq!(
|
||||
VsockConfig::parse("sock=/tmp/sock,cid=1")?,
|
||||
VsockConfig::parse("socket=/tmp/sock,cid=1")?,
|
||||
VsockConfig {
|
||||
cid: 1,
|
||||
sock: PathBuf::from("/tmp/sock"),
|
||||
socket: PathBuf::from("/tmp/sock"),
|
||||
iommu: false,
|
||||
id: None,
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
VsockConfig::parse("sock=/tmp/sock,cid=1,iommu=on")?,
|
||||
VsockConfig::parse("socket=/tmp/sock,cid=1,iommu=on")?,
|
||||
VsockConfig {
|
||||
cid: 1,
|
||||
sock: PathBuf::from("/tmp/sock"),
|
||||
socket: PathBuf::from("/tmp/sock"),
|
||||
iommu: true,
|
||||
id: None,
|
||||
}
|
||||
@ -1993,7 +1995,7 @@ mod tests {
|
||||
|
||||
let mut invalid_config = valid_config.clone();
|
||||
invalid_config.disks = Some(vec![DiskConfig {
|
||||
vhost_socket: Some("/path/to/socket".to_owned()),
|
||||
vhost_socket: Some("/path/to/sock".to_owned()),
|
||||
path: Some(PathBuf::from("/path/to/image")),
|
||||
..Default::default()
|
||||
}]);
|
||||
|
@ -135,7 +135,7 @@ pub enum DeviceManagerError {
|
||||
/// Cannot create virtio-fs device
|
||||
CreateVirtioFs(vm_virtio::vhost_user::Error),
|
||||
|
||||
/// Virtio-fs device was created without a sock.
|
||||
/// Virtio-fs device was created without a socket.
|
||||
NoVirtioFsSock,
|
||||
|
||||
/// Cannot create vhost-user-blk device
|
||||
@ -1331,7 +1331,7 @@ impl DeviceManager {
|
||||
/// Launch block backend
|
||||
fn start_block_backend(&mut self, disk_cfg: &DiskConfig) -> DeviceManagerResult<String> {
|
||||
let _socket_file = NamedTempFile::new().map_err(DeviceManagerError::CreateSocketFile)?;
|
||||
let sock = _socket_file.path().to_str().unwrap().to_owned();
|
||||
let socket = _socket_file.path().to_str().unwrap().to_owned();
|
||||
|
||||
let child = std::process::Command::new(&self.vmm_path)
|
||||
.args(&[
|
||||
@ -1344,7 +1344,7 @@ impl DeviceManager {
|
||||
.ok_or(DeviceManagerError::NoDiskPath)?
|
||||
.to_str()
|
||||
.unwrap(),
|
||||
&sock,
|
||||
&socket,
|
||||
disk_cfg.num_queues,
|
||||
disk_cfg.queue_size
|
||||
),
|
||||
@ -1358,7 +1358,7 @@ impl DeviceManager {
|
||||
_socket_file,
|
||||
});
|
||||
|
||||
Ok(sock)
|
||||
Ok(socket)
|
||||
}
|
||||
|
||||
fn make_virtio_block_device(
|
||||
@ -1374,13 +1374,13 @@ impl DeviceManager {
|
||||
};
|
||||
|
||||
if disk_cfg.vhost_user {
|
||||
let sock = if let Some(sock) = disk_cfg.vhost_socket.clone() {
|
||||
sock
|
||||
let socket = if let Some(socket) = disk_cfg.vhost_socket.clone() {
|
||||
socket
|
||||
} else {
|
||||
self.start_block_backend(disk_cfg)?
|
||||
};
|
||||
let vu_cfg = VhostUserConfig {
|
||||
sock,
|
||||
socket,
|
||||
num_queues: disk_cfg.num_queues,
|
||||
queue_size: disk_cfg.queue_size,
|
||||
};
|
||||
@ -1506,7 +1506,7 @@ impl DeviceManager {
|
||||
/// Launch network backend
|
||||
fn start_net_backend(&mut self, net_cfg: &NetConfig) -> DeviceManagerResult<String> {
|
||||
let _socket_file = NamedTempFile::new().map_err(DeviceManagerError::CreateSocketFile)?;
|
||||
let sock = _socket_file.path().to_str().unwrap().to_owned();
|
||||
let socket = _socket_file.path().to_str().unwrap().to_owned();
|
||||
|
||||
let child = std::process::Command::new(&self.vmm_path)
|
||||
.args(&[
|
||||
@ -1515,7 +1515,7 @@ impl DeviceManager {
|
||||
"ip={},mask={},socket={},num_queues={},queue_size={},host_mac={}",
|
||||
net_cfg.ip,
|
||||
net_cfg.mask,
|
||||
&sock,
|
||||
&socket,
|
||||
net_cfg.num_queues,
|
||||
net_cfg.queue_size,
|
||||
net_cfg.host_mac
|
||||
@ -1530,7 +1530,7 @@ impl DeviceManager {
|
||||
_socket_file,
|
||||
});
|
||||
|
||||
Ok(sock)
|
||||
Ok(socket)
|
||||
}
|
||||
|
||||
fn make_virtio_net_device(
|
||||
@ -1546,13 +1546,13 @@ impl DeviceManager {
|
||||
};
|
||||
|
||||
if net_cfg.vhost_user {
|
||||
let sock = if let Some(sock) = net_cfg.vhost_socket.clone() {
|
||||
sock
|
||||
let socket = if let Some(socket) = net_cfg.vhost_socket.clone() {
|
||||
socket
|
||||
} else {
|
||||
self.start_net_backend(net_cfg)?
|
||||
};
|
||||
let vu_cfg = VhostUserConfig {
|
||||
sock,
|
||||
socket,
|
||||
num_queues: net_cfg.num_queues,
|
||||
queue_size: net_cfg.queue_size,
|
||||
};
|
||||
@ -1715,7 +1715,7 @@ impl DeviceManager {
|
||||
None
|
||||
};
|
||||
|
||||
if let Some(fs_sock) = fs_cfg.sock.to_str() {
|
||||
if let Some(fs_socket) = fs_cfg.socket.to_str() {
|
||||
let cache = if fs_cfg.dax {
|
||||
let (cache_base, cache_size) = if let Some((base, size)) = cache_range {
|
||||
// The memory needs to be 2MiB aligned in order to support
|
||||
@ -1792,7 +1792,7 @@ impl DeviceManager {
|
||||
let virtio_fs_device = Arc::new(Mutex::new(
|
||||
vm_virtio::vhost_user::Fs::new(
|
||||
id.clone(),
|
||||
fs_sock,
|
||||
fs_socket,
|
||||
&fs_cfg.tag,
|
||||
fs_cfg.num_queues,
|
||||
fs_cfg.queue_size,
|
||||
@ -2028,7 +2028,7 @@ impl DeviceManager {
|
||||
};
|
||||
|
||||
let socket_path = vsock_cfg
|
||||
.sock
|
||||
.socket
|
||||
.to_str()
|
||||
.ok_or(DeviceManagerError::CreateVsockConvertPath)?;
|
||||
let backend =
|
||||
@ -2039,7 +2039,7 @@ impl DeviceManager {
|
||||
vm_virtio::Vsock::new(
|
||||
id.clone(),
|
||||
vsock_cfg.cid,
|
||||
vsock_cfg.sock.clone(),
|
||||
vsock_cfg.socket.clone(),
|
||||
backend,
|
||||
vsock_cfg.iommu,
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user