mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
vmm: Make Transparent Huge Pages controllable (default on)
Add MemoryConfig::thp and `--memory thp=on|off` to allow control of Transparent Huge Pages. Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
+9
-1
@@ -658,7 +658,8 @@ impl MemoryConfig {
|
||||
.add("shared")
|
||||
.add("hugepages")
|
||||
.add("hugepage_size")
|
||||
.add("prefault");
|
||||
.add("prefault")
|
||||
.add("thp");
|
||||
parser.parse(memory).map_err(Error::ParseMemory)?;
|
||||
|
||||
let size = parser
|
||||
@@ -702,6 +703,11 @@ impl MemoryConfig {
|
||||
.map_err(Error::ParseMemory)?
|
||||
.unwrap_or(Toggle(false))
|
||||
.0;
|
||||
let thp = parser
|
||||
.convert::<Toggle>("thp")
|
||||
.map_err(Error::ParseMemory)?
|
||||
.unwrap_or(Toggle(true))
|
||||
.0;
|
||||
|
||||
let zones: Option<Vec<MemoryZoneConfig>> = if let Some(memory_zones) = &memory_zones {
|
||||
let mut zones = Vec::new();
|
||||
@@ -788,6 +794,7 @@ impl MemoryConfig {
|
||||
hugepage_size,
|
||||
prefault,
|
||||
zones,
|
||||
thp,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -2727,6 +2734,7 @@ mod tests {
|
||||
hugepage_size: None,
|
||||
prefault: false,
|
||||
zones: None,
|
||||
thp: true,
|
||||
},
|
||||
payload: Some(PayloadConfig {
|
||||
kernel: Some(PathBuf::from("/path/to/kernel")),
|
||||
|
||||
Reference in New Issue
Block a user