[patch 7/7] timekeeping: Reduce seqcount section to updatetimekeeper/xtime

From: Thomas Gleixner
Date: Sun Nov 13 2011 - 18:20:18 EST


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 <tglx@xxxxxxxxxxxxx>
---
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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/