From: Jianyong Wu <Jianyong.Wu@arm.com>
To: Marc Zyngier <maz@kernel.org>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"yangbo.lu@nxp.com" <yangbo.lu@nxp.com>,
"john.stultz@linaro.org" <john.stultz@linaro.org>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"pbonzini@redhat.com" <pbonzini@redhat.com>,
"richardcochran@gmail.com" <richardcochran@gmail.com>,
Mark Rutland <Mark.Rutland@arm.com>,
"will@kernel.org" <will@kernel.org>,
Suzuki Poulose <Suzuki.Poulose@arm.com>,
Andre Przywara <Andre.Przywara@arm.com>,
Steven Price <Steven.Price@arm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
Steve Capper <Steve.Capper@arm.com>,
Justin He <Justin.He@arm.com>, nd <nd@arm.com>
Subject: RE: [PATCH v16 0/9] Enable ptp_kvm for arm/arm64
Date: Wed, 3 Feb 2021 02:40:01 +0000 [thread overview]
Message-ID: <VE1PR08MB476648FCDC79E7F95DB59A62F4B49@VE1PR08MB4766.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <74108ee1d0021acbdd7aed5b467e5432@kernel.org>
Hi Marc,
> -----Original Message-----
> From: Marc Zyngier <maz@kernel.org>
> Sent: Tuesday, February 2, 2021 10:15 PM
> 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 <Mark.Rutland@arm.com>; will@kernel.org; Suzuki Poulose
> <Suzuki.Poulose@arm.com>; Andre Przywara <Andre.Przywara@arm.com>;
> Steven Price <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 <Steve.Capper@arm.com>; Justin He
> <Justin.He@arm.com>; nd <nd@arm.com>
> Subject: Re: [PATCH v16 0/9] Enable ptp_kvm for arm/arm64
>
> 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.
>
Great!!!
Good news for me, thanks Marc.
Thanks
Jianyong
> Thanks,
>
> M.
>
> [0] https://lore.kernel.org/r/20210202141204.3134855-1-maz@kernel.org
> --
> Jazz is not dead. It just smells funny...
prev parent reply other threads:[~2021-02-03 2:41 UTC|newest]
Thread overview: 19+ 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 ` [PATCH v16 1/9] arm64: Probe for the presence of KVM hypervisor Jianyong Wu
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 ` [PATCH v16 3/9] ptp: Reorganize ptp_kvm module to make it arch-independent Jianyong Wu
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 ` [PATCH v16 5/9] clocksource: Add clocksource id for arm arch counter Jianyong Wu
2020-12-09 6:09 ` [PATCH v16 6/9] arm64/kvm: Add hypercall service for kvm ptp Jianyong Wu
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
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
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
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-02-02 14:15 ` Marc Zyngier
2021-02-03 2:40 ` Jianyong Wu [this message]
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=VE1PR08MB476648FCDC79E7F95DB59A62F4B49@VE1PR08MB4766.eurprd08.prod.outlook.com \
--to=jianyong.wu@arm.com \
--cc=Andre.Przywara@arm.com \
--cc=Justin.He@arm.com \
--cc=Mark.Rutland@arm.com \
--cc=Steve.Capper@arm.com \
--cc=Steven.Price@arm.com \
--cc=Suzuki.Poulose@arm.com \
--cc=john.stultz@linaro.org \
--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=maz@kernel.org \
--cc=nd@arm.com \
--cc=netdev@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=richardcochran@gmail.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 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).