Hi tglx, > -----Original Message----- > From: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Sent: Thursday, November 14, 2019 10:19 PM > To: Jianyong Wu (Arm Technology China) <Jianyong.Wu@xxxxxxx> > Cc: netdev@xxxxxxxxxxxxxxx; yangbo.lu@xxxxxxx; john.stultz@xxxxxxxxxx; > pbonzini@xxxxxxxxxx; sean.j.christopherson@xxxxxxxxx; maz@xxxxxxxxxx; > richardcochran@xxxxxxxxx; Mark Rutland <Mark.Rutland@xxxxxxx>; > will@xxxxxxxxxx; Suzuki Poulose <Suzuki.Poulose@xxxxxxx>; linux- > kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; > kvmarm@xxxxxxxxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; Steve Capper > <Steve.Capper@xxxxxxx>; Kaly Xin (Arm Technology China) > <Kaly.Xin@xxxxxxx>; Justin He (Arm Technology China) > <Justin.He@xxxxxxx>; nd <nd@xxxxxxx> > Subject: Re: [RFC PATCH v7 4/7] time: Add mechanism to recognize > clocksource in time_get_snapshot > > On Thu, 14 Nov 2019, Jianyong Wu wrote: > > From: Thomas Gleixner <tglx@xxxxxxxxxxxxx> In some scenario like > > return device time to ptp_kvm guest, we need identify the current > > clocksource outside core time code. > > A mechanism added to recognize the current clocksource by export > > clocksource id in time_get_snapshot. > > Can you please replace that with the following: > > System time snapshots are not conveying information about the current > clocksource which was used, but callers like the PTP KVM guest > implementation have the requirement to evaluate the clocksource type to > select the appropriate mechanism. > > Introduce a clocksource id field in struct clocksource which is by default set > to CSID_GENERIC (0). Clocksource implementations can set that field to a > value which allows to identify the clocksource. > > Store the clocksource id of the current clocksource in the > system_time_snapshot so callers can evaluate which clocksource was used > to take the snapshot and act accordingly. > Ok, really better. > > diff --git a/include/linux/clocksource_ids.h > > b/include/linux/clocksource_ids.h new file mode 100644 index > > 000000000000..93bec8426c44 > > --- /dev/null > > +++ b/include/linux/clocksource_ids.h > > @@ -0,0 +1,13 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ #ifndef > > +_LINUX_CLOCKSOURCE_IDS_H #define _LINUX_CLOCKSOURCE_IDS_H > > + > > +/* Enum to give clocksources a unique identifier */ enum > > +clocksource_ids { > > + CSID_GENERIC = 0, > > + CSID_ARM_ARCH_COUNTER, > > This should only add the infrastructure with just CSID_GENERIC in place. > > The ARM_ARCH variant needs to come in a seperate patch which adds the > enum and uses it in the corresponding driver. Seperate means a patch doing > only that and nothing else, i.e. not hidden in some other patch which actually > makes use of it. > Yeah, this patch should be arch independent and "CSID_ARM_ARCH_COUNTER" should be in an Separate patch. Thanks Jianyong Thanks > Thanks, > > tglx