On 23/02/2019 10:45, Thomas Gleixner wrote: > On Fri, 22 Feb 2019, Vincenzo Frascino wrote: >> void update_vsyscall_tz(void) >> { >> - vsyscall_gtod_data.tz_minuteswest = sys_tz.tz_minuteswest; >> - vsyscall_gtod_data.tz_dsttime = sys_tz.tz_dsttime; >> + vdso_data.tz_minuteswest = sys_tz.tz_minuteswest; >> + vdso_data.tz_dsttime = sys_tz.tz_dsttime; >> } >> >> void update_vsyscall(struct timekeeper *tk) >> { >> int vclock_mode = tk->tkr_mono.clock->archdata.vclock_mode; >> - struct vsyscall_gtod_data *vdata = &vsyscall_gtod_data; >> - struct vgtod_ts *base; >> + struct vdso_data *vdata = &vdso_data; >> + struct vdso_timestamp *vdso_ts; >> u64 nsec; >> >> /* Mark the new vclock used. */ >> BUILD_BUG_ON(VCLOCK_MAX >= 32); >> WRITE_ONCE(vclocks_used, READ_ONCE(vclocks_used) | (1 << vclock_mode)); >> >> - gtod_write_begin(vdata); >> + vdso_write_begin(vdata); > > This begs the question why this update code is still architecture > specific. The vdso data is now generic, so the whole update can be generic > as well. The only x86 specific thing is this perhaps: > > int vclock_mode = tk->tkr_mono.clock->archdata.vclock_mode; > > vdata->clock_mode = vclock_mode; > > But either than can be made generic and mandatory or easily resolved with a > trivial arch_update_vsyscall() inline. > I agree, I will make it generic in the next patch series. > Thanks, > > tglx > -- Regards, Vincenzo