[lttng-dev] [RFC PATCH] Introduce timekeeper latch synchronization
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Fri Sep 13 11:30:20 EDT 2013
* Mathieu Desnoyers (mathieu.desnoyers at efficios.com) wrote:
[...]
> @@ -1362,29 +1398,31 @@ static inline void old_vsyscall_fixup(struct timekeeper *tk)
> static void update_wall_time(void)
> {
[...]
> - /*
> - * Update the real timekeeper.
> - *
> - * We could avoid this memcpy by switching pointers, but that
> - * requires changes to all other timekeeper usage sites as
> - * well, i.e. move the timekeeper pointer getter into the
> - * spinlocked/seqcount protected sections. And we trade this
> - * memcpy under the timekeeper_seq against one before we start
> - * updating.
> - */
> - memcpy(real_tk, tk, sizeof(*tk));
> - timekeeping_update(real_tk, action);
This line above appears to be important ;-) Let's see if my screensaver
stops misbehaving if I put it back. I will of course send a v2 after
some more testing.
By the way, if there are some standard test-bench for timekeeping, I'd
be very interested to hear about them.
Thanks!
Mathieu
> - write_seqcount_end(&timekeeper_seq);
> out:
> + timekeeper_write_end(&latch_timekeeper);
> raw_spin_unlock_irqrestore(&timekeeper_lock, flags);
> }
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list