base: add hugepages argument
hugepages (--hugepages) argument will be passed down to arch layer so that
it can configure GuestMemory to support Transparent Huge Pages.
BUG=b:174206107
TEST=arc.Boot.vm on hatch-arc-r
Signed-off-by: Sergey Senozhatsky <senozhatsky@chromium.org>
Change-Id: I1590238f7be3f12c9aa22b4c9061a56bfc381332
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2812544
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
diff --git a/arch/src/lib.rs b/arch/src/lib.rs
index 3c67757..5070e72 100644
--- a/arch/src/lib.rs
+++ b/arch/src/lib.rs
@@ -79,6 +79,7 @@
pub vcpu_count: usize,
pub vcpu_affinity: Option<VcpuAffinity>,
pub no_smt: bool,
+ pub hugepages: bool,
pub vm_image: VmImage,
pub android_fstab: Option<File>,
pub pstore: Option<Pstore>,
diff --git a/src/crosvm.rs b/src/crosvm.rs
index e691438..7a4318a 100644
--- a/src/crosvm.rs
+++ b/src/crosvm.rs
@@ -201,6 +201,7 @@
pub vcpu_affinity: Option<VcpuAffinity>,
pub no_smt: bool,
pub memory: Option<u64>,
+ pub hugepages: bool,
pub memory_file: Option<PathBuf>,
pub executable_path: Option<Executable>,
pub android_fstab: Option<PathBuf>,
@@ -276,6 +277,7 @@
vcpu_affinity: None,
no_smt: false,
memory: None,
+ hugepages: false,
memory_file: None,
executable_path: None,
android_fstab: None,
diff --git a/src/linux.rs b/src/linux.rs
index 43a496d..b78d4ea 100644
--- a/src/linux.rs
+++ b/src/linux.rs
@@ -2335,6 +2335,7 @@
vcpu_count: cfg.vcpu_count.unwrap_or(1),
vcpu_affinity: cfg.vcpu_affinity.clone(),
no_smt: cfg.no_smt,
+ hugepages: cfg.hugepages,
vm_image,
android_fstab: cfg
.android_fstab
diff --git a/src/main.rs b/src/main.rs
index e48cbaf..e86845a 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -866,6 +866,9 @@
})?,
)
}
+ "hugepages" => {
+ cfg.hugepages = true;
+ }
#[cfg(feature = "audio")]
"ac97" => {
let ac97_params = parse_ac97_options(value.unwrap())?;
@@ -1825,6 +1828,7 @@
"mem",
"N",
"Amount of guest memory in MiB. (default: 256)"),
+ Argument::flag("hugepages", "Advise the kernel to use Huge Pages for guest memory mappings."),
Argument::short_value('r',
"root",
"PATH[,key=value[,key=value[,...]]",