kvm: x86: Set KVM_MAX_VCPU_ID to 4*KVM_MAX_VCPUS
Instead of requiring KVM_MAX_VCPU_ID to be manually increased every time we increase KVM_MAX_VCPUS, set it to 4*KVM_MAX_VCPUS. This should be enough for CPU topologies where Cores-per-Package and Packages-per-Socket are not powers of 2. In practice, this increases KVM_MAX_VCPU_ID from 1023 to 1152. The only side effect of this change is making some fields in struct kvm_ioapic larger, increasing the struct size from 1628 to 1780 bytes (in x86_64). Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <20210903211600.2002377-2-ehabkost@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Родитель
81b4b56d4f
Коммит
4ddacd525a
|
@ -39,7 +39,19 @@
|
||||||
|
|
||||||
#define KVM_MAX_VCPUS 288
|
#define KVM_MAX_VCPUS 288
|
||||||
#define KVM_SOFT_MAX_VCPUS 240
|
#define KVM_SOFT_MAX_VCPUS 240
|
||||||
#define KVM_MAX_VCPU_ID 1023
|
|
||||||
|
/*
|
||||||
|
* In x86, the VCPU ID corresponds to the APIC ID, and APIC IDs
|
||||||
|
* might be larger than the actual number of VCPUs because the
|
||||||
|
* APIC ID encodes CPU topology information.
|
||||||
|
*
|
||||||
|
* In the worst case, we'll need less than one extra bit for the
|
||||||
|
* Core ID, and less than one extra bit for the Package (Die) ID,
|
||||||
|
* so ratio of 4 should be enough.
|
||||||
|
*/
|
||||||
|
#define KVM_VCPU_ID_RATIO 4
|
||||||
|
#define KVM_MAX_VCPU_ID (KVM_MAX_VCPUS * KVM_VCPU_ID_RATIO)
|
||||||
|
|
||||||
/* memory slots that are not exposed to userspace */
|
/* memory slots that are not exposed to userspace */
|
||||||
#define KVM_PRIVATE_MEM_SLOTS 3
|
#define KVM_PRIVATE_MEM_SLOTS 3
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче