[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/3] x86/virt: rename x2apic_available to x2apic_without_ir_available
- To: Shashank Balaji <shashank.mahadasyam@xxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, Borislav Petkov <bp@xxxxxxxxx>, Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>, <x86@xxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx>, Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>, Wei Liu <wei.liu@xxxxxxxxxx>, "Dexuan Cui" <decui@xxxxxxxxxxxxx>, Long Li <longli@xxxxxxxxxxxxx>, Ajay Kaher <ajay.kaher@xxxxxxxxxxxx>, Alexey Makhalov <alexey.makhalov@xxxxxxxxxxxx>, Broadcom internal kernel review list <bcm-kernel-feedback-list@xxxxxxxxxxxx>, Jan Kiszka <jan.kiszka@xxxxxxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
- From: Sohil Mehta <sohil.mehta@xxxxxxxxx>
- Date: Thu, 5 Feb 2026 16:10:37 -0800
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7THXvKUHsGwmo5ufcvadI3GFDY6RoDMKHVj46gt+3OQ=; b=LfPLcPnjVaEl12fYPSp1G4dquK4IFsKABzPYUxs0tIb+ZrsWYWZLyKX3LPUtBZkQ8Va4TsGHQB1TvoCXh5cQxgUb4n3nFJUpKFWMxD71BsB2G15RYSZqt5LgOWEwOvg1Ho6lavXSIkBEsFMv5AFf9cgY2shObF7mNcM4VRFP/vtFN6VDTr26hlK7/3Bw15lCepV5YqaH1OlJDxJMrBN9OPcIYTRKy666RwtOudIJ71QZVMhnmb29wcg82UOZUZx2gAW1qlyoMkBh9R5B3NMHOy59QZfmwsdKN3v4NaeQhAOM/NuPpUd3lDc+7hHdLyYymc6sUNQmj2DKJPupweIYqw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ifX9ItfCr6EgDhWnX6lpgkZn/G43Gva/86q/mqqm93Uv8RM+4OemfPnNd+1vDpX9iHeaDM6J+tYXWu+NbquFaCbSC1Lh6NpdQOd2a4+gqWnAOnXiBFDY9/xqgoBNY47NSlDpqytbZuPYtPCFhJmbEm8fDgx92vEsYGbEX/g9GrA4Wj8cTfTS/QweNyAsMvn5Cy5ziYKXUe/aVkz65GpnWsQHPKzUn9SSKHoo00opcOj94mIjS90NRXw2TywsqjOUegXXWvAiU/MhLpOdgNB4x52KWg+RV8+kxmridE3TkEiCF8SrPL5xvuWdZuUN8Ybf+OJ0CcFCqa2D7ywjJ0WnwA==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com;
- Cc: <linux-kernel@xxxxxxxxxxxxxxx>, <linux-hyperv@xxxxxxxxxxxxxxx>, <virtualization@xxxxxxxxxxxxxxx>, <jailhouse-dev@xxxxxxxxxxxxxxxx>, <kvm@xxxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Rahul Bukte <rahul.bukte@xxxxxxxx>, Daniel Palmer <daniel.palmer@xxxxxxxx>, Tim Bird <tim.bird@xxxxxxxx>
- Delivery-date: Fri, 06 Feb 2026 00:11:08 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 2/2/2026 1:51 AM, Shashank Balaji wrote:
> No functional change.
>
> x86_init.hyper.x2apic_available is used only in try_to_enable_x2apic to check
> if
> x2apic needs to be disabled if interrupt remapping support isn't present. But
> the name x2apic_available doesn't reflect that usage.
>
I don't understand the premise of this patch. Shouldn't the variable
name reflect what is stored rather than how it is used?
> This is what x2apic_available is set to for various hypervisors:
>
> acrn boot_cpu_has(X86_FEATURE_X2APIC)
> mshyperv boot_cpu_has(X86_FEATURE_X2APIC)
> xen boot_cpu_has(X86_FEATURE_X2APIC) or false
> vmware vmware_legacy_x2apic_available
> kvm kvm_cpuid_base() != 0
> jailhouse x2apic_enabled()
> bhyve true
> default false
>
If both interrupt remapping and x2apic are enabled, what would the name
x2apic_without_ir_available signify?
A value of "true" would mean x2apic is available without IR. But that
would be inaccurate for most hypervisors. A value of "false" could be
interpreted as x2apic is not available, which is also inaccurate.
To me, x2apic_available makes more sense than
x2apic_without_ir_available based on the values being set by the
hypervisors.
> Bare metal and vmware correctly check if x2apic is available without interrupt
> remapping. The rest of them check if x2apic is enabled/supported, and kvm just
> checks if the kernel is running on kvm. The other hypervisors may have to have
> their checks audited.
>
AFAIU, the value on bare metal is set to false because this is a
hypervisor specific variable. Perhaps I have misunderstood something?
|