On 09/10/19 10:18, Jianyong Wu (Arm Technology China) wrote: > Hi Paolo, > >> -----Original Message----- >> From: Paolo Bonzini <[email protected]> >> Sent: Wednesday, October 9, 2019 2:36 PM >> To: Jianyong Wu (Arm Technology China) <[email protected]>; Marc >> Zyngier <[email protected]>; [email protected]; [email protected]; >> [email protected]; [email protected]; [email protected]; >> [email protected]; Mark Rutland <[email protected]>; Will >> Deacon <[email protected]>; Suzuki Poulose >> <[email protected]> >> Cc: [email protected]; [email protected]; Steve Capper >> <[email protected]>; Kaly Xin (Arm Technology China) >> <[email protected]>; Justin He (Arm Technology China) >> <[email protected]>; nd <[email protected]>; linux-arm- >> [email protected] >> Subject: Re: [RFC PATCH v3 4/6] psci: Add hvc call service for ptp_kvm. >> >> On 09/10/19 07:21, Jianyong Wu (Arm Technology China) wrote: >>> As ptp_kvm clock has fixed to arm arch system counter in patch set v4, >>> we need check if the current clocksource is system counter when return >>> clock cycle in host, so a helper needed to return the current >>> clocksource. Could I add this helper in next patch set? >> >> You don't need a helper. You need to return the ARM arch counter >> clocksource in the struct system_counterval_t that you return. >> get_device_system_crosststamp will then check that the clocksource >> matches the active one. > > We must ensure both of the host and guest using the same clocksource. > get_device_system_crosststamp will check the clocksource of guest and we also > need check > the clocksource in host, and struct type can't be transferred from host to > guest using arm hypercall. > now we lack of a mechanism to check the current clocksource. I think this > will be useful if we add one.
Got it---yes, I think adding a struct clocksource to struct system_time_snapshot would make sense. Then the hypercall can just use ktime_get_snapshot and fail if the clocksource is not the ARM arch counter. John (Stultz), does that sound good to you? The context is that Jianyong would like to add a hypercall that returns a (cycles, nanoseconds) pair to the guest. On x86 we're relying on the vclock_mode field that is already there for the vDSO, but being able to just use ktime_get_snapshot would be much nicer. Paolo

