All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krister Johansen <kjlx@templeofstupid.com>
To: Jan Beulich <jbeulich@suse.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	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>,
	xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Anthony Liguori <aliguori@amazon.com>,
	David Reaver <me@davidreaver.com>,
	Brendan Gregg <brendan@intel.com>,
	Juergen Gross <jgross@suse.com>,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: [PATCH linux-next v2] x86/xen/time: prefer tsc as clocksource when it is invariant
Date: Mon, 12 Dec 2022 14:05:19 -0800	[thread overview]
Message-ID: <20221212220519.GA1935@templeofstupid.com> (raw)
In-Reply-To: <1eb6048b-bf23-78a0-9c3c-54bbd12c3864@suse.com>

On Mon, Dec 12, 2022 at 05:46:29PM +0100, Jan Beulich wrote:
> On 12.12.2022 17:05, Krister Johansen wrote:
> > Both the Intel SDM[4] and the Xen tsc documentation explain that marking
> > a tsc as invariant means that it should be considered stable by the OS
> > and is elibile to be used as a wall clock source.  The Xen documentation
> > further clarifies that this is only reliable on HVM and PVH because PV
> > cannot intercept a cpuid instruction.
> 
> Without meaning to express a view on the argumentation as a whole, this
> PV aspect is suspicious. Unless you open-code a use of the CPUID insn
> in the kernel, all uses of CPUID are going to be processed by Xen by
> virtue of the respective pvops hook. Documentation says what it says
> for environments where this might not be the case.

Thanks, appreciate the clarification here. Just restating this for my
own understanding: your advice would be to drop this check below?

> > +	if (!(xen_hvm_domain() || xen_pvh_domain()))
> > +		return 0;

And then update the commit message to dispense with the distinction
between HVM, PV, and PVH?

> > +	cpuid(xen_cpuid_base() + 3, &eax, &ebx, &ecx, &edx);
> 
> Xen leaf 3 has sub-leaves, so I think you need to set ecx to zero before
> this call.

The cpuid() inline in arch/x86/include/asm/processor.h assigns zero to
ecx prior to calling __cpuid.  In arch/x86/boot/cpuflags.c the macros
are a little different, but it looks like there too, the macro passes 0
as an input argument to cpuid_count which ends up being %ecx.  Happy to
fix this up if I'm looking at the wrong cpuid functions, though.

-K


  reply	other threads:[~2022-12-12 22:05 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-08 16:36 [PATCH linux-next] x86/xen/time: prefer tsc as clocksource when it is invariant Krister Johansen
2022-12-09 19:32 ` Boris Ostrovsky
2022-12-12 15:57   ` Krister Johansen
2022-12-12 16:05     ` [PATCH linux-next v2] " Krister Johansen
2022-12-12 16:46       ` Jan Beulich
2022-12-12 22:05         ` Krister Johansen [this message]
2022-12-13  7:23           ` Jan Beulich
2022-12-13 18:58             ` Krister Johansen
2022-12-14  8:17               ` Jan Beulich
2022-12-14 18:01                 ` Krister Johansen
2022-12-12 18:48       ` Boris Ostrovsky
2022-12-12 22:09         ` Krister Johansen
2022-12-13 21:25           ` Boris Ostrovsky
2022-12-14 18:01             ` Krister Johansen
2022-12-14 21:46               ` Boris Ostrovsky
2022-12-16 16:20                 ` 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=20221212220519.GA1935@templeofstupid.com \
    --to=kjlx@templeofstupid.com \
    --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=linux-kernel@vger.kernel.org \
    --cc=me@davidreaver.com \
    --cc=mingo@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=tglx@linutronix.de \
    --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.