On Fri, Oct 27, 2017 at 03:25:28PM -0700, Mark Salyzyn wrote: > Ensure monotonic and realtime are inline, small price to pay for > high volume common request.
Does this make a noticeable difference on any workload? What does this do to the binary size? Thanks, Mark. > > Signed-off-by: Mark Salyzyn <saly...@android.com> > Cc: James Morse <james.mo...@arm.com> > Cc: Russell King <li...@armlinux.org.uk> > Cc: Catalin Marinas <catalin.mari...@arm.com> > Cc: Will Deacon <will.dea...@arm.com> > Cc: Andy Lutomirski <l...@amacapital.net> > Cc: Dmitry Safonov <dsafo...@virtuozzo.com> > Cc: John Stultz <john.stu...@linaro.org> > Cc: Mark Rutland <mark.rutl...@arm.com> > Cc: Laura Abbott <labb...@redhat.com> > Cc: Kees Cook <keesc...@chromium.org> > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Cc: Andy Gross <andy.gr...@linaro.org> > Cc: Kevin Brodsky <kevin.brod...@arm.com> > Cc: Andrew Pinski <apin...@cavium.com> > Cc: linux-kernel@vger.kernel.org > Cc: linux-arm-ker...@lists.infradead.org > > v2: > - split first CL into 4 of 7 pieces > > v3: > - rebase (unchanged) > > --- > arch/arm/vdso/vgettimeofday.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/arch/arm/vdso/vgettimeofday.c b/arch/arm/vdso/vgettimeofday.c > index 5f596911bd53..71003a1997c4 100644 > --- a/arch/arm/vdso/vgettimeofday.c > +++ b/arch/arm/vdso/vgettimeofday.c > @@ -99,7 +99,7 @@ static notrace int do_monotonic_coarse(const struct > vdso_data *vd, > > #ifdef CONFIG_ARM_ARCH_TIMER > > -static notrace u64 get_ns(const struct vdso_data *vd) > +static __always_inline notrace u64 get_ns(const struct vdso_data *vd) > { > u64 cycle_delta; > u64 cycle_now; > @@ -115,7 +115,9 @@ static notrace u64 get_ns(const struct vdso_data *vd) > return nsec; > } > > -static notrace int do_realtime(const struct vdso_data *vd, struct timespec > *ts) > +/* Code size doesn't matter (vdso is 4k/16k/64k anyway) and this is faster. > */ > +static __always_inline notrace int do_realtime(const struct vdso_data *vd, > + struct timespec *ts) > { > u64 nsecs; > u32 seq; > @@ -137,7 +139,8 @@ static notrace int do_realtime(const struct vdso_data > *vd, struct timespec *ts) > return 0; > } > > -static notrace int do_monotonic(const struct vdso_data *vd, struct timespec > *ts) > +static __always_inline notrace int do_monotonic(const struct vdso_data *vd, > + struct timespec *ts) > { > struct timespec tomono; > u64 nsecs; > -- > 2.15.0.rc2.357.g7e34df9404-goog >