mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2025-02-08 12:41:35 +00:00
tests: Remove testing of virtio-fs DAX cache
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
56c11600db
commit
62120f9afe
@ -1037,50 +1037,6 @@ impl Guest {
|
|||||||
Ok(false)
|
Ok(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn valid_virtio_fs_cache_size(
|
|
||||||
&self,
|
|
||||||
dax: bool,
|
|
||||||
cache_size: Option<u64>,
|
|
||||||
) -> Result<bool, Error> {
|
|
||||||
// SHM region is called different things depending on kernel
|
|
||||||
let shm_region = self
|
|
||||||
.ssh_command("sudo grep 'virtio[0-9]\\|virtio-pci-shm' /proc/iomem || true")?
|
|
||||||
.trim()
|
|
||||||
.to_string();
|
|
||||||
|
|
||||||
if shm_region.is_empty() {
|
|
||||||
return Ok(!dax);
|
|
||||||
}
|
|
||||||
|
|
||||||
// From this point, the region is not empty, hence it is an error
|
|
||||||
// if DAX is off.
|
|
||||||
if !dax {
|
|
||||||
return Ok(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
let cache = if let Some(cache) = cache_size {
|
|
||||||
cache
|
|
||||||
} else {
|
|
||||||
// 8Gib by default
|
|
||||||
0x0002_0000_0000
|
|
||||||
};
|
|
||||||
|
|
||||||
let args: Vec<&str> = shm_region.split(':').collect();
|
|
||||||
if args.is_empty() {
|
|
||||||
return Ok(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
let args: Vec<&str> = args[0].trim().split('-').collect();
|
|
||||||
if args.len() != 2 {
|
|
||||||
return Ok(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
let start_addr = u64::from_str_radix(args[0], 16).map_err(Error::Parsing)?;
|
|
||||||
let end_addr = u64::from_str_radix(args[1], 16).map_err(Error::Parsing)?;
|
|
||||||
|
|
||||||
Ok(cache == (end_addr - start_addr + 1))
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn check_vsock(&self, socket: &str) {
|
pub fn check_vsock(&self, socket: &str) {
|
||||||
// Listen from guest on vsock CID=3 PORT=16
|
// Listen from guest on vsock CID=3 PORT=16
|
||||||
// SOCKET-LISTEN:<domain>:<protocol>:<local-address>
|
// SOCKET-LISTEN:<domain>:<protocol>:<local-address>
|
||||||
|
@ -1123,8 +1123,6 @@ fn test_boot_from_vhost_user_blk(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn _test_virtio_fs(
|
fn _test_virtio_fs(
|
||||||
dax: bool,
|
|
||||||
cache_size: Option<u64>,
|
|
||||||
prepare_daemon: &dyn Fn(&TempDir, &str) -> (std::process::Child, String),
|
prepare_daemon: &dyn Fn(&TempDir, &str) -> (std::process::Child, String),
|
||||||
hotplug: bool,
|
hotplug: bool,
|
||||||
pci_segment: Option<u16>,
|
pci_segment: Option<u16>,
|
||||||
@ -1156,13 +1154,6 @@ fn _test_virtio_fs(
|
|||||||
direct_kernel_boot_path()
|
direct_kernel_boot_path()
|
||||||
};
|
};
|
||||||
|
|
||||||
let (dax_vmm_param, dax_mount_param) = if dax { ("on", "-o dax") } else { ("off", "") };
|
|
||||||
let cache_size_vmm_param = if let Some(cache) = cache_size {
|
|
||||||
format!(",cache_size={}", cache)
|
|
||||||
} else {
|
|
||||||
"".to_string()
|
|
||||||
};
|
|
||||||
|
|
||||||
let (mut daemon_child, virtiofsd_socket_path) =
|
let (mut daemon_child, virtiofsd_socket_path) =
|
||||||
prepare_daemon(&guest.tmp_dir, shared_dir.to_str().unwrap());
|
prepare_daemon(&guest.tmp_dir, shared_dir.to_str().unwrap());
|
||||||
|
|
||||||
@ -1180,10 +1171,8 @@ fn _test_virtio_fs(
|
|||||||
}
|
}
|
||||||
|
|
||||||
let fs_params = format!(
|
let fs_params = format!(
|
||||||
"id=myfs0,tag=myfs,socket={},num_queues=1,queue_size=1024,dax={}{}{}",
|
"id=myfs0,tag=myfs,socket={},num_queues=1,queue_size=1024{}",
|
||||||
virtiofsd_socket_path,
|
virtiofsd_socket_path,
|
||||||
dax_vmm_param,
|
|
||||||
cache_size_vmm_param,
|
|
||||||
if let Some(pci_segment) = pci_segment {
|
if let Some(pci_segment) = pci_segment {
|
||||||
format!(",pci_segment={}", pci_segment)
|
format!(",pci_segment={}", pci_segment)
|
||||||
} else {
|
} else {
|
||||||
@ -1220,16 +1209,9 @@ fn _test_virtio_fs(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Mount shared directory through virtio_fs filesystem
|
// Mount shared directory through virtio_fs filesystem
|
||||||
let mount_cmd = format!(
|
guest
|
||||||
"mkdir -p mount_dir && \
|
.ssh_command("mkdir -p mount_dir && sudo mount -t virtiofs myfs mount_dir/")
|
||||||
sudo mount -t virtiofs {} myfs mount_dir/",
|
.unwrap();
|
||||||
dax_mount_param
|
|
||||||
);
|
|
||||||
guest.ssh_command(&mount_cmd).unwrap();
|
|
||||||
|
|
||||||
assert!(guest
|
|
||||||
.valid_virtio_fs_cache_size(dax, cache_size)
|
|
||||||
.unwrap_or_default());
|
|
||||||
|
|
||||||
// Check file1 exists and its content is "foo"
|
// Check file1 exists and its content is "foo"
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
@ -1282,10 +1264,8 @@ fn _test_virtio_fs(
|
|||||||
let r = std::panic::catch_unwind(|| {
|
let r = std::panic::catch_unwind(|| {
|
||||||
thread::sleep(std::time::Duration::new(10, 0));
|
thread::sleep(std::time::Duration::new(10, 0));
|
||||||
let fs_params = format!(
|
let fs_params = format!(
|
||||||
"id=myfs0,tag=myfs,socket={},num_queues=1,queue_size=1024,dax={}{}{}",
|
"id=myfs0,tag=myfs,socket={},num_queues=1,queue_size=1024{}",
|
||||||
virtiofsd_socket_path,
|
virtiofsd_socket_path,
|
||||||
dax_vmm_param,
|
|
||||||
cache_size_vmm_param,
|
|
||||||
if let Some(pci_segment) = pci_segment {
|
if let Some(pci_segment) = pci_segment {
|
||||||
format!(",pci_segment={}", pci_segment)
|
format!(",pci_segment={}", pci_segment)
|
||||||
} else {
|
} else {
|
||||||
@ -1309,12 +1289,10 @@ fn _test_virtio_fs(
|
|||||||
|
|
||||||
thread::sleep(std::time::Duration::new(10, 0));
|
thread::sleep(std::time::Duration::new(10, 0));
|
||||||
// Mount shared directory through virtio_fs filesystem
|
// Mount shared directory through virtio_fs filesystem
|
||||||
let mount_cmd = format!(
|
guest
|
||||||
"mkdir -p mount_dir && \
|
.ssh_command("mkdir -p mount_dir && sudo mount -t virtiofs myfs mount_dir/")
|
||||||
sudo mount -t virtiofs {} myfs mount_dir/",
|
.unwrap();
|
||||||
dax_mount_param
|
|
||||||
);
|
|
||||||
guest.ssh_command(&mount_cmd).unwrap();
|
|
||||||
// Check file1 exists and its content is "foo"
|
// Check file1 exists and its content is "foo"
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
guest.ssh_command("cat mount_dir/file1").unwrap().trim(),
|
guest.ssh_command("cat mount_dir/file1").unwrap().trim(),
|
||||||
@ -3108,25 +3086,25 @@ mod parallel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_virtio_fs_dax_off() {
|
fn test_virtio_fs() {
|
||||||
_test_virtio_fs(false, None, &prepare_virtiofsd, false, None)
|
_test_virtio_fs(&prepare_virtiofsd, false, None)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_virtio_fs_hotplug_dax_off() {
|
fn test_virtio_fs_hotplug() {
|
||||||
_test_virtio_fs(false, None, &prepare_virtiofsd, true, None)
|
_test_virtio_fs(&prepare_virtiofsd, true, None)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[cfg(not(feature = "mshv"))]
|
#[cfg(not(feature = "mshv"))]
|
||||||
fn test_virtio_fs_multi_segment_hotplug() {
|
fn test_virtio_fs_multi_segment_hotplug() {
|
||||||
_test_virtio_fs(false, None, &prepare_virtiofsd, true, Some(15))
|
_test_virtio_fs(&prepare_virtiofsd, true, Some(15))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[cfg(not(feature = "mshv"))]
|
#[cfg(not(feature = "mshv"))]
|
||||||
fn test_virtio_fs_multi_segment() {
|
fn test_virtio_fs_multi_segment() {
|
||||||
_test_virtio_fs(false, None, &prepare_virtiofsd, false, Some(15))
|
_test_virtio_fs(&prepare_virtiofsd, false, Some(15))
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user