From: Paolo Bonzini <pbonzini@redhat.com>
To: joseph.salisbury@microsoft.com, kys@microsoft.com,
haiyangz@microsoft.com, sthemmin@microsoft.com,
wei.liu@kernel.org, tglx@linutronix.de, mingo@redhat.com,
bp@alien8.de, hpa@zytor.com, mikelley@microsoft.com,
sean.j.christopherson@intel.com, vkuznets@redhat.com,
wanpengli@tencent.com, jmattson@google.com, joro@8bytes.org
Cc: x86@kernel.org, linux-hyperv@vger.kernel.org,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org
Subject: Re: [PATCH] x86/hyperv: Remove aliases with X64 in their name
Date: Sun, 27 Sep 2020 08:54:26 +0200 [thread overview]
Message-ID: <70053462-38a3-e425-5f97-35a349ab96ab@redhat.com> (raw)
In-Reply-To: <1601130386-11111-1-git-send-email-jsalisbury@linux.microsoft.com>
On 26/09/20 16:26, Joseph Salisbury wrote:
> From: Joseph Salisbury <joseph.salisbury@microsoft.com>
>
> In the architecture independent version of hyperv-tlfs.h, commit c55a844f46f958b
> removed the "X64" in the symbol names so they would make sense for both x86 and
> ARM64. That commit added aliases with the "X64" in the x86 version of hyperv-tlfs.h
> so that existing x86 code would continue to compile.
>
> As a cleanup, update the x86 code to use the symbols without the "X64", then remove
> the aliases. There's no functional change.
>
> Signed-off-by: Joseph Salisbury <joseph.salisbury@microsoft.com>
> ---
> arch/x86/hyperv/hv_init.c | 8 ++++----
> arch/x86/hyperv/hv_spinlock.c | 2 +-
> arch/x86/include/asm/hyperv-tlfs.h | 33 ------------------------------
> arch/x86/kernel/cpu/mshyperv.c | 8 ++++----
> arch/x86/kvm/hyperv.c | 20 +++++++++---------
> 5 files changed, 19 insertions(+), 52 deletions(-)
>
> diff --git a/arch/x86/hyperv/hv_init.c b/arch/x86/hyperv/hv_init.c
> index 6035df1b49e1..e04d90af4c27 100644
> --- a/arch/x86/hyperv/hv_init.c
> +++ b/arch/x86/hyperv/hv_init.c
> @@ -148,9 +148,9 @@ static inline bool hv_reenlightenment_available(void)
> * Check for required features and priviliges to make TSC frequency
> * change notifications work.
> */
> - return ms_hyperv.features & HV_X64_ACCESS_FREQUENCY_MSRS &&
> + return ms_hyperv.features & HV_ACCESS_FREQUENCY_MSRS &&
> ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE &&
> - ms_hyperv.features & HV_X64_ACCESS_REENLIGHTENMENT;
> + ms_hyperv.features & HV_ACCESS_REENLIGHTENMENT;
> }
>
> DEFINE_IDTENTRY_SYSVEC(sysvec_hyperv_reenlightenment)
> @@ -330,8 +330,8 @@ void __init hyperv_init(void)
> return;
>
> /* Absolutely required MSRs */
> - required_msrs = HV_X64_MSR_HYPERCALL_AVAILABLE |
> - HV_X64_MSR_VP_INDEX_AVAILABLE;
> + required_msrs = HV_MSR_HYPERCALL_AVAILABLE |
> + HV_MSR_VP_INDEX_AVAILABLE;
>
> if ((ms_hyperv.features & required_msrs) != required_msrs)
> return;
> diff --git a/arch/x86/hyperv/hv_spinlock.c b/arch/x86/hyperv/hv_spinlock.c
> index 07f21a06392f..f3270c1fc48c 100644
> --- a/arch/x86/hyperv/hv_spinlock.c
> +++ b/arch/x86/hyperv/hv_spinlock.c
> @@ -66,7 +66,7 @@ void __init hv_init_spinlocks(void)
> {
> if (!hv_pvspin || !apic ||
> !(ms_hyperv.hints & HV_X64_CLUSTER_IPI_RECOMMENDED) ||
> - !(ms_hyperv.features & HV_X64_MSR_GUEST_IDLE_AVAILABLE)) {
> + !(ms_hyperv.features & HV_MSR_GUEST_IDLE_AVAILABLE)) {
> pr_info("PV spinlocks disabled\n");
> return;
> }
> diff --git a/arch/x86/include/asm/hyperv-tlfs.h b/arch/x86/include/asm/hyperv-tlfs.h
> index 7a4d2062385c..0ed20e8bba9e 100644
> --- a/arch/x86/include/asm/hyperv-tlfs.h
> +++ b/arch/x86/include/asm/hyperv-tlfs.h
> @@ -27,39 +27,6 @@
> #define HYPERV_CPUID_MIN 0x40000005
> #define HYPERV_CPUID_MAX 0x4000ffff
>
> -/*
> - * Aliases for Group A features that have X64 in the name.
> - * On x86/x64 these are HYPERV_CPUID_FEATURES.EAX bits.
> - */
> -
> -#define HV_X64_MSR_VP_RUNTIME_AVAILABLE \
> - HV_MSR_VP_RUNTIME_AVAILABLE
> -#define HV_X64_MSR_SYNIC_AVAILABLE \
> - HV_MSR_SYNIC_AVAILABLE
> -#define HV_X64_MSR_APIC_ACCESS_AVAILABLE \
> - HV_MSR_APIC_ACCESS_AVAILABLE
> -#define HV_X64_MSR_HYPERCALL_AVAILABLE \
> - HV_MSR_HYPERCALL_AVAILABLE
> -#define HV_X64_MSR_VP_INDEX_AVAILABLE \
> - HV_MSR_VP_INDEX_AVAILABLE
> -#define HV_X64_MSR_RESET_AVAILABLE \
> - HV_MSR_RESET_AVAILABLE
> -#define HV_X64_MSR_GUEST_IDLE_AVAILABLE \
> - HV_MSR_GUEST_IDLE_AVAILABLE
> -#define HV_X64_ACCESS_FREQUENCY_MSRS \
> - HV_ACCESS_FREQUENCY_MSRS
> -#define HV_X64_ACCESS_REENLIGHTENMENT \
> - HV_ACCESS_REENLIGHTENMENT
> -#define HV_X64_ACCESS_TSC_INVARIANT \
> - HV_ACCESS_TSC_INVARIANT
> -
> -/*
> - * Aliases for Group B features that have X64 in the name.
> - * On x86/x64 these are HYPERV_CPUID_FEATURES.EBX bits.
> - */
> -#define HV_X64_POST_MESSAGES HV_POST_MESSAGES
> -#define HV_X64_SIGNAL_EVENTS HV_SIGNAL_EVENTS
> -
> /*
> * Group D Features. The bit assignments are custom to each architecture.
> * On x86/x64 these are HYPERV_CPUID_FEATURES.EDX bits.
> diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
> index 31125448b174..9834a43cd0fa 100644
> --- a/arch/x86/kernel/cpu/mshyperv.c
> +++ b/arch/x86/kernel/cpu/mshyperv.c
> @@ -248,7 +248,7 @@ static void __init ms_hyperv_init_platform(void)
> hv_host_info_edx >> 24, hv_host_info_edx & 0xFFFFFF);
> }
>
> - if (ms_hyperv.features & HV_X64_ACCESS_FREQUENCY_MSRS &&
> + if (ms_hyperv.features & HV_ACCESS_FREQUENCY_MSRS &&
> ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
> x86_platform.calibrate_tsc = hv_get_tsc_khz;
> x86_platform.calibrate_cpu = hv_get_tsc_khz;
> @@ -270,7 +270,7 @@ static void __init ms_hyperv_init_platform(void)
> crash_kexec_post_notifiers = true;
>
> #ifdef CONFIG_X86_LOCAL_APIC
> - if (ms_hyperv.features & HV_X64_ACCESS_FREQUENCY_MSRS &&
> + if (ms_hyperv.features & HV_ACCESS_FREQUENCY_MSRS &&
> ms_hyperv.misc_features & HV_FEATURE_FREQUENCY_MSRS_AVAILABLE) {
> /*
> * Get the APIC frequency.
> @@ -296,7 +296,7 @@ static void __init ms_hyperv_init_platform(void)
> machine_ops.shutdown = hv_machine_shutdown;
> machine_ops.crash_shutdown = hv_machine_crash_shutdown;
> #endif
> - if (ms_hyperv.features & HV_X64_ACCESS_TSC_INVARIANT) {
> + if (ms_hyperv.features & HV_ACCESS_TSC_INVARIANT) {
> wrmsrl(HV_X64_MSR_TSC_INVARIANT_CONTROL, 0x1);
> setup_force_cpu_cap(X86_FEATURE_TSC_RELIABLE);
> } else {
> @@ -330,7 +330,7 @@ static void __init ms_hyperv_init_platform(void)
> alloc_intr_gate(HYPERVISOR_CALLBACK_VECTOR, asm_sysvec_hyperv_callback);
>
> /* Setup the IDT for reenlightenment notifications */
> - if (ms_hyperv.features & HV_X64_ACCESS_REENLIGHTENMENT) {
> + if (ms_hyperv.features & HV_ACCESS_REENLIGHTENMENT) {
> alloc_intr_gate(HYPERV_REENLIGHTENMENT_VECTOR,
> asm_sysvec_hyperv_reenlightenment);
> }
> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
> index 1d330564eed8..8c1e8334eff0 100644
> --- a/arch/x86/kvm/hyperv.c
> +++ b/arch/x86/kvm/hyperv.c
> @@ -2000,20 +2000,20 @@ int kvm_vcpu_ioctl_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid,
> break;
>
> case HYPERV_CPUID_FEATURES:
> - ent->eax |= HV_X64_MSR_VP_RUNTIME_AVAILABLE;
> + ent->eax |= HV_MSR_VP_RUNTIME_AVAILABLE;
> ent->eax |= HV_MSR_TIME_REF_COUNT_AVAILABLE;
> - ent->eax |= HV_X64_MSR_SYNIC_AVAILABLE;
> + ent->eax |= HV_MSR_SYNIC_AVAILABLE;
> ent->eax |= HV_MSR_SYNTIMER_AVAILABLE;
> - ent->eax |= HV_X64_MSR_APIC_ACCESS_AVAILABLE;
> - ent->eax |= HV_X64_MSR_HYPERCALL_AVAILABLE;
> - ent->eax |= HV_X64_MSR_VP_INDEX_AVAILABLE;
> - ent->eax |= HV_X64_MSR_RESET_AVAILABLE;
> + ent->eax |= HV_MSR_APIC_ACCESS_AVAILABLE;
> + ent->eax |= HV_MSR_HYPERCALL_AVAILABLE;
> + ent->eax |= HV_MSR_VP_INDEX_AVAILABLE;
> + ent->eax |= HV_MSR_RESET_AVAILABLE;
> ent->eax |= HV_MSR_REFERENCE_TSC_AVAILABLE;
> - ent->eax |= HV_X64_ACCESS_FREQUENCY_MSRS;
> - ent->eax |= HV_X64_ACCESS_REENLIGHTENMENT;
> + ent->eax |= HV_ACCESS_FREQUENCY_MSRS;
> + ent->eax |= HV_ACCESS_REENLIGHTENMENT;
>
> - ent->ebx |= HV_X64_POST_MESSAGES;
> - ent->ebx |= HV_X64_SIGNAL_EVENTS;
> + ent->ebx |= HV_POST_MESSAGES;
> + ent->ebx |= HV_SIGNAL_EVENTS;
>
> ent->edx |= HV_FEATURE_FREQUENCY_MSRS_AVAILABLE;
> ent->edx |= HV_FEATURE_GUEST_CRASH_MSR_AVAILABLE;
>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
next prev parent reply other threads:[~2020-09-27 6:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-26 14:26 [PATCH] x86/hyperv: Remove aliases with X64 in their name Joseph Salisbury
2020-09-27 0:18 ` Michael Kelley
2020-09-27 6:54 ` Paolo Bonzini [this message]
2020-09-27 9:38 ` [tip: x86/hyperv] " tip-bot2 for Joseph Salisbury
2020-09-28 9:01 ` [PATCH] " Wei Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=70053462-38a3-e425-5f97-35a349ab96ab@redhat.com \
--to=pbonzini@redhat.com \
--cc=bp@alien8.de \
--cc=haiyangz@microsoft.com \
--cc=hpa@zytor.com \
--cc=jmattson@google.com \
--cc=joro@8bytes.org \
--cc=joseph.salisbury@microsoft.com \
--cc=kvm@vger.kernel.org \
--cc=kys@microsoft.com \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mikelley@microsoft.com \
--cc=mingo@redhat.com \
--cc=sean.j.christopherson@intel.com \
--cc=sthemmin@microsoft.com \
--cc=tglx@linutronix.de \
--cc=vkuznets@redhat.com \
--cc=wanpengli@tencent.com \
--cc=wei.liu@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).