From: Thomas Gleixner <tglx@linutronix.de>
To: Krister Johansen <kjlx@templeofstupid.com>
Cc: xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
Juergen Gross <jgross@suse.com>, Jan Beulich <jbeulich@suse.com>,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
Anthony Liguori <aliguori@amazon.com>,
David Reaver <me@davidreaver.com>,
Brendan Gregg <brendan@intel.com>
Subject: Re: [PATCH linux-next 2/2] x86/xen/time: cleanup xen_tsc_safe_clocksource
Date: Tue, 21 Feb 2023 10:14:54 +0100 [thread overview]
Message-ID: <871qmjpegh.ffs@tglx> (raw)
In-Reply-To: <20230221055117.GA1934@templeofstupid.com>
On Mon, Feb 20 2023 at 21:51, Krister Johansen wrote:
> On Mon, Feb 20, 2023 at 08:14:40PM -0800, Krister Johansen wrote:
>> > static bool __init xen_tsc_safe_clocksource(void)
>> > {
>> > u32 eax, ebx. ecx, edx;
>> >
>> > /* Leaf 4, sub-leaf 0 (0x40000x03) */
>> > cpuid_count(xen_cpuid_base() + 3, 0, &eax, &ebx, &ecx, &edx);
>> >
>> > return ebx == XEN_CPUID_TSC_MODE_NEVER_EMULATE;
>> > }
>>
>> I'm all for simplifying. I'm happy to clean up that return to be more
>> idiomatic. I was under the impression, perhaps mistaken, though, that
>> the X86_FEATURE_CONSTANT_TSC, X86_FEATURE_NONSTOP_TSC, and
>> check_tsc_unstable() checks were actually serving a purpose: to ensure
>> that we don't rely on the tsc in environments where it's being emulated
>> and the OS would be better served by using a PV clock. Specifically,
>> kvmclock_init() makes a very similar set of checks that I also thought
>> were load-bearing.
>
> Bah, what I meant to say was emulated, unstable, or otherwise unsuitable
> for use as a clocksource. IOW, even if TSC_MODE_NEVER_EMULATE is
> set, it's possible that a user is attempting a migration from a cpu
> that's not invariant, and we'd still want to check for that case and
> fall back to a PV clocksource, correct?
Sure. But a life migration from a NEVER_EMULATE to a non-invariant host
is a patently bad idea and has nothing to do with the __init function,
which is gone at that point already.
What I wanted to say:
static bool __init xen_tsc_safe_clocksource(void)
{
......
/* Leaf 4, sub-leaf 0 (0x40000x03) */
cpuid_count(xen_cpuid_base() + 3, 0, &eax, &ebx, &ecx, &edx);
return ebx == XEN_CPUID_TSC_MODE_NEVER_EMULATE;
}
I didn't have the full context and was just looking at the condition.
Now I checked the full context and I think that except for the
if (check_tsc_unstable())
check everything else can go away unless you do not trust the hypervisor
that it only sets the NEVER_EMULATE bit when CONSTANT and NONSTOP are
set as well. But yeah, you might prefer to be paranoid. It's virt after
all.
Thanks,
tglx
next prev parent reply other threads:[~2023-02-21 9:15 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-20 17:16 [PATCH linux-next 0/2] x86/xen TSC related cleanups Krister Johansen
2023-02-20 17:16 ` [PATCH linux-next 1/2] xen: update arch/x86/include/asm/xen/cpuid.h Krister Johansen
2023-02-20 17:17 ` [PATCH linux-next 2/2] x86/xen/time: cleanup xen_tsc_safe_clocksource Krister Johansen
2023-02-20 22:01 ` Thomas Gleixner
2023-02-21 4:14 ` Krister Johansen
2023-02-21 5:51 ` Krister Johansen
2023-02-21 8:47 ` Juergen Gross
2023-02-21 17:22 ` Krister Johansen
2023-02-21 9:14 ` Thomas Gleixner [this message]
2023-02-21 17:21 ` Krister Johansen
2023-02-23 14:34 ` Marcelo Tosatti
2023-02-23 17:18 ` Krister Johansen
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=871qmjpegh.ffs@tglx \
--to=tglx@linutronix.de \
--cc=aliguori@amazon.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=brendan@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jbeulich@suse.com \
--cc=jgross@suse.com \
--cc=kjlx@templeofstupid.com \
--cc=linux-kernel@vger.kernel.org \
--cc=me@davidreaver.com \
--cc=mingo@redhat.com \
--cc=mtosatti@redhat.com \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.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.