diff options
author | Tony Luck <tony.luck@intel.com> | 2017-10-31 10:43:39 -0700 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2017-10-31 10:58:36 -0700 |
commit | d4d1fc61eb38ff8e5af657e2d2f2290859a277f2 (patch) | |
tree | 7ea81dfb26bb9efa59638d7985b8cb49efd6d8bd /arch/ia64/Kconfig | |
parent | 0b07194bb55ed836c2cc7c22e866b87a14681984 (diff) | |
download | linux-stable-d4d1fc61eb38ff8e5af657e2d2f2290859a277f2.tar.gz linux-stable-d4d1fc61eb38ff8e5af657e2d2f2290859a277f2.tar.bz2 linux-stable-d4d1fc61eb38ff8e5af657e2d2f2290859a277f2.zip |
ia64: Update fsyscall gettime to use modern vsyscall_update
John Stultz provided the outline for this patch back in May 2014 here:
http://patches.linaro.org/patch/30501/
but I let this sit on the shelf for too long and in the intervening
years almost every field in "struct timekeeper" was changed. So this
is almost completely different from his original. Though the key change
in arch/ia64/kernel/fsys.S remains the same.
The core logic change with the updated vsyscall method is that we
preserve the base nanosecond value in shifted nanoseconds, which
allows us to avoid truncating and rounding up to the next nanosecond
every tick to avoid inconsistencies.
Thus the logic moved from
nsec = ((cycle_delta * mult)>>shift) + base_nsec;
to
nsec = ((cycle_delta * mult) + base_snsec) >> shift;
Cc: John Stultz <john.stultz@linaro.org>
Cc: linux-ia64@vger.kernel.org
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/Kconfig')
-rw-r--r-- | arch/ia64/Kconfig | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 6a15083cc366..4d032e7f1637 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig @@ -46,7 +46,7 @@ config IA64 select ARCH_TASK_STRUCT_ALLOCATOR select ARCH_THREAD_STACK_ALLOCATOR select ARCH_CLOCKSOURCE_DATA - select GENERIC_TIME_VSYSCALL_OLD + select GENERIC_TIME_VSYSCALL select SYSCTL_ARCH_UNALIGN_NO_WARN select HAVE_MOD_ARCH_SPECIFIC select MODULES_USE_ELF_RELA |