diff options
author | Ingo Molnar <mingo@kernel.org> | 2015-03-27 05:09:21 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2015-03-27 05:09:21 -0400 |
commit | 4e6d7c2aa95158315902647963b359b32da5c295 (patch) | |
tree | 5141f79302e1e653cde53bab6a981a1b7bfa47b0 /arch/x86 | |
parent | 3c435c1e472ba344ee25f795f4807d4457e61f6c (diff) | |
parent | fe5fba05b46c791c95a9f34228ac495f81f72fc0 (diff) |
Merge branch 'timers/core' into perf/timer, to apply dependent patch
An upcoming patch will depend on tai_ns() and NMI-safe ktime_get_raw_fast(),
so merge timers/core here in a separate topic branch until it's all cooked
and timers/core is merged upstream.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/kernel/vsyscall_gtod.c | 24 | ||||
-rw-r--r-- | arch/x86/kvm/x86.c | 14 |
2 files changed, 19 insertions, 19 deletions
diff --git a/arch/x86/kernel/vsyscall_gtod.c b/arch/x86/kernel/vsyscall_gtod.c index c7d791f32b98..51e330416995 100644 --- a/arch/x86/kernel/vsyscall_gtod.c +++ b/arch/x86/kernel/vsyscall_gtod.c | |||
@@ -31,30 +31,30 @@ void update_vsyscall(struct timekeeper *tk) | |||
31 | gtod_write_begin(vdata); | 31 | gtod_write_begin(vdata); |
32 | 32 | ||
33 | /* copy vsyscall data */ | 33 | /* copy vsyscall data */ |
34 | vdata->vclock_mode = tk->tkr.clock->archdata.vclock_mode; | 34 | vdata->vclock_mode = tk->tkr_mono.clock->archdata.vclock_mode; |
35 | vdata->cycle_last = tk->tkr.cycle_last; | 35 | vdata->cycle_last = tk->tkr_mono.cycle_last; |
36 | vdata->mask = tk->tkr.mask; | 36 | vdata->mask = tk->tkr_mono.mask; |
37 | vdata->mult = tk->tkr.mult; | 37 | vdata->mult = tk->tkr_mono.mult; |
38 | vdata->shift = tk->tkr.shift; | 38 | vdata->shift = tk->tkr_mono.shift; |
39 | 39 | ||
40 | vdata->wall_time_sec = tk->xtime_sec; | 40 | vdata->wall_time_sec = tk->xtime_sec; |
41 | vdata->wall_time_snsec = tk->tkr.xtime_nsec; | 41 | vdata->wall_time_snsec = tk->tkr_mono.xtime_nsec; |
42 | 42 | ||
43 | vdata->monotonic_time_sec = tk->xtime_sec | 43 | vdata->monotonic_time_sec = tk->xtime_sec |
44 | + tk->wall_to_monotonic.tv_sec; | 44 | + tk->wall_to_monotonic.tv_sec; |
45 | vdata->monotonic_time_snsec = tk->tkr.xtime_nsec | 45 | vdata->monotonic_time_snsec = tk->tkr_mono.xtime_nsec |
46 | + ((u64)tk->wall_to_monotonic.tv_nsec | 46 | + ((u64)tk->wall_to_monotonic.tv_nsec |
47 | << tk->tkr.shift); | 47 | << tk->tkr_mono.shift); |
48 | while (vdata->monotonic_time_snsec >= | 48 | while (vdata->monotonic_time_snsec >= |
49 | (((u64)NSEC_PER_SEC) << tk->tkr.shift)) { | 49 | (((u64)NSEC_PER_SEC) << tk->tkr_mono.shift)) { |
50 | vdata->monotonic_time_snsec -= | 50 | vdata->monotonic_time_snsec -= |
51 | ((u64)NSEC_PER_SEC) << tk->tkr.shift; | 51 | ((u64)NSEC_PER_SEC) << tk->tkr_mono.shift; |
52 | vdata->monotonic_time_sec++; | 52 | vdata->monotonic_time_sec++; |
53 | } | 53 | } |
54 | 54 | ||
55 | vdata->wall_time_coarse_sec = tk->xtime_sec; | 55 | vdata->wall_time_coarse_sec = tk->xtime_sec; |
56 | vdata->wall_time_coarse_nsec = (long)(tk->tkr.xtime_nsec >> | 56 | vdata->wall_time_coarse_nsec = (long)(tk->tkr_mono.xtime_nsec >> |
57 | tk->tkr.shift); | 57 | tk->tkr_mono.shift); |
58 | 58 | ||
59 | vdata->monotonic_time_coarse_sec = | 59 | vdata->monotonic_time_coarse_sec = |
60 | vdata->wall_time_coarse_sec + tk->wall_to_monotonic.tv_sec; | 60 | vdata->wall_time_coarse_sec + tk->wall_to_monotonic.tv_sec; |
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 32bf19ef3115..0ee725f1896d 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -1070,19 +1070,19 @@ static void update_pvclock_gtod(struct timekeeper *tk) | |||
1070 | struct pvclock_gtod_data *vdata = &pvclock_gtod_data; | 1070 | struct pvclock_gtod_data *vdata = &pvclock_gtod_data; |
1071 | u64 boot_ns; | 1071 | u64 boot_ns; |
1072 | 1072 | ||
1073 | boot_ns = ktime_to_ns(ktime_add(tk->tkr.base_mono, tk->offs_boot)); | 1073 | boot_ns = ktime_to_ns(ktime_add(tk->tkr_mono.base, tk->offs_boot)); |
1074 | 1074 | ||
1075 | write_seqcount_begin(&vdata->seq); | 1075 | write_seqcount_begin(&vdata->seq); |
1076 | 1076 | ||
1077 | /* copy pvclock gtod data */ | 1077 | /* copy pvclock gtod data */ |
1078 | vdata->clock.vclock_mode = tk->tkr.clock->archdata.vclock_mode; | 1078 | vdata->clock.vclock_mode = tk->tkr_mono.clock->archdata.vclock_mode; |
1079 | vdata->clock.cycle_last = tk->tkr.cycle_last; | 1079 | vdata->clock.cycle_last = tk->tkr_mono.cycle_last; |
1080 | vdata->clock.mask = tk->tkr.mask; | 1080 | vdata->clock.mask = tk->tkr_mono.mask; |
1081 | vdata->clock.mult = tk->tkr.mult; | 1081 | vdata->clock.mult = tk->tkr_mono.mult; |
1082 | vdata->clock.shift = tk->tkr.shift; | 1082 | vdata->clock.shift = tk->tkr_mono.shift; |
1083 | 1083 | ||
1084 | vdata->boot_ns = boot_ns; | 1084 | vdata->boot_ns = boot_ns; |
1085 | vdata->nsec_base = tk->tkr.xtime_nsec; | 1085 | vdata->nsec_base = tk->tkr_mono.xtime_nsec; |
1086 | 1086 | ||
1087 | write_seqcount_end(&vdata->seq); | 1087 | write_seqcount_end(&vdata->seq); |
1088 | } | 1088 | } |