mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sathyanarayanan Kuppuswamy  <sathyanarayanan.kuppuswamy@linux.intel.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@intel.com>,
	"Kirill A. Shutemov" <kirill@shutemov.name>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Andi Kleen <ak@linux.intel.com>,
	x86@kernel.org, linux-kernel@vger.kernel.org,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	Juergen Gross <jgross@suse.com>, Deep Shah <sdeep@vmware.com>,
	"VMware, Inc." <pv-drivers@vmware.com>
Subject: Re: [PATCH] x86/paravirt: Fix build PARAVIRT_XXL=y without XEN_PV
Date: Wed, 17 Nov 2021 15:04:11 -0800	[thread overview]
Message-ID: <d826f932-a6a4-de7d-b0ea-f8e1f9bfe012@linux.intel.com> (raw)
In-Reply-To: <YZVvdyHhPTzzZbiu@zn.tnic>



On 11/17/21 1:09 PM, Borislav Petkov wrote:
> On Wed, Nov 17, 2021 at 12:54:56PM -0800, Sathyanarayanan Kuppuswamy wrote:
>> It is not only for idle case. We also need to support emulation of
>> normal halt case (which is used in cases like reboot or
>> early_fixup_exception(), etc.).
> 
> This is more of that piecemeal feeding of people asking why. Please sit
> down and explain exactly and in detail why you need this. "We need to
> support emulation" is not nearly good enough.
> 
> I don't think any of the people who replied on this thread *actually*
> know *why* PV support is needed.
> 

We need PV support to handle halt() and safe_halt() cases.

HLT instruction is generally used in cases like reboot, idle and
exception fixup handlers. For the idle case, interrupts will be enabled
(using STI) before the HLT instruction (this is also called
safe_halt()).

In TDX guest, to support HLT instruction, it has to be emulated using
a hypercall (aka TDVMCALL).

We have the following three ways to emulate the HLT instruction:

1. Directly substitute TDVMCALLs in places where we require emulation.
2. Use #VE exception handler to emulate it (In TDX guest, executing HLT
    will lead to #VE exception).
3. Emulate it using pv_ops

Since option#1 is not a scalable approach, it can be ignored. Option #2
is also not preferred because, we cannot differentiate between safe
halt and normal halt use cases in the exception handler. This
differentiation is needed to add STI before the hypercall for safe halt 
use case. That leaves us with using pv_ops, which provides separate
methods to emulate safe and normal halt cases.

-- 
Sathyanarayanan Kuppuswamy
Linux Kernel Developer

  reply	other threads:[~2021-11-17 23:04 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-17 18:14 Kirill A. Shutemov
2021-11-17 18:35 ` Peter Zijlstra
2021-11-17 18:42   ` Kirill A. Shutemov
2021-11-17 18:46     ` Sathyanarayanan Kuppuswamy
2021-11-17 18:48       ` Borislav Petkov
2021-11-17 19:11         ` Dave Hansen
2021-11-17 19:13         ` Sathyanarayanan Kuppuswamy
2021-11-17 19:57           ` Dave Hansen
2021-11-17 20:54             ` Sathyanarayanan Kuppuswamy
2021-11-17 21:09               ` Borislav Petkov
2021-11-17 23:04                 ` Sathyanarayanan Kuppuswamy [this message]
2021-11-17 23:23                   ` Peter Zijlstra
2021-11-17 23:57                     ` Sathyanarayanan Kuppuswamy
2021-11-17 23:33                   ` Dave Hansen
2021-11-18  1:26                     ` Sathyanarayanan Kuppuswamy
2021-11-18  9:13                       ` Borislav Petkov
2021-11-17 19:02       ` Peter Zijlstra
2021-11-18  6:23 ` Juergen Gross
2021-11-19 10:21   ` Kirill A. Shutemov
2021-11-19  7:51 ` Lai Jiangshan
2021-11-19 10:20   ` Kirill A. Shutemov
2021-11-19 10:27     ` Juergen Gross
2021-11-20  1:23     ` Lai Jiangshan
2021-11-22 12:55       ` Juergen Gross

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=d826f932-a6a4-de7d-b0ea-f8e1f9bfe012@linux.intel.com \
    --to=sathyanarayanan.kuppuswamy@linux.intel.com \
    --cc=ak@linux.intel.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@intel.com \
    --cc=jgross@suse.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=pv-drivers@vmware.com \
    --cc=sdeep@vmware.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®