The calculation of the timekeeping values is now decoupled from timekeeper/xtime which are used by the readers. So we can confine the seqcount section to the mere update of the reader side data. Signed-off-by: Thomas Gleixner --- kernel/time/timekeeping.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) Index: linux-2.6-tip/kernel/time/timekeeping.c =================================================================== --- linux-2.6-tip.orig/kernel/time/timekeeping.c +++ linux-2.6-tip/kernel/time/timekeeping.c @@ -986,7 +986,10 @@ static void update_wall_time(void) xtime_calc.tv_sec++; second_overflow(); } +} +static void update_timekeeper(void) +{ timekeeper = tk_calc; xtime = xtime_calc; @@ -1126,10 +1129,13 @@ struct timespec get_monotonic_coarse(voi */ void do_timer(unsigned long ticks) { + update_wall_time(); + write_seqcount_begin(&xtime_seq); jiffies_64 += ticks; - update_wall_time(); + update_timekeeper(); write_seqcount_end(&xtime_seq); + calc_global_load(ticks); } -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/