mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
vmm: raise the (v)CPU limit on kvm/x86_64
Raise the max number of supported (v)CPUs on kvm x86_64 hosts to 8192 (the max allowed value of CONFIG_NR_CPUS in the Linux kernel). Other platfroms keep their existing CPU limits pending further development and testing. The change has been tested on Intel and AMD hosts. Signed-off-by: Barret Rhoden <brho@google.com> Signed-off-by: Neel Natu <neelnatu@google.com> Signed-off-by: Ofir Weisse <oweisse@google.com> Signed-off-by: Peter Oskolkov <posk@google.com>
This commit is contained in:
+8
-1
@@ -27,6 +27,8 @@ use anyhow::anyhow;
|
||||
#[cfg(feature = "dbus_api")]
|
||||
use api::dbus::{DBusApiOptions, DBusApiShutdownChannels};
|
||||
use api::http::HttpApiHandle;
|
||||
#[cfg(all(feature = "kvm", target_arch = "x86_64"))]
|
||||
use arch::x86_64::MAX_SUPPORTED_CPUS_LEGACY;
|
||||
use console_devices::{pre_create_console_devices, ConsoleInfo};
|
||||
use landlock::LandlockError;
|
||||
use libc::{tcsetattr, termios, EFD_NONBLOCK, SIGINT, SIGTERM, TCSANOW};
|
||||
@@ -888,6 +890,11 @@ impl Vmm {
|
||||
))
|
||||
})?;
|
||||
|
||||
#[cfg(all(feature = "kvm", target_arch = "x86_64"))]
|
||||
if config.lock().unwrap().max_apic_id() > MAX_SUPPORTED_CPUS_LEGACY {
|
||||
vm.enable_x2apic_api().unwrap();
|
||||
}
|
||||
|
||||
let phys_bits =
|
||||
vm::physical_bits(&self.hypervisor, config.lock().unwrap().cpus.max_phys_bits);
|
||||
|
||||
@@ -1822,7 +1829,7 @@ impl RequestHandler for Vmm {
|
||||
} else {
|
||||
let mut config = self.vm_config.as_ref().unwrap().lock().unwrap();
|
||||
if let Some(desired_vcpus) = desired_vcpus {
|
||||
config.cpus.boot_vcpus = desired_vcpus.try_into().unwrap();
|
||||
config.cpus.boot_vcpus = desired_vcpus;
|
||||
}
|
||||
if let Some(desired_ram) = desired_ram {
|
||||
config.memory.size = desired_ram;
|
||||
|
||||
Reference in New Issue
Block a user