From: David Vrabel <david.vrabel@citrix.com>
To: John Stultz <john.stultz@linaro.org>
Cc: <xen-devel@lists.xen.org>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
<linux-kernel@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [PATCH 2/4] time: add a notifier chain for when the system time is stepped
Date: Thu, 20 Jun 2013 11:50:20 +0100 [thread overview]
Message-ID: <51C2DE6C.2000601@citrix.com> (raw)
In-Reply-To: <51C1E1B6.8090203@linaro.org>
On 19/06/13 17:52, John Stultz wrote:
> On 06/19/2013 08:25 AM, David Vrabel wrote:
>> From: David Vrabel <david.vrabel@citrix.com>
>>
>> The high resolution timer code gets notified of step changes to the
>> system time with clock_was_set() or clock_was_set_delayed() calls. If
>> other parts of the kernel require similar notification there is no
>> clear place to hook into.
>>
>> Add a clock_was_set atomic notifier chain
>> (clock_was_set_notifier_list) and call this in place of
>> clock_was_set(). If the timekeeping locks are held, the calls are
>> deferred to a new tasklet.
>>
>> The hrtimer code adds a notifier block to this chain and uses it to
>> call (the now internal) clock_was_set(). Since the timekeeping code
>> does not call the chain from the timer irq clock_was_set_delayed() and
>> associated code can be removed.
>
> So on my initial quick review, this *looks* pretty reasonable. I get a
> little worried about interface abuse (ie: random drivers trying to hook
> into clock_was_set_notifier_list), but we can move that into
> timekeeper_internal.h or something similar to limit that.
I can move the actual list to time.c but we still need to provide a
register_clock_was_set_notifier() call in linux/time.h as the two
current users (Xen and hrtimers) don't include and probably should not
include timekeeper_internal.h.
> The other issue here is we've been burned pretty badly in the past with
> changes to clock_was_set(), as its key to keeping timers in line with
> timekeeping. So this will need a fair amount of testing and run time
> before this gets merged, so 3.12 is what we'd be targeting at the
> earliest (its getting a bit late for taking changes for 3.11 anyway).
hrtimer's clock_was_set() is called at the same point in the non-delayed
case.
For the delayed case, it used to be called at the beginning of the
hrtimer softirq and now it is called from a tasklet, but if I understand
this correctly, the tasklet softirq will be called before the hrtimer
one so this should give the same behaviour.
> If you want to try to push patch 1/4 in for 3.11 via the Xen tree, I'll
> see about queuing the other three for hopefully 3.12.
3.12 is fine. I'd prefer to have a correct and well-tested fix merged.
David
next prev parent reply other threads:[~2013-06-20 10:50 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-19 15:25 [PATCHv4 0/4] xen: maintain an accurate persistent clock in more cases David Vrabel
2013-06-19 15:25 ` [PATCH 1/4] xen: disable non-boot VCPUs during suspend David Vrabel
2013-06-19 15:25 ` David Vrabel
2013-06-19 17:11 ` Konrad Rzeszutek Wilk
2013-06-19 17:11 ` Konrad Rzeszutek Wilk
2013-06-20 10:01 ` David Vrabel
2013-06-20 10:01 ` David Vrabel
2013-06-20 10:38 ` Jan Beulich
2013-06-20 10:38 ` [Xen-devel] " Jan Beulich
2013-06-20 11:46 ` David Vrabel
2013-06-20 11:46 ` David Vrabel
2013-06-19 15:25 ` [PATCH 2/4] time: add a notifier chain for when the system time is stepped David Vrabel
2013-06-19 15:25 ` David Vrabel
2013-06-19 16:52 ` John Stultz
2013-06-19 16:52 ` John Stultz
2013-06-19 17:13 ` Konrad Rzeszutek Wilk
2013-06-19 17:38 ` John Stultz
2013-06-19 17:38 ` John Stultz
2013-06-19 17:13 ` Konrad Rzeszutek Wilk
2013-06-20 10:50 ` David Vrabel
2013-06-20 10:50 ` David Vrabel [this message]
2013-06-19 15:25 ` [PATCH 3/4] x86/xen: sync the wallclock " David Vrabel
2013-06-20 10:43 ` Jan Beulich
2013-06-20 10:43 ` [Xen-devel] " Jan Beulich
2013-06-19 15:25 ` David Vrabel
2013-06-19 15:25 ` [PATCH 4/4] x86/xen: sync the CMOS RTC as well as the Xen wallclock David Vrabel
2013-06-19 15:25 ` David Vrabel
-- strict thread matches above, loose matches on Subject: below --
2013-06-20 19:16 [PATCHv5 0/4] xen: maintain an accurate persistent clock in more cases David Vrabel
2013-06-20 19:16 ` [PATCH 2/4] time: add a notifier chain for when the system time is stepped David Vrabel
2013-06-21 7:57 ` Thomas Gleixner
2013-06-21 12:41 ` David Vrabel
2013-06-21 23:06 ` Thomas Gleixner
2013-06-21 23:06 ` Thomas Gleixner
2013-06-24 10:51 ` David Vrabel
2013-06-24 10:51 ` David Vrabel
2013-06-24 16:30 ` Thomas Gleixner
2013-06-24 17:00 ` David Vrabel
2013-06-24 17:00 ` David Vrabel
2013-06-24 17:50 ` John Stultz
2013-06-24 17:50 ` John Stultz
2013-06-24 19:55 ` Thomas Gleixner
2013-06-24 19:55 ` Thomas Gleixner
2013-06-24 16:30 ` Thomas Gleixner
2013-06-21 12:41 ` David Vrabel
2013-06-21 16:22 ` John Stultz
2013-06-21 16:22 ` John Stultz
2013-06-21 7:57 ` Thomas Gleixner
2013-06-20 19:16 ` David Vrabel
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=51C2DE6C.2000601@citrix.com \
--to=david.vrabel@citrix.com \
--cc=john.stultz@linaro.org \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=xen-devel@lists.xen.org \
/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.