Skip to content

Commit

Permalink
runtime-rs: ch: Implement minimal memory hotplug APIs
Browse files Browse the repository at this point in the history
Replace the `todo!()` calls with a minimal NOP implementation to return
the CH driver to working order since the `todo!()`'s forcibly crash the
driver at runtime. Full implementations for these APIs will be added on
issues kata-containers#8800, kata-containers#8801, and kata-containers#8802.

Fixes: kata-containers#8784.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
  • Loading branch information
jodh-intel authored and c3d committed Feb 23, 2024
1 parent c237d8c commit c0f6f99
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 6 deletions.
4 changes: 4 additions & 0 deletions src/runtime-rs/crates/hypervisor/src/ch/inner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ pub struct CloudHypervisorInner {
// If the version of CH does not provide these details, the value will be
// None.
pub(crate) ch_features: Option<Vec<String>>,

/// Size of memory block of guest OS in MB (currently unused)
pub(crate) _guest_memory_block_size_mb: u32,
}

const CH_DEFAULT_TIMEOUT_SECS: u32 = 10;
Expand Down Expand Up @@ -112,6 +115,7 @@ impl CloudHypervisorInner {
tasks: None,
guest_protection_to_use: GuestProtection::NoProtection,
ch_features: None,
_guest_memory_block_size_mb: 0,
}
}

Expand Down
16 changes: 10 additions & 6 deletions src/runtime-rs/crates/hypervisor/src/ch/inner_hypervisor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -744,20 +744,24 @@ impl CloudHypervisorInner {
Err(anyhow!("CH hypervisor metrics not implemented - see https://github.com/kata-containers/kata-containers/issues/8800"))
}

pub(crate) fn set_capabilities(&mut self, _flag: CapabilityBits) {
todo!()
pub(crate) fn set_capabilities(&mut self, flag: CapabilityBits) {
let mut caps = Capabilities::default();

caps.set(flag)
}

pub(crate) fn set_guest_memory_block_size(&mut self, _size: u32) {
todo!()
pub(crate) fn set_guest_memory_block_size(&mut self, size: u32) {
self._guest_memory_block_size_mb = size;
}

pub(crate) fn guest_memory_block_size_mb(&self) -> u32 {
todo!()
self._guest_memory_block_size_mb
}

pub(crate) fn resize_memory(&self, _new_mem_mb: u32) -> Result<(u32, MemoryConfig)> {
todo!()
warn!(sl!(), "CH memory resize not implemented - see https://github.com/kata-containers/kata-containers/issues/8801");

Ok((0, MemoryConfig::default()))
}
}

Expand Down

0 comments on commit c0f6f99

Please sign in to comment.