All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: Michael Kelley <mikelley@microsoft.com>
Cc: mikelley@microsoft.com, kys@microsoft.com,
	haiyangz@microsoft.com, sthemmin@microsoft.com,
	wei.liu@kernel.org, tglx@linutronix.de, mingo@redhat.com,
	bp@alien8.de, x86@kernel.org, hpa@zytor.com, pbonzini@redhat.com,
	sean.j.christopherson@intel.com, wanpengli@tencent.com,
	jmattson@google.com, joro@8bytes.org, kvm@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org
Subject: Re: [PATCH 1/4] KVM: x86: hyperv: Remove duplicate definitions of Reference TSC Page
Date: Tue, 21 Apr 2020 14:37:01 +0200	[thread overview]
Message-ID: <874ktdrp5e.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <20200420173838.24672-2-mikelley@microsoft.com>

Michael Kelley <mikelley@microsoft.com> writes:

> The Hyper-V Reference TSC Page structure is defined twice. struct
> ms_hyperv_tsc_page has padding out to a full 4 Kbyte page size. But
> the padding is not needed because the declaration includes a union
> with HV_HYP_PAGE_SIZE.  KVM uses the second definition, which is
> struct _HV_REFERENCE_TSC_PAGE, because it does not have the padding.
>
> Fix the duplication by removing the padding from ms_hyperv_tsc_page.
> Fix up the KVM code to use it. Remove the no longer used struct
> _HV_REFERENCE_TSC_PAGE.
>
> There is no functional change.
>
> Signed-off-by: Michael Kelley <mikelley@microsoft.com>
> ---
>  arch/x86/include/asm/hyperv-tlfs.h | 8 --------
>  arch/x86/include/asm/kvm_host.h    | 2 +-
>  arch/x86/kvm/hyperv.c              | 4 ++--
>  3 files changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/arch/x86/include/asm/hyperv-tlfs.h b/arch/x86/include/asm/hyperv-tlfs.h
> index 29336574d0bc..0e4d76920957 100644
> --- a/arch/x86/include/asm/hyperv-tlfs.h
> +++ b/arch/x86/include/asm/hyperv-tlfs.h
> @@ -303,7 +303,6 @@ struct ms_hyperv_tsc_page {
>  	u32 reserved1;
>  	volatile u64 tsc_scale;
>  	volatile s64 tsc_offset;
> -	u64 reserved2[509];
>  }  __packed;
>  
>  /*
> @@ -433,13 +432,6 @@ enum HV_GENERIC_SET_FORMAT {
>   */
>  #define HV_CLOCK_HZ (NSEC_PER_SEC/100)
>  
> -typedef struct _HV_REFERENCE_TSC_PAGE {
> -	__u32 tsc_sequence;
> -	__u32 res1;
> -	__u64 tsc_scale;
> -	__s64 tsc_offset;
> -}  __packed HV_REFERENCE_TSC_PAGE, *PHV_REFERENCE_TSC_PAGE;
> -
>  /* Define the number of synthetic interrupt sources. */
>  #define HV_SYNIC_SINT_COUNT		(16)
>  /* Define the expected SynIC version. */
> diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
> index 42a2d0d3984a..4698343b9a05 100644
> --- a/arch/x86/include/asm/kvm_host.h
> +++ b/arch/x86/include/asm/kvm_host.h
> @@ -865,7 +865,7 @@ struct kvm_hv {
>  	u64 hv_crash_param[HV_X64_MSR_CRASH_PARAMS];
>  	u64 hv_crash_ctl;
>  
> -	HV_REFERENCE_TSC_PAGE tsc_ref;
> +	struct ms_hyperv_tsc_page tsc_ref;
>  
>  	struct idr conn_to_evt;
>  
> diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
> index bcefa9d4e57e..1f3c6fd3cdaa 100644
> --- a/arch/x86/kvm/hyperv.c
> +++ b/arch/x86/kvm/hyperv.c
> @@ -900,7 +900,7 @@ static int kvm_hv_msr_set_crash_data(struct kvm_vcpu *vcpu,
>   * These two equivalencies are implemented in this function.
>   */
>  static bool compute_tsc_page_parameters(struct pvclock_vcpu_time_info *hv_clock,
> -					HV_REFERENCE_TSC_PAGE *tsc_ref)
> +					struct ms_hyperv_tsc_page *tsc_ref)
>  {
>  	u64 max_mul;
>  
> @@ -941,7 +941,7 @@ void kvm_hv_setup_tsc_page(struct kvm *kvm,
>  	u64 gfn;
>  
>  	BUILD_BUG_ON(sizeof(tsc_seq) != sizeof(hv->tsc_ref.tsc_sequence));
> -	BUILD_BUG_ON(offsetof(HV_REFERENCE_TSC_PAGE, tsc_sequence) != 0);
> +	BUILD_BUG_ON(offsetof(struct ms_hyperv_tsc_page, tsc_sequence) != 0);
>  
>  	if (!(hv->hv_tsc_page & HV_X64_MSR_TSC_REFERENCE_ENABLE))
>  		return;

Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>

-- 
Vitaly


  parent reply	other threads:[~2020-04-21 12:37 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-20 17:38 [PATCH 0/4] Split hyperv-tlfs.h into generic and arch specific files Michael Kelley
2020-04-20 17:38 ` [PATCH 1/4] KVM: x86: hyperv: Remove duplicate definitions of Reference TSC Page Michael Kelley
2020-04-21  9:29   ` Wei Liu
2020-04-21 11:16     ` Paolo Bonzini
2020-04-21 11:18       ` Wei Liu
2020-04-21 12:37   ` Vitaly Kuznetsov [this message]
2020-04-20 17:38 ` [PATCH 2/4] x86/hyperv: Remove HV_PROCESSOR_POWER_STATE #defines Michael Kelley
2020-04-20 17:38 ` [PATCH 3/4] x86/hyperv: Split hyperv-tlfs.h into arch dependent and independent files Michael Kelley
2020-04-20 17:38 ` [PATCH 4/4] asm-generic/hyperv: Add definitions for Get/SetVpRegister hypercalls Michael Kelley
2020-04-21 13:02   ` Vitaly Kuznetsov
2020-04-21 15:50     ` Michael Kelley
2020-04-22 20:04       ` Michael Kelley
2020-04-21 11:24 ` [PATCH 0/4] Split hyperv-tlfs.h into generic and arch specific files 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=874ktdrp5e.fsf@vitty.brq.redhat.com \
    --to=vkuznets@redhat.com \
    --cc=bp@alien8.de \
    --cc=haiyangz@microsoft.com \
    --cc=hpa@zytor.com \
    --cc=jmattson@google.com \
    --cc=joro@8bytes.org \
    --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=pbonzini@redhat.com \
    --cc=sean.j.christopherson@intel.com \
    --cc=sthemmin@microsoft.com \
    --cc=tglx@linutronix.de \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.