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:
Rob Bradford
2022-11-07 16:25:36 +00:00
parent b68add2d0d
commit f603afc46e
6 changed files with 32 additions and 4 deletions
+9 -1
View File
@@ -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")),