Messages in this thread | | | Date | Thu, 3 Sep 2020 10:23:54 +0800 | From | Leo Yan <> | Subject | Re: [PATCH v3 2/6] perf tsc: Add rdtsc() for Arm64 |
| |
Hi Peter,
On Wed, Sep 02, 2020 at 03:48:05PM +0200, Peter Zijlstra wrote: > On Wed, Sep 02, 2020 at 02:21:27PM +0100, Leo Yan wrote: > > The system register CNTVCT_EL0 can be used to retrieve the counter from > > user space. Add rdtsc() for Arm64. > > > +u64 rdtsc(void) > > +{ > > + u64 val; > > Would it make sense to put a comment in that this counter is/could-be > 'short' ? Because unlike x86-TSC, this thing isn't architecturally > specified to be 64bits wide.
Will add below comments:
According to ARM DDI 0487F.c, from Armv8.0 to Armv8.5 inclusive, the system counter is at least 56 bits wide; from Armv8.6, the counter must be 64 bits wide. So the system counter could be less than 64 bits wide and it is attributed with the flag 'cap_user_time_short' is true.
Thanks for reviewing, Leo
> > > + asm volatile("mrs %0, cntvct_el0" : "=r" (val)); > > + > > + return val; > > +} > > -- > > 2.17.1 > >
| |