target/i386: Allow elision of kvm_enable_x2apic()
Call kvm_enabled() before kvm_enable_x2apic() to let the compiler elide its call. Cleanup the code by simplifying "!xen_enabled() && kvm_enabled()" to just "kvm_enabled()". Suggested-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20230904124325.79040-8-philmd@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
3adce820cf
commit
9926cf34de
@ -4053,7 +4053,7 @@ static bool vtd_decide_config(IntelIOMMUState *s, Error **errp)
|
||||
error_setg(errp, "eim=on requires accel=kvm,kernel-irqchip=split");
|
||||
return false;
|
||||
}
|
||||
if (!kvm_enable_x2apic()) {
|
||||
if (kvm_enabled() && !kvm_enable_x2apic()) {
|
||||
error_setg(errp, "eim=on requires support on the KVM side"
|
||||
"(X2APIC_API, first shipped in v4.7)");
|
||||
return false;
|
||||
|
@ -129,13 +129,10 @@ void x86_cpus_init(X86MachineState *x86ms, int default_cpu_version)
|
||||
ms->smp.max_cpus - 1) + 1;
|
||||
|
||||
/*
|
||||
* Can we support APIC ID 255 or higher?
|
||||
*
|
||||
* Under Xen: yes.
|
||||
* With userspace emulated lapic: no
|
||||
* With KVM's in-kernel lapic: only if X2APIC API is enabled.
|
||||
* Can we support APIC ID 255 or higher? With KVM, that requires
|
||||
* both in-kernel lapic and X2APIC userspace API.
|
||||
*/
|
||||
if (x86ms->apic_id_limit > 255 && !xen_enabled() &&
|
||||
if (x86ms->apic_id_limit > 255 && kvm_enabled() &&
|
||||
(!kvm_irqchip_in_kernel() || !kvm_enable_x2apic())) {
|
||||
error_report("current -smp configuration requires kernel "
|
||||
"irqchip and X2APIC API support.");
|
||||
|
@ -12,13 +12,6 @@
|
||||
#include "qemu/osdep.h"
|
||||
#include "kvm_i386.h"
|
||||
|
||||
#ifndef __OPTIMIZE__
|
||||
bool kvm_enable_x2apic(void)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool kvm_hv_vpindex_settable(void)
|
||||
{
|
||||
return false;
|
||||
|
Loading…
Reference in New Issue
Block a user