From: Andrew Morton <akpm@linux-foundation.org>
To: John Stultz <johnstul@us.ibm.com>
Cc: lkml <linux-kernel@vger.kernel.org>,
"Petr Titěra" <P.Titera@century.cz>,
"Thomas Gleixner" <tglx@linutronix.de>
Subject: Re: [PATCH] time: remove xtime_cache (take 2)
Date: Mon, 12 Apr 2010 21:00:44 -0400 [thread overview]
Message-ID: <20100412210044.2ebbc058.akpm@linux-foundation.org> (raw)
In-Reply-To: <1270589451-30773-1-git-send-email-johnstul@us.ibm.com>
On Tue, 6 Apr 2010 14:30:51 -0700 John Stultz <johnstul@us.ibm.com> wrote:
> Thomas: Mind queueing this up for 2.6.35?
>
> With the earlier logarithmic time accumulation patch, xtime will now
> always be within one "tick" of the current time, instead of possibly
> half a second off.
>
> This removes the need for the xtime_cache value, which always stored the
> time at the last interrupt, so this patch cleans that up removing the
> xtime_cache related code.
>
> This patch also addresses an issue with an earlier version of this change,
> where xtime_cache was normalizing xtime, which could in some cases be
> not valid (ie: tv_nsec == NSEC_PER_SEC). This is fixed by handling
> the edge case in update_wall_time().
>
> ...
>
> --- a/kernel/time.c
> +++ b/kernel/time.c
> @@ -135,7 +135,6 @@ static inline void warp_clock(void)
> write_seqlock_irq(&xtime_lock);
> wall_to_monotonic.tv_sec -= sys_tz.tz_minuteswest * 60;
> xtime.tv_sec += sys_tz.tz_minuteswest * 60;
> - update_xtime_cache(0);
> write_sequnlock_irq(&xtime_lock);
> clock_was_set();
> }
This conflicts with your time-clean-up-warp_clock.patch, below.
Shrug, I simply ignored the rejected hunk.
From: John Stultz <johnstul@us.ibm.com>
warp_clock() currently accesses timekeeping internal state directly, which
is unnecessary. Convert it to use the proper timekeeping interfaces.
Signed-off-by: John Stultz <johnstul@us.ibm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
kernel/time.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff -puN kernel/time.c~time-clean-up-warp_clock kernel/time.c
--- a/kernel/time.c~time-clean-up-warp_clock
+++ a/kernel/time.c
@@ -132,12 +132,11 @@ SYSCALL_DEFINE2(gettimeofday, struct tim
*/
static inline void warp_clock(void)
{
- write_seqlock_irq(&xtime_lock);
- wall_to_monotonic.tv_sec -= sys_tz.tz_minuteswest * 60;
- xtime.tv_sec += sys_tz.tz_minuteswest * 60;
- update_xtime_cache(0);
- write_sequnlock_irq(&xtime_lock);
- clock_was_set();
+ struct timespec delta, adjust;
+ delta.tv_sec = sys_tz.tz_minuteswest * 60;
+ delta.tv_nsec = 0;
+ adjust = timespec_add_safe(current_kernel_time(), delta);
+ do_settimeofday(&adjust);
}
/*
_
next prev parent reply other threads:[~2010-04-13 4:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-06 21:30 [PATCH] time: remove xtime_cache (take 2) John Stultz
2010-04-13 1:00 ` Andrew Morton [this message]
2010-04-13 4:06 ` john stultz
-- strict thread matches above, loose matches on Subject: below --
2010-03-03 0:19 john stultz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100412210044.2ebbc058.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=P.Titera@century.cz \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.