From: Keir Fraser <keir.xen@gmail.com>
To: "Tian, Kevin" <kevin.tian@intel.com>, Jan Beulich <JBeulich@novell.com>
Cc: xen devel <xen-devel@lists.xensource.com>
Subject: Re: [PATCH] x86, cpuidle: remove assertion on X86_FEATURE_TSC_RELIABLE
Date: Fri, 13 May 2011 10:15:15 +0100 [thread overview]
Message-ID: <C9F2B533.1A3BD%keir.xen@gmail.com> (raw)
In-Reply-To: <625BA99ED14B2D499DC4E29D8138F1505C8F0A4C34@shsmsx502.ccr.corp.intel.com>
On 13/05/2011 09:49, "Tian, Kevin" <kevin.tian@intel.com> wrote:
>> From: Keir Fraser [mailto:keir.xen@gmail.com]
>> Sent: Friday, May 13, 2011 4:29 PM
>>
>> On 13/05/2011 08:14, "Jan Beulich" <JBeulich@novell.com> wrote:
>>
>>>> Looks like I just got the assertion the wrong way round, should be
>>>> ASSERT(!boot_cpu_has(X86_FEATURE_TSC_RELIABLE)).
>>>
>>> No, the assertion is correct imo (since tsc_check_writability() bails
>>> immediately when boot_cpu_has(X86_FEATURE_TSC_RELIABLE)).
>>
>> The current idea of TSC_RELIABLE is it means the platform ensures that all
>> TSCs are in lock step, at constant rate, never stopping even in C3. Hence we
>
> How about a system without NONSTOP_TSC, but with deep cstate disabled? This
> case we could still deem it as reliable.
Yes, I see TSC_RELIABLE as == NONSTOP_TSC && CONSTANT_TSC. If we have deep
sleep disabled than we have simply TSC_RELIABLE == CONSTANT_TSC.
>> don't need to modify TSCs, hence we don't need to check TSC writability. And
>> also, hence we shouldn't get to the write_tsc() in cstate_restore_tsc()
>> (since
>> TSC_RELIABLE should imply NONSTOP_TSC, and hence we should bail early
>> from cstate_restore_tsc()).
>
> Such implication simply causes confusions. If it's really the point that
> TSC_RELIABLE
> implicates no any write to tsc, then we should make it consistently checked
> every
> where.
Yes I think actually we can simply put ASSERT(!TSC_RELIABLE) inside
write_tsc().
> Say in cstate_restore_tsc, we can just check TSC_RELIABLE to avoid the
> assertion.
>
>>
>>> But the problem Kevin reports is exactly what I expected when we
>>> discussed the whole change.
>>
>> Well I don't understand that.
>>
>> Nevertheless, I feel I'm playing devil's advocate here and batting on DanM's
>> side for something I don't consider a major issue. If someone wants to clean
>> this up and come up with (possibly different and new) documented and
>> consistently applied semantics for these TSC feature flags, please go ahead
>> and
>> propose it. And we'll see who comes out to care and bat against it.
>
> I'll take a further look to understand it and then may send out a cleanup
> patch later.
>
>>
>> As it is, I'm still of the opinion that the smallest correct fix would be to
>> invert
>> the assertion predicate.
>>
>
> For now, I suggest to remove the assertion before the whole logic is cleaned
> up.
> it's not wise to break a working system by adding assertion on a
> to-be-discussed
> assumption. :-)
I'll move the fixed assertion into write_tsc() in xen-unstable, and remove
entirely from the stable branches.
-- Keir
> Thanks
> Kevin
next prev parent reply other threads:[~2011-05-13 9:15 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-13 2:45 [PATCH] x86, cpuidle: remove assertion on X86_FEATURE_TSC_RELIABLE Tian, Kevin
2011-05-13 5:55 ` Keir Fraser
2011-05-13 6:01 ` Tian, Kevin
2011-05-13 7:14 ` Jan Beulich
2011-05-13 7:28 ` Tian, Kevin
2011-05-13 8:17 ` Jan Beulich
2011-05-13 8:29 ` Keir Fraser
2011-05-13 8:49 ` Tian, Kevin
2011-05-13 9:15 ` Keir Fraser [this message]
2011-05-13 9:42 ` Jan Beulich
2011-05-17 0:51 ` Tian, Kevin
2011-05-13 17:16 ` Dan Magenheimer
2011-05-17 0:50 ` Tian, Kevin
2011-05-17 7:58 ` Keir Fraser
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=C9F2B533.1A3BD%keir.xen@gmail.com \
--to=keir.xen@gmail.com \
--cc=JBeulich@novell.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.