All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Jianyong Wu <jianyong.wu@arm.com>
Cc: justin.he@arm.com, kvm@vger.kernel.org, netdev@vger.kernel.org,
	richardcochran@gmail.com, linux-kernel@vger.kernel.org,
	sean.j.christopherson@intel.com, steven.price@arm.com,
	Andre.Przywara@arm.com, john.stultz@linaro.org,
	yangbo.lu@nxp.com, pbonzini@redhat.com, tglx@linutronix.de,
	nd@arm.com, will@kernel.org, kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v15 6/9] arm64/kvm: Add hypercall service for kvm ptp.
Date: Mon, 23 Nov 2020 11:59:09 +0000	[thread overview]
Message-ID: <276428d3d291f703e2f0c2c323194e98@kernel.org> (raw)
In-Reply-To: <d409aa1cb7cfcbf4351e6c5fc34d9c7e@kernel.org>

On 2020-11-23 10:44, Marc Zyngier wrote:
> On 2020-11-11 06:22, Jianyong Wu wrote:
>> ptp_kvm will get this service through SMCC call.
>> The service offers wall time and cycle count of host to guest.
>> The caller must specify whether they want the host cycle count
>> or the difference between host cycle count and cntvoff.
>> 
>> Signed-off-by: Jianyong Wu <jianyong.wu@arm.com>
>> ---
>>  arch/arm64/kvm/hypercalls.c | 61 
>> +++++++++++++++++++++++++++++++++++++
>>  include/linux/arm-smccc.h   | 17 +++++++++++
>>  2 files changed, 78 insertions(+)
>> 
>> diff --git a/arch/arm64/kvm/hypercalls.c b/arch/arm64/kvm/hypercalls.c
>> index b9d8607083eb..f7d189563f3d 100644
>> --- a/arch/arm64/kvm/hypercalls.c
>> +++ b/arch/arm64/kvm/hypercalls.c
>> @@ -9,6 +9,51 @@
>>  #include <kvm/arm_hypercalls.h>
>>  #include <kvm/arm_psci.h>
>> 
>> +static void kvm_ptp_get_time(struct kvm_vcpu *vcpu, u64 *val)
>> +{
>> +	struct system_time_snapshot systime_snapshot;
>> +	u64 cycles = ~0UL;
>> +	u32 feature;
>> +
>> +	/*
>> +	 * system time and counter value must captured in the same
>> +	 * time to keep consistency and precision.
>> +	 */
>> +	ktime_get_snapshot(&systime_snapshot);
>> +
>> +	// binding ptp_kvm clocksource to arm_arch_counter
>> +	if (systime_snapshot.cs_id != CSID_ARM_ARCH_COUNTER)
>> +		return;
>> +
>> +	val[0] = upper_32_bits(systime_snapshot.real);
>> +	val[1] = lower_32_bits(systime_snapshot.real);
> 
> What is the endianness of these values? I can't see it defined
> anywhere, and this is likely not to work if guest and hypervisor
> don't align.

Scratch that. This is all passed via registers, so the endianness
of the data is irrelevant. Please discard any comment about endianness
I made in this review.

The documentation aspect still requires to be beefed up.

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Jianyong Wu <jianyong.wu@arm.com>
Cc: justin.he@arm.com, kvm@vger.kernel.org, netdev@vger.kernel.org,
	richardcochran@gmail.com, yangbo.lu@nxp.com,
	linux-kernel@vger.kernel.org, sean.j.christopherson@intel.com,
	steven.price@arm.com, john.stultz@linaro.org,
	Andre.Przywara@arm.com, pbonzini@redhat.com, tglx@linutronix.de,
	nd@arm.com, will@kernel.org, kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v15 6/9] arm64/kvm: Add hypercall service for kvm ptp.
Date: Mon, 23 Nov 2020 11:59:09 +0000	[thread overview]
Message-ID: <276428d3d291f703e2f0c2c323194e98@kernel.org> (raw)
In-Reply-To: <d409aa1cb7cfcbf4351e6c5fc34d9c7e@kernel.org>

On 2020-11-23 10:44, Marc Zyngier wrote:
> On 2020-11-11 06:22, Jianyong Wu wrote:
>> ptp_kvm will get this service through SMCC call.
>> The service offers wall time and cycle count of host to guest.
>> The caller must specify whether they want the host cycle count
>> or the difference between host cycle count and cntvoff.
>> 
>> Signed-off-by: Jianyong Wu <jianyong.wu@arm.com>
>> ---
>>  arch/arm64/kvm/hypercalls.c | 61 
>> +++++++++++++++++++++++++++++++++++++
>>  include/linux/arm-smccc.h   | 17 +++++++++++
>>  2 files changed, 78 insertions(+)
>> 
>> diff --git a/arch/arm64/kvm/hypercalls.c b/arch/arm64/kvm/hypercalls.c
>> index b9d8607083eb..f7d189563f3d 100644
>> --- a/arch/arm64/kvm/hypercalls.c
>> +++ b/arch/arm64/kvm/hypercalls.c
>> @@ -9,6 +9,51 @@
>>  #include <kvm/arm_hypercalls.h>
>>  #include <kvm/arm_psci.h>
>> 
>> +static void kvm_ptp_get_time(struct kvm_vcpu *vcpu, u64 *val)
>> +{
>> +	struct system_time_snapshot systime_snapshot;
>> +	u64 cycles = ~0UL;
>> +	u32 feature;
>> +
>> +	/*
>> +	 * system time and counter value must captured in the same
>> +	 * time to keep consistency and precision.
>> +	 */
>> +	ktime_get_snapshot(&systime_snapshot);
>> +
>> +	// binding ptp_kvm clocksource to arm_arch_counter
>> +	if (systime_snapshot.cs_id != CSID_ARM_ARCH_COUNTER)
>> +		return;
>> +
>> +	val[0] = upper_32_bits(systime_snapshot.real);
>> +	val[1] = lower_32_bits(systime_snapshot.real);
> 
> What is the endianness of these values? I can't see it defined
> anywhere, and this is likely not to work if guest and hypervisor
> don't align.

Scratch that. This is all passed via registers, so the endianness
of the data is irrelevant. Please discard any comment about endianness
I made in this review.

The documentation aspect still requires to be beefed up.

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Jianyong Wu <jianyong.wu@arm.com>
Cc: justin.he@arm.com, kvm@vger.kernel.org, netdev@vger.kernel.org,
	richardcochran@gmail.com, yangbo.lu@nxp.com,
	linux-kernel@vger.kernel.org, sean.j.christopherson@intel.com,
	steven.price@arm.com, john.stultz@linaro.org,
	Andre.Przywara@arm.com, pbonzini@redhat.com, tglx@linutronix.de,
	nd@arm.com, will@kernel.org, kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v15 6/9] arm64/kvm: Add hypercall service for kvm ptp.
Date: Mon, 23 Nov 2020 11:59:09 +0000	[thread overview]
Message-ID: <276428d3d291f703e2f0c2c323194e98@kernel.org> (raw)
In-Reply-To: <d409aa1cb7cfcbf4351e6c5fc34d9c7e@kernel.org>

On 2020-11-23 10:44, Marc Zyngier wrote:
> On 2020-11-11 06:22, Jianyong Wu wrote:
>> ptp_kvm will get this service through SMCC call.
>> The service offers wall time and cycle count of host to guest.
>> The caller must specify whether they want the host cycle count
>> or the difference between host cycle count and cntvoff.
>> 
>> Signed-off-by: Jianyong Wu <jianyong.wu@arm.com>
>> ---
>>  arch/arm64/kvm/hypercalls.c | 61 
>> +++++++++++++++++++++++++++++++++++++
>>  include/linux/arm-smccc.h   | 17 +++++++++++
>>  2 files changed, 78 insertions(+)
>> 
>> diff --git a/arch/arm64/kvm/hypercalls.c b/arch/arm64/kvm/hypercalls.c
>> index b9d8607083eb..f7d189563f3d 100644
>> --- a/arch/arm64/kvm/hypercalls.c
>> +++ b/arch/arm64/kvm/hypercalls.c
>> @@ -9,6 +9,51 @@
>>  #include <kvm/arm_hypercalls.h>
>>  #include <kvm/arm_psci.h>
>> 
>> +static void kvm_ptp_get_time(struct kvm_vcpu *vcpu, u64 *val)
>> +{
>> +	struct system_time_snapshot systime_snapshot;
>> +	u64 cycles = ~0UL;
>> +	u32 feature;
>> +
>> +	/*
>> +	 * system time and counter value must captured in the same
>> +	 * time to keep consistency and precision.
>> +	 */
>> +	ktime_get_snapshot(&systime_snapshot);
>> +
>> +	// binding ptp_kvm clocksource to arm_arch_counter
>> +	if (systime_snapshot.cs_id != CSID_ARM_ARCH_COUNTER)
>> +		return;
>> +
>> +	val[0] = upper_32_bits(systime_snapshot.real);
>> +	val[1] = lower_32_bits(systime_snapshot.real);
> 
> What is the endianness of these values? I can't see it defined
> anywhere, and this is likely not to work if guest and hypervisor
> don't align.

Scratch that. This is all passed via registers, so the endianness
of the data is irrelevant. Please discard any comment about endianness
I made in this review.

The documentation aspect still requires to be beefed up.

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-11-23 11:59 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-11  6:22 [PATCH v15 0/9] Enable ptp_kvm for arm/arm64 Jianyong Wu
2020-11-11  6:22 ` Jianyong Wu
2020-11-11  6:22 ` Jianyong Wu
2020-11-11  6:22 ` [PATCH v15 1/9] arm64: Probe for the presence of KVM hypervisor Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11 10:38   ` kernel test robot
2020-11-11 12:23   ` kernel test robot
2020-11-11 16:54   ` kernel test robot
2020-11-11  6:22 ` [PATCH v15 2/9] arm/arm64: KVM: Advertise KVM UID to guests via SMCCC Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22 ` [PATCH v15 3/9] ptp: Reorganize ptp_kvm module to make it arch-independent Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11 13:10   ` kernel test robot
2020-11-11 13:10     ` kernel test robot
2020-11-11 14:36   ` kernel test robot
2020-11-11 14:36     ` kernel test robot
2020-11-11  6:22 ` [PATCH v15 4/9] time: Add mechanism to recognize clocksource in time_get_snapshot Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22 ` [PATCH v15 5/9] clocksource: Add clocksource id for arm arch counter Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22 ` [PATCH v15 6/9] arm64/kvm: Add hypercall service for kvm ptp Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-23 10:44   ` Marc Zyngier
2020-11-23 10:44     ` Marc Zyngier
2020-11-23 10:44     ` Marc Zyngier
2020-11-23 11:59     ` Marc Zyngier [this message]
2020-11-23 11:59       ` Marc Zyngier
2020-11-23 11:59       ` Marc Zyngier
2020-11-24  5:11       ` Jianyong Wu
2020-11-24  5:11         ` Jianyong Wu
2020-11-24  5:11         ` Jianyong Wu
2020-11-24  5:20     ` Jianyong Wu
2020-11-24  5:20       ` Jianyong Wu
2020-11-24  5:20       ` Jianyong Wu
2020-11-24  9:07       ` Marc Zyngier
2020-11-24  9:07         ` Marc Zyngier
2020-11-24  9:07         ` Marc Zyngier
2020-11-24 10:14         ` Jianyong Wu
2020-11-24 10:14           ` Jianyong Wu
2020-11-24 10:14           ` Jianyong Wu
2020-11-11  6:22 ` [PATCH v15 7/9] ptp: arm/arm64: Enable ptp_kvm for arm/arm64 Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  8:52   ` kernel test robot
2020-11-11  8:52     ` kernel test robot
2020-11-11 13:44   ` kernel test robot
2020-11-11 13:44     ` kernel test robot
2020-12-04  9:46     ` Jianyong Wu
2020-11-23 10:49   ` Marc Zyngier
2020-11-23 10:49     ` Marc Zyngier
2020-11-23 10:49     ` Marc Zyngier
2020-11-24  5:37     ` Jianyong Wu
2020-11-24  5:37       ` Jianyong Wu
2020-11-24  5:37       ` Jianyong Wu
2020-11-24  9:04       ` Marc Zyngier
2020-11-24  9:04         ` Marc Zyngier
2020-11-24  9:04         ` Marc Zyngier
2020-11-24 10:18         ` Jianyong Wu
2020-11-24 10:18           ` Jianyong Wu
2020-11-24 10:18           ` Jianyong Wu
2020-11-11  6:22 ` [PATCH v15 8/9] doc: add ptp_kvm introduction for arm64 support Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-23 10:58   ` Marc Zyngier
2020-11-23 10:58     ` Marc Zyngier
2020-11-23 10:58     ` Marc Zyngier
2020-11-24  5:21     ` Jianyong Wu
2020-11-24  5:21       ` Jianyong Wu
2020-11-24  5:21       ` Jianyong Wu
2020-11-11  6:22 ` [PATCH v15 9/9] arm64: Add kvm capability check extension for ptp_kvm Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-11  6:22   ` Jianyong Wu
2020-11-23  9:26 ` [PATCH v15 0/9] Enable ptp_kvm for arm/arm64 Jianyong Wu
2020-11-23  9:26   ` Jianyong Wu
2020-11-23  9:26   ` Jianyong Wu

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=276428d3d291f703e2f0c2c323194e98@kernel.org \
    --to=maz@kernel.org \
    --cc=Andre.Przywara@arm.com \
    --cc=jianyong.wu@arm.com \
    --cc=john.stultz@linaro.org \
    --cc=justin.he@arm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nd@arm.com \
    --cc=netdev@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=richardcochran@gmail.com \
    --cc=sean.j.christopherson@intel.com \
    --cc=steven.price@arm.com \
    --cc=tglx@linutronix.de \
    --cc=will@kernel.org \
    --cc=yangbo.lu@nxp.com \
    /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.