On Wed, 3 Apr 2019, Martin Schwidefsky wrote: > On Mon, 1 Apr 2019 12:51:50 +0100 > Vincenzo Frascino <vincenzo.frascino@xxxxxxx> wrote: > > > clock_getres in the vDSO library has to preserve the same behaviour > > of posix_get_hrtimer_res(). > > > > In particular, posix_get_hrtimer_res() does: > > sec = 0; > > ns = hrtimer_resolution; > > and hrtimer_resolution depends on the enablement of the high > > resolution timers that can happen either at compile or at run time. > > > > Fix the s390 vdso implementation of clock_getres keeping a copy of > > hrtimer_resolution in vdso data and using that directly. > > > > Cc: Martin Schwidefsky <schwidefsky@xxxxxxxxxx> > > Cc: Heiko Carstens <heiko.carstens@xxxxxxxxxx> > > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@xxxxxxx> > > --- > > arch/s390/include/asm/vdso.h | 1 + > > arch/s390/kernel/asm-offsets.c | 2 +- > > arch/s390/kernel/time.c | 1 + > > arch/s390/kernel/vdso32/clock_getres.S | 17 ++++++++++++----- > > arch/s390/kernel/vdso64/clock_getres.S | 15 ++++++++++----- > > 5 files changed, 25 insertions(+), 11 deletions(-) > > I tried this patch and in principle this works. In that regard > Acked-by: Martin Schwidefsky <schwidefsky@xxxxxxxxxx> > > But I wonder if the loop to check the update counter is really > necessary. The hrtimer_resolution value can only changes once with > the first call to hrtimer_switch_to_hres(). With the TOD clock > as the only clock available on s390 we always have the ability > to do hrtimer. It then all depends on the highres=[on|off] kernel > parameter what value we get with clock_getres(). Yes, it's not changing after boot anymore. Thanks, tglx