From: Keir Fraser <keir.fraser@eu.citrix.com>
To: "Tian, Kevin" <kevin.tian@intel.com>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH] Adjust time init sequence
Date: Wed, 10 Dec 2008 13:49:19 +0000 [thread overview]
Message-ID: <C565795F.B17%keir.fraser@eu.citrix.com> (raw)
In-Reply-To: <0A882F4D99BBF6449D58E61AAFD7EDD601E23C85@pdsmsx502.ccr.corp.intel.com>
Is it really safe to use NOW() before init_percpu_time()? Seems dodgy.
Since calibration points are sync'ed across all CPUs on Xen 3.3 and
unstable, trying to ensure that the first calibration period across all CPUs
is equal is a lost cause isn't it?
-- Keir
On 10/12/2008 13:10, "Tian, Kevin" <kevin.tian@intel.com> wrote:
> Adjust time init sequence
>
> percpu timer init for BSP happens within init_xen_time,
> while CMOS access at end may take up to 1s. This may
> make 1st trigger to calibration timer happens >1s interval
> and elapsed local stime for BSP also exceed 1s. However
> percpu timer init happens after that point for APs, which
> will then have a <1s elapsed local stime at 1st calibration.
> That leads to distinct mul_frac among cores, which can
> cause up to 6ms system time skew in the start. This is
> not big issue, since gradually xen calibration framework
> closes that gap. But it's still better to avoid that big
> skew in early boot phase.
>
> Signed-off-by Kevin Tian <kevin.tian@intel.com>
>
> diff -r 85b2f4aafea4 xen/arch/x86/time.c
> --- a/xen/arch/x86/time.c Tue Dec 09 20:56:23 2008 -0500
> +++ b/xen/arch/x86/time.c Tue Dec 09 22:21:07 2008 -0500
> @@ -1095,7 +1095,7 @@
>
> local_irq_save(flags);
> rdtscll(t->local_tsc_stamp);
> - now = !plt_src.read_counter ? 0 : read_platform_stime();
> + now = read_platform_stime();
> local_irq_restore(flags);
>
> t->stime_master_stamp = now;
> @@ -1118,12 +1118,13 @@
>
> open_softirq(TIME_CALIBRATE_SOFTIRQ, local_time_calibration);
>
> - init_percpu_time();
> + do_settime(get_cmos_time(), 0, 0);
>
> stime_platform_stamp = 0;
> init_platform_timer();
>
> - do_settime(get_cmos_time(), 0, NOW());
> + /* init bsp percpu time after platform timer initialized, similar as AP
> */
> + init_percpu_time();
>
> return 0;
> }
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
next prev parent reply other threads:[~2008-12-10 13:49 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-10 13:10 [PATCH] Adjust time init sequence Tian, Kevin
2008-12-10 13:49 ` Keir Fraser [this message]
2008-12-11 0:23 ` Tian, Kevin
2008-12-11 0:44 ` Keir Fraser
2008-12-11 0:47 ` Tian, Kevin
2008-12-11 4:45 ` Tian, Kevin
2008-12-11 9:04 ` Keir Fraser
2008-12-11 9:06 ` Tian, Kevin
2008-12-11 13:12 ` Keir Fraser
2008-12-12 3:40 ` Tian, Kevin
2008-12-12 9:08 ` Keir Fraser
2008-12-12 10:10 ` Jan Beulich
2008-12-12 10:38 ` Keir Fraser
2008-12-12 16:40 ` Tian, Kevin
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=C565795F.B17%keir.fraser@eu.citrix.com \
--to=keir.fraser@eu.citrix.com \
--cc=kevin.tian@intel.com \
--cc=xen-devel@lists.xensource.com \
/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.