mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-11-04 19:11:11 +00:00
vmm, config, vhost_user_blk: remove "wce" parameter
This config option provided very little value and instead we now enable this feature (which then lets the guest control the cache mode) unconditionally. Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
9101bdd7a9
commit
af8292b623
@ -76,7 +76,7 @@ VMs run in client mode. They connect to the socket created by the `dpdkvhostuser
|
||||
--memory size=1024M,file=/dev/hugepages \
|
||||
--kernel linux/arch/x86/boot/compressed/vmlinux.bin \
|
||||
--cmdline "console=ttyS0 reboot=k panic=1 nomodules i8042.noaux i8042.nomux i8042.nopnp i8042.dumbkbd root=/dev/vda3 iommu=off" \
|
||||
--disk "path=images/clear-kvm.img" "num_queues=4,queue_size=128,vhost_user=true,socket=/var/tmp/vhost.1,wce=true" \
|
||||
--disk "path=images/clear-kvm.img" "num_queues=4,queue_size=128,vhost_user=true,socket=/var/tmp/vhost.1" \
|
||||
--console off \
|
||||
--serial tty \
|
||||
--rng
|
||||
|
@ -763,14 +763,14 @@ mod unit_tests {
|
||||
"--memory",
|
||||
"shared=true",
|
||||
"--disk",
|
||||
"vhost_user=true,socket=/tmp/socket1,wce=true",
|
||||
"vhost_user=true,socket=/tmp/socket1",
|
||||
"path=/path/to/disk/2",
|
||||
],
|
||||
r#"{
|
||||
"kernel": {"path": "/path/to/kernel"},
|
||||
"memory" : { "shared": true, "size": 536870912 },
|
||||
"disks": [
|
||||
{"vhost_user":true, "vhost_socket":"/tmp/socket1", "wce":true},
|
||||
{"vhost_user":true, "vhost_socket":"/tmp/socket1"},
|
||||
{"path": "/path/to/disk/2"}
|
||||
]
|
||||
}"#,
|
||||
|
@ -1539,7 +1539,7 @@ mod tests {
|
||||
|
||||
(
|
||||
format!(
|
||||
"vhost_user=true,path={},num_queues={},queue_size=128,wce=true",
|
||||
"vhost_user=true,path={},num_queues={},queue_size=128",
|
||||
blk_file_path, num_queues,
|
||||
),
|
||||
None,
|
||||
@ -1552,7 +1552,7 @@ mod tests {
|
||||
|
||||
(
|
||||
format!(
|
||||
"vhost_user=true,socket={},num_queues={},queue_size=128,wce=true",
|
||||
"vhost_user=true,socket={},num_queues={},queue_size=128",
|
||||
vubd_socket_path, num_queues,
|
||||
),
|
||||
Some(daemon_child),
|
||||
@ -1736,7 +1736,7 @@ mod tests {
|
||||
let (blk_boot_params, daemon_child) = if self_spawned {
|
||||
(
|
||||
format!(
|
||||
"vhost_user=true,path={},num_queues={},queue_size=128,wce=true",
|
||||
"vhost_user=true,path={},num_queues={},queue_size=128",
|
||||
disk_path, num_queues,
|
||||
),
|
||||
None,
|
||||
@ -1754,7 +1754,7 @@ mod tests {
|
||||
|
||||
(
|
||||
format!(
|
||||
"vhost_user=true,socket={},num_queues={},queue_size=128,wce=true",
|
||||
"vhost_user=true,socket={},num_queues={},queue_size=128",
|
||||
vubd_socket_path, num_queues,
|
||||
),
|
||||
Some(daemon_child),
|
||||
|
@ -50,7 +50,7 @@ pub struct Blk {
|
||||
|
||||
impl Blk {
|
||||
/// Create a new vhost-user-blk device
|
||||
pub fn new(id: String, wce: bool, vu_cfg: VhostUserConfig) -> Result<Blk> {
|
||||
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)
|
||||
.map_err(Error::VhostUserCreateMaster)?;
|
||||
|
||||
@ -61,13 +61,10 @@ impl Blk {
|
||||
| 1 << VIRTIO_BLK_F_FLUSH
|
||||
| 1 << VIRTIO_BLK_F_TOPOLOGY
|
||||
| 1 << VIRTIO_RING_F_EVENT_IDX
|
||||
| 1 << VIRTIO_BLK_F_CONFIG_WCE
|
||||
| 1 << VIRTIO_F_VERSION_1
|
||||
| VhostUserVirtioFeatures::PROTOCOL_FEATURES.bits();
|
||||
|
||||
if wce {
|
||||
avail_features |= 1 << VIRTIO_BLK_F_CONFIG_WCE;
|
||||
}
|
||||
|
||||
if vu_cfg.num_queues > 1 {
|
||||
avail_features |= 1 << VIRTIO_BLK_F_MQ;
|
||||
}
|
||||
|
@ -454,9 +454,6 @@ components:
|
||||
default: false
|
||||
vhost_socket:
|
||||
type: string
|
||||
wce:
|
||||
type: boolean
|
||||
default: true
|
||||
poll_queue:
|
||||
type: boolean
|
||||
default: true
|
||||
|
@ -561,8 +561,6 @@ pub struct DiskConfig {
|
||||
#[serde(default)]
|
||||
pub vhost_user: bool,
|
||||
pub vhost_socket: Option<String>,
|
||||
#[serde(default = "default_diskconfig_wce")]
|
||||
pub wce: bool,
|
||||
#[serde(default = "default_diskconfig_poll_queue")]
|
||||
pub poll_queue: bool,
|
||||
#[serde(default)]
|
||||
@ -577,10 +575,6 @@ fn default_diskconfig_queue_size() -> u16 {
|
||||
DEFAULT_QUEUE_SIZE_VUBLK
|
||||
}
|
||||
|
||||
fn default_diskconfig_wce() -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn default_diskconfig_poll_queue() -> bool {
|
||||
true
|
||||
}
|
||||
@ -596,7 +590,6 @@ impl Default for DiskConfig {
|
||||
queue_size: default_diskconfig_queue_size(),
|
||||
vhost_user: false,
|
||||
vhost_socket: None,
|
||||
wce: default_diskconfig_wce(),
|
||||
poll_queue: default_diskconfig_poll_queue(),
|
||||
id: None,
|
||||
}
|
||||
@ -607,7 +600,7 @@ impl DiskConfig {
|
||||
pub const SYNTAX: &'static str = "Disk parameters \
|
||||
\"path=<disk_image_path>,readonly=on|off,iommu=on|off,num_queues=<number_of_queues>,\
|
||||
queue_size=<size_of_each_queue>,vhost_user=<vhost_user_enable>,\
|
||||
socket=<vhost_user_socket_path>,wce=<true|false, default true>,id=<device_id>\"";
|
||||
socket=<vhost_user_socket_path>, default true>,id=<device_id>\"";
|
||||
|
||||
pub fn parse(disk: &str) -> Result<Self> {
|
||||
let mut parser = OptionParser::new();
|
||||
@ -620,7 +613,6 @@ impl DiskConfig {
|
||||
.add("num_queues")
|
||||
.add("vhost_user")
|
||||
.add("socket")
|
||||
.add("wce")
|
||||
.add("poll_queue")
|
||||
.add("id");
|
||||
parser.parse(disk).map_err(Error::ParseDisk)?;
|
||||
@ -655,11 +647,6 @@ impl DiskConfig {
|
||||
.unwrap_or(Toggle(false))
|
||||
.0;
|
||||
let vhost_socket = parser.get("socket");
|
||||
let wce = parser
|
||||
.convert::<Toggle>("wce")
|
||||
.map_err(Error::ParseDisk)?
|
||||
.unwrap_or_else(|| Toggle(default_diskconfig_wce()))
|
||||
.0;
|
||||
let poll_queue = parser
|
||||
.convert::<Toggle>("poll_queue")
|
||||
.map_err(Error::ParseDisk)?
|
||||
@ -667,10 +654,6 @@ impl DiskConfig {
|
||||
.0;
|
||||
let id = parser.get("id");
|
||||
|
||||
if parser.is_set("wce") && !vhost_user {
|
||||
warn!("wce parameter currently only has effect when used vhost_user=true");
|
||||
}
|
||||
|
||||
if parser.is_set("poll_queue") && !vhost_user {
|
||||
warn!("poll_queue parameter currently only has effect when used vhost_user=true");
|
||||
}
|
||||
@ -684,7 +667,6 @@ impl DiskConfig {
|
||||
queue_size,
|
||||
vhost_socket,
|
||||
vhost_user,
|
||||
wce,
|
||||
poll_queue,
|
||||
id,
|
||||
})
|
||||
@ -1611,18 +1593,16 @@ mod tests {
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
DiskConfig::parse("path=/path/to_file,wce=true")?,
|
||||
DiskConfig::parse("path=/path/to_file")?,
|
||||
DiskConfig {
|
||||
path: Some(PathBuf::from("/path/to_file")),
|
||||
wce: true,
|
||||
..Default::default()
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
DiskConfig::parse("path=/path/to_file,wce=false")?,
|
||||
DiskConfig::parse("path=/path/to_file")?,
|
||||
DiskConfig {
|
||||
path: Some(PathBuf::from("/path/to_file")),
|
||||
wce: false,
|
||||
..Default::default()
|
||||
}
|
||||
);
|
||||
|
@ -1336,7 +1336,7 @@ impl DeviceManager {
|
||||
queue_size: disk_cfg.queue_size,
|
||||
};
|
||||
let vhost_user_block_device = Arc::new(Mutex::new(
|
||||
vm_virtio::vhost_user::Blk::new(id.clone(), disk_cfg.wce, vu_cfg)
|
||||
vm_virtio::vhost_user::Blk::new(id.clone(), vu_cfg)
|
||||
.map_err(DeviceManagerError::CreateVhostUserBlk)?,
|
||||
));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user