Hi Paolo, > -----Original Message----- > From: Paolo Bonzini <pbonz...@redhat.com> > Sent: Tuesday, September 24, 2019 10:20 PM > To: Jianyong Wu (Arm Technology China) <jianyong...@arm.com>; > net...@vger.kernel.org; yangbo...@nxp.com; john.stu...@linaro.org; > t...@linutronix.de; sean.j.christopher...@intel.com; m...@kernel.org; > richardcoch...@gmail.com; Mark Rutland <mark.rutl...@arm.com>; Will > Deacon <will.dea...@arm.com>; Suzuki Poulose > <suzuki.poul...@arm.com> > Cc: linux-kernel@vger.kernel.org; k...@vger.kernel.org; Steve Capper > <steve.cap...@arm.com>; Kaly Xin (Arm Technology China) > <kaly....@arm.com>; Justin He (Arm Technology China) > <justin...@arm.com>; nd <n...@arm.com>; linux-arm- > ker...@lists.infradead.org > Subject: Re: [RFC PATCH v3 4/6] psci: Add hvc call service for ptp_kvm. > > On 23/09/19 06:57, Jianyong Wu (Arm Technology China) wrote: > >> On 19/09/19 11:46, Jianyong Wu (Arm Technology China) wrote: > >>>> On 18/09/19 11:57, Jianyong Wu (Arm Technology China) wrote: > >>>>> Paolo Bonzini wrote: > >>>>>> This is not Y2038-safe. Please use ktime_get_real_ts64 instead, > >>>>>> and split the 64-bit seconds value between val[0] and val[1]. > >>> > >>> Val[] should be long not u32 I think, so in arm64 I can avoid that > >>> Y2038_safe, but also need rewrite for arm32. > >> > >> I don't think there's anything inherently wrong with u32 val[], and > >> as you notice it lets you reuse code between arm and arm64. It's up > >> to you and Marc to decide. > >> > > To compatible 32-bit, Integrates second value and nanosecond value as > > a nanosecond value then split it into val[0] and val[1] and split cycle > > value > into val[2] and val[3], In this way, time will overflow at Y2262. > > WDYT? > > So if I understand correctly you'd multiply by 10^9 (or better shift by > 30) the nanoseconds. > Yeah, > That works, but why not provide 5 output registers? Alternatively, take an > address as input and write there.
It will be easy, if I could have expanded the store room. But these code is the infrastructure for hypercall, I can't change them at my will. I think only value but pointer can delivered by smccc_set_retval call. > > Finally, on x86 we added an argument for the CLOCK_* that is being read > (currently only CLOCK_REALTIME, but having room for extensibility in the API > is always nice). > IMO, I will be limited by the design of hypercall on arm64, I can only design my code under it. maybe it will be better sometime but for now I could just obey it. Thanks Jianyong Wu > Paolo