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,
	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 v16 0/9] Enable ptp_kvm for arm/arm64
Date: Tue, 02 Feb 2021 14:15:15 +0000	[thread overview]
Message-ID: <74108ee1d0021acbdd7aed5b467e5432@kernel.org> (raw)
In-Reply-To: <20201209060932.212364-1-jianyong.wu@arm.com>

On 2020-12-09 06:09, Jianyong Wu wrote:
> Currently, we offen use ntp (sync time with remote network clock)
> to sync time in VM. But the precision of ntp is subject to network 
> delay
> so it's difficult to sync time in a high precision.
> 
> kvm virtual ptp clock (ptp_kvm) offers another way to sync time in VM,
> as the remote clock locates in the host instead of remote network 
> clock.
> It targets to sync time between guest and host in virtualization
> environment and in this way, we can keep the time of all the VMs 
> running
> in the same host in sync. In general, the delay of communication 
> between
> host and guest is quiet small, so ptp_kvm can offer time sync precision
> up to in order of nanosecond. Please keep in mind that ptp_kvm just
> limits itself to be a channel which transmit the remote clock from
> host to guest and leaves the time sync jobs to an application, eg. 
> chrony,
> in usersapce in VM.
> 
> How ptp_kvm works:
> After ptp_kvm initialized, there will be a new device node under
> /dev called ptp%d. A guest userspace service, like chrony, can use this
> device to get host walltime, sometimes also counter cycle, which 
> depends
> on the service it calls. Then this guest userspace service can use 
> those
> data to do the time sync for guest.
> here is a rough sketch to show how kvm ptp clock works.
> 
> |----------------------------|              
> |--------------------------|
> |       guest userspace      |              |          host            
> |
> |ioctl -> /dev/ptp%d         |              |                          
> |
> |       ^   |                |              |                          
> |
> |----------------------------|              |                          
> |
> |       |   | guest kernel   |              |                          
> |
> |       |   V      (get host walltime/counter cycle)                   
> |
> |      ptp_kvm -> hypercall - - - - - - - - - - ->hypercall service    
> |
> |                         <- - - - - - - - - - - -                     
> |
> |----------------------------|              
> |--------------------------|
> 
> 1. time sync service in guest userspace call ptp device through 
> /dev/ptp%d.
> 2. ptp_kvm module in guest receives this request then invoke hypercall 
> to route
> into host kernel to request host walltime/counter cycle.
> 3. ptp_kvm hypercall service in host response to the request and send 
> data back.
> 4. ptp (not ptp_kvm) in guest copy the data to userspace.
> 
> This ptp_kvm implementation focuses itself to step 2 and 3 and step 2 
> works
> in guest comparing step 3 works in host kernel.

FWIW, and in order to speed up the review, I've posted a reworked
version[0] of this series with changes that address the comments
I had for on v16.

Thanks,

         M.

[0] https://lore.kernel.org/r/20210202141204.3134855-1-maz@kernel.org
-- 
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: Mark.Rutland@arm.com, justin.he@arm.com, kvm@vger.kernel.org,
	suzuki.poulose@arm.com, netdev@vger.kernel.org,
	richardcochran@gmail.com, Steve.Capper@arm.com,
	linux-kernel@vger.kernel.org, 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 v16 0/9] Enable ptp_kvm for arm/arm64
Date: Tue, 02 Feb 2021 14:15:15 +0000	[thread overview]
Message-ID: <74108ee1d0021acbdd7aed5b467e5432@kernel.org> (raw)
In-Reply-To: <20201209060932.212364-1-jianyong.wu@arm.com>

On 2020-12-09 06:09, Jianyong Wu wrote:
> Currently, we offen use ntp (sync time with remote network clock)
> to sync time in VM. But the precision of ntp is subject to network 
> delay
> so it's difficult to sync time in a high precision.
> 
> kvm virtual ptp clock (ptp_kvm) offers another way to sync time in VM,
> as the remote clock locates in the host instead of remote network 
> clock.
> It targets to sync time between guest and host in virtualization
> environment and in this way, we can keep the time of all the VMs 
> running
> in the same host in sync. In general, the delay of communication 
> between
> host and guest is quiet small, so ptp_kvm can offer time sync precision
> up to in order of nanosecond. Please keep in mind that ptp_kvm just
> limits itself to be a channel which transmit the remote clock from
> host to guest and leaves the time sync jobs to an application, eg. 
> chrony,
> in usersapce in VM.
> 
> How ptp_kvm works:
> After ptp_kvm initialized, there will be a new device node under
> /dev called ptp%d. A guest userspace service, like chrony, can use this
> device to get host walltime, sometimes also counter cycle, which 
> depends
> on the service it calls. Then this guest userspace service can use 
> those
> data to do the time sync for guest.
> here is a rough sketch to show how kvm ptp clock works.
> 
> |----------------------------|              
> |--------------------------|
> |       guest userspace      |              |          host            
> |
> |ioctl -> /dev/ptp%d         |              |                          
> |
> |       ^   |                |              |                          
> |
> |----------------------------|              |                          
> |
> |       |   | guest kernel   |              |                          
> |
> |       |   V      (get host walltime/counter cycle)                   
> |
> |      ptp_kvm -> hypercall - - - - - - - - - - ->hypercall service    
> |
> |                         <- - - - - - - - - - - -                     
> |
> |----------------------------|              
> |--------------------------|
> 
> 1. time sync service in guest userspace call ptp device through 
> /dev/ptp%d.
> 2. ptp_kvm module in guest receives this request then invoke hypercall 
> to route
> into host kernel to request host walltime/counter cycle.
> 3. ptp_kvm hypercall service in host response to the request and send 
> data back.
> 4. ptp (not ptp_kvm) in guest copy the data to userspace.
> 
> This ptp_kvm implementation focuses itself to step 2 and 3 and step 2 
> works
> in guest comparing step 3 works in host kernel.

FWIW, and in order to speed up the review, I've posted a reworked
version[0] of this series with changes that address the comments
I had for on v16.

Thanks,

         M.

[0] https://lore.kernel.org/r/20210202141204.3134855-1-maz@kernel.org
-- 
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

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Jianyong Wu <jianyong.wu@arm.com>
Cc: netdev@vger.kernel.org, yangbo.lu@nxp.com,
	john.stultz@linaro.org, tglx@linutronix.de, pbonzini@redhat.com,
	richardcochran@gmail.com, Mark.Rutland@arm.com, will@kernel.org,
	suzuki.poulose@arm.com, Andre.Przywara@arm.com,
	steven.price@arm.com, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org,
	Steve.Capper@arm.com, justin.he@arm.com, nd@arm.com
Subject: Re: [PATCH v16 0/9] Enable ptp_kvm for arm/arm64
Date: Tue, 02 Feb 2021 14:15:15 +0000	[thread overview]
Message-ID: <74108ee1d0021acbdd7aed5b467e5432@kernel.org> (raw)
In-Reply-To: <20201209060932.212364-1-jianyong.wu@arm.com>

On 2020-12-09 06:09, Jianyong Wu wrote:
> Currently, we offen use ntp (sync time with remote network clock)
> to sync time in VM. But the precision of ntp is subject to network 
> delay
> so it's difficult to sync time in a high precision.
> 
> kvm virtual ptp clock (ptp_kvm) offers another way to sync time in VM,
> as the remote clock locates in the host instead of remote network 
> clock.
> It targets to sync time between guest and host in virtualization
> environment and in this way, we can keep the time of all the VMs 
> running
> in the same host in sync. In general, the delay of communication 
> between
> host and guest is quiet small, so ptp_kvm can offer time sync precision
> up to in order of nanosecond. Please keep in mind that ptp_kvm just
> limits itself to be a channel which transmit the remote clock from
> host to guest and leaves the time sync jobs to an application, eg. 
> chrony,
> in usersapce in VM.
> 
> How ptp_kvm works:
> After ptp_kvm initialized, there will be a new device node under
> /dev called ptp%d. A guest userspace service, like chrony, can use this
> device to get host walltime, sometimes also counter cycle, which 
> depends
> on the service it calls. Then this guest userspace service can use 
> those
> data to do the time sync for guest.
> here is a rough sketch to show how kvm ptp clock works.
> 
> |----------------------------|              
> |--------------------------|
> |       guest userspace      |              |          host            
> |
> |ioctl -> /dev/ptp%d         |              |                          
> |
> |       ^   |                |              |                          
> |
> |----------------------------|              |                          
> |
> |       |   | guest kernel   |              |                          
> |
> |       |   V      (get host walltime/counter cycle)                   
> |
> |      ptp_kvm -> hypercall - - - - - - - - - - ->hypercall service    
> |
> |                         <- - - - - - - - - - - -                     
> |
> |----------------------------|              
> |--------------------------|
> 
> 1. time sync service in guest userspace call ptp device through 
> /dev/ptp%d.
> 2. ptp_kvm module in guest receives this request then invoke hypercall 
> to route
> into host kernel to request host walltime/counter cycle.
> 3. ptp_kvm hypercall service in host response to the request and send 
> data back.
> 4. ptp (not ptp_kvm) in guest copy the data to userspace.
> 
> This ptp_kvm implementation focuses itself to step 2 and 3 and step 2 
> works
> in guest comparing step 3 works in host kernel.

FWIW, and in order to speed up the review, I've posted a reworked
version[0] of this series with changes that address the comments
I had for on v16.

Thanks,

         M.

[0] https://lore.kernel.org/r/20210202141204.3134855-1-maz@kernel.org
-- 
Jazz is not dead. It just smells funny...

  parent reply	other threads:[~2021-02-02 14:15 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-09  6:09 [PATCH v16 0/9] Enable ptp_kvm for arm/arm64 Jianyong Wu
2020-12-09  6:09 ` Jianyong Wu
2020-12-09  6:09 ` Jianyong Wu
2020-12-09  6:09 ` [PATCH v16 1/9] arm64: Probe for the presence of KVM hypervisor Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2021-02-02 13:18   ` Marc Zyngier
2021-02-02 13:18     ` Marc Zyngier
2021-02-02 13:18     ` Marc Zyngier
2020-12-09  6:09 ` [PATCH v16 2/9] arm/arm64: KVM: Advertise KVM UID to guests via SMCCC Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09 ` [PATCH v16 3/9] ptp: Reorganize ptp_kvm module to make it arch-independent Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09 10:23   ` kernel test robot
2020-12-09 10:23     ` kernel test robot
2020-12-09 10:23   ` [RFC PATCH] ptp: clock_pair_gpa can be static kernel test robot
2020-12-09 10:23     ` kernel test robot
2021-02-02 13:23   ` [PATCH v16 3/9] ptp: Reorganize ptp_kvm module to make it arch-independent Marc Zyngier
2021-02-02 13:23     ` Marc Zyngier
2021-02-02 13:23     ` Marc Zyngier
2020-12-09  6:09 ` [PATCH v16 4/9] time: Add mechanism to recognize clocksource in time_get_snapshot Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09 ` [PATCH v16 5/9] clocksource: Add clocksource id for arm arch counter Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09 ` [PATCH v16 6/9] arm64/kvm: Add hypercall service for kvm ptp Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2021-02-02 13:32   ` Marc Zyngier
2021-02-02 13:32     ` Marc Zyngier
2021-02-02 13:32     ` Marc Zyngier
2020-12-09  6:09 ` [PATCH v16 7/9] ptp: arm/arm64: Enable ptp_kvm for arm/arm64 Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2021-02-02 13:37   ` Marc Zyngier
2021-02-02 13:37     ` Marc Zyngier
2021-02-02 13:37     ` Marc Zyngier
2020-12-09  6:09 ` [PATCH v16 8/9] doc: add ptp_kvm introduction for arm64 support Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2021-02-02 13:43   ` Marc Zyngier
2021-02-02 13:43     ` Marc Zyngier
2021-02-02 13:43     ` Marc Zyngier
2020-12-09  6:09 ` [PATCH v16 9/9] arm64: Add kvm capability check extension for ptp_kvm Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2020-12-09  6:09   ` Jianyong Wu
2021-02-02 13:44   ` Marc Zyngier
2021-02-02 13:44     ` Marc Zyngier
2021-02-02 13:44     ` Marc Zyngier
2021-01-06  8:29 ` [PATCH v16 0/9] Enable ptp_kvm for arm/arm64 Jianyong Wu
2021-01-06  8:29   ` Jianyong Wu
2021-01-06  8:29   ` Jianyong Wu
2021-02-02 14:15 ` Marc Zyngier [this message]
2021-02-02 14:15   ` Marc Zyngier
2021-02-02 14:15   ` Marc Zyngier
2021-02-03  2:40   ` Jianyong Wu
2021-02-03  2:40     ` Jianyong Wu
2021-02-03  2:40     ` 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=74108ee1d0021acbdd7aed5b467e5432@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=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.