Re: [kvm-unit-tests PATCH v1 1/2] lib/s390x: time: add wrapper for stckf

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Quoting Thomas Huth (2022-08-30 14:27:30)
[...]
> > diff --git a/lib/s390x/asm/time.h b/lib/s390x/asm/time.h
> > index 7652a151e87a..d7c2bcb4f306 100644
> > --- a/lib/s390x/asm/time.h
> > +++ b/lib/s390x/asm/time.h
> > @@ -14,6 +14,15 @@
> >   #define STCK_SHIFT_US       (63 - 51)
> >   #define STCK_MAX    ((1UL << 52) - 1)
> >   
> > +static inline uint64_t get_clock_fast(void)
> > +{
> > +     uint64_t clk;
> > +
> > +     asm volatile(" stckf %0 " : : "Q"(clk) : "memory");
> > +
> > +     return clk;
> > +}
> 
> Using clk as input parameter together with memory clobbing sounds like a bad 
> solution to me here. The Linux kernel properly uses it as output parameter 
> instead:
> 
> static inline unsigned long get_tod_clock_fast(void)
> {
>          unsigned long clk;
> 
>          asm volatile("stckf %0" : "=Q" (clk) : : "cc");
>          return clk;
> }

Yes, thanks, it is a better solution. get_clock_us() also does it this way, so while at it let's fix that, too...




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux