From: Peter Zijlstra <peterz@infradead.org>
To: "Michael Kelley (LINUX)" <mikelley@microsoft.com>
Cc: Tianyu Lan <ltykernel@gmail.com>,
"luto@kernel.org" <luto@kernel.org>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"mingo@redhat.com" <mingo@redhat.com>,
"bp@alien8.de" <bp@alien8.de>,
"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
"x86@kernel.org" <x86@kernel.org>,
"hpa@zytor.com" <hpa@zytor.com>,
"seanjc@google.com" <seanjc@google.com>,
"pbonzini@redhat.com" <pbonzini@redhat.com>,
"jgross@suse.com" <jgross@suse.com>,
Tianyu Lan <Tianyu.Lan@microsoft.com>,
"kirill@shutemov.name" <kirill@shutemov.name>,
"jiangshan.ljs@antgroup.com" <jiangshan.ljs@antgroup.com>,
"ashish.kalra@amd.com" <ashish.kalra@amd.com>,
"srutherford@google.com" <srutherford@google.com>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
"anshuman.khandual@arm.com" <anshuman.khandual@arm.com>,
"pawan.kumar.gupta@linux.intel.com"
<pawan.kumar.gupta@linux.intel.com>,
"adrian.hunter@intel.com" <adrian.hunter@intel.com>,
"daniel.sneddon@linux.intel.com" <daniel.sneddon@linux.intel.com>,
"alexander.shishkin@linux.intel.com"
<alexander.shishkin@linux.intel.com>,
"sandipan.das@amd.com" <sandipan.das@amd.com>,
"ray.huang@amd.com" <ray.huang@amd.com>,
"brijesh.singh@amd.com" <brijesh.singh@amd.com>,
"michael.roth@amd.com" <michael.roth@amd.com>,
"thomas.lendacky@amd.com" <thomas.lendacky@amd.com>,
"venu.busireddy@oracle.com" <venu.busireddy@oracle.com>,
"sterritt@google.com" <sterritt@google.com>,
"tony.luck@intel.com" <tony.luck@intel.com>,
"samitolvanen@google.com" <samitolvanen@google.com>,
"fenghua.yu@intel.com" <fenghua.yu@intel.com>,
"pangupta@amd.com" <pangupta@amd.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"linux-hyperv@vger.kernel.org" <linux-hyperv@vger.kernel.org>,
"linux-arch@vger.kernel.org" <linux-arch@vger.kernel.org>
Subject: Re: [RFC PATCH V6 02/14] x86/sev: Add Check of #HV event in path
Date: Wed, 31 May 2023 17:48:32 +0200 [thread overview]
Message-ID: <20230531154832.GA428966@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <BYAPR21MB16887196D3DFFCB52EAC546AD748A@BYAPR21MB1688.namprd21.prod.outlook.com>
On Wed, May 31, 2023 at 02:50:50PM +0000, Michael Kelley (LINUX) wrote:
> I'm jumping in to answer some of the basic questions here. Yesterday,
> there was a discussion about nested #HV exceptions, so maybe some of
> this is already understood, but let me recap at a higher level, provide some
> references, and suggest the path forward.
> 2) For the Restricted Interrupt Injection code, Tianyu will look at
> how to absolutely minimize the impact in the hot code paths,
> particularly when SEV-SNP is not active. Hopefully the impact can
> be a couple of instructions at most, or even less with the use of
> other existing kernel techniques. He'll look at the other things you've
> commented on and get the code into a better state. I'll work with
> him on writing commit messages and comments that explain what's
> going on.
So from what I understand of all this SEV-SNP/#HV muck is that it is
near impossible to get right without ucode/hw changes. Hence my request
to Tom to look into that.
The feature as specified in the AMD documentation seems fundamentally
buggered.
Specifically #HV needs to be IST because hypervisor can inject at any
moment, irrespective of IF or anything else -- even #HV itself. This
means also in the syscall gap.
Since it is IST, a nested #HV is instant stack corruption -- #HV can
attempt to play stack games as per the copied #VC crap (which I'm not at
all convinced about being correct itself), but this doesn't actually fix
anything, all you need is a single instruction window to wreck things.
Because as stated, the whole premise is that the hypervisor is out to
get you, you must not leave it room to wiggle. As is, this is security
through prayer, and we don't do that.
In short; I really want a solid proof that what you propose to implement
is correct and not wishful thinking.
next prev parent reply other threads:[~2023-05-31 15:49 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-15 16:59 [RFC PATCH V6 00/14] x86/hyperv/sev: Add AMD sev-snp enlightened guest support on hyperv Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 01/14] x86/sev: Add a #HV exception handler Tianyu Lan
2023-05-16 9:30 ` Peter Zijlstra
2023-05-17 9:01 ` Tianyu Lan
2023-05-30 12:16 ` Gupta, Pankaj
2023-05-30 14:35 ` Peter Zijlstra
2023-05-30 15:59 ` Tom Lendacky
2023-05-30 18:52 ` Peter Zijlstra
2023-05-30 19:03 ` Dave Hansen
2023-05-31 9:14 ` Peter Zijlstra
2023-06-07 18:19 ` Tom Lendacky
2023-06-06 6:00 ` Gupta, Pankaj
2023-06-06 7:50 ` Peter Zijlstra
2023-05-30 15:18 ` Dave Hansen
2023-05-15 16:59 ` [RFC PATCH V6 02/14] x86/sev: Add Check of #HV event in path Tianyu Lan
2023-05-16 9:32 ` Peter Zijlstra
2023-05-17 9:55 ` Tianyu Lan
2023-05-17 13:09 ` Peter Zijlstra
2023-05-31 14:50 ` Michael Kelley (LINUX)
2023-05-31 15:48 ` Peter Zijlstra [this message]
2023-05-31 15:58 ` Michael Kelley (LINUX)
2023-05-15 16:59 ` [RFC PATCH V6 03/14] x86/sev: Add AMD sev-snp enlightened guest support on hyperv Tianyu Lan
2023-05-16 9:40 ` Peter Zijlstra
2023-05-16 15:38 ` Dionna Amalie Glaze
2023-05-15 16:59 ` [RFC PATCH V6 04/14] x86/sev: optimize system vector processing invoked from #HV exception Tianyu Lan
2023-05-16 10:23 ` Peter Zijlstra
2023-05-17 13:28 ` Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 05/14] x86/hyperv: Add sev-snp enlightened guest static key Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 06/14] x86/hyperv: Mark Hyper-V vp assist page unencrypted in SEV-SNP enlightened guest Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 07/14] x86/hyperv: Set Virtual Trust Level in VMBus init message Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 08/14] x86/hyperv: Use vmmcall to implement Hyper-V hypercall in sev-snp enlightened guest Tianyu Lan
2023-05-16 10:29 ` Peter Zijlstra
2023-05-15 16:59 ` [RFC PATCH V6 09/14] clocksource/drivers/hyper-v: decrypt hyperv tsc page " Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 10/14] hv: vmbus: Mask VMBus pages unencrypted for " Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 11/14] drivers: hv: Decrypt percpu hvcall input arg page in " Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 12/14] x86/hyperv: Initialize cpu and memory for " Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 13/14] x86/hyperv: Add smp support for sev-snp guest Tianyu Lan
2023-05-16 5:16 ` [EXTERNAL] " Saurabh Singh Sengar
2023-05-17 8:19 ` Tianyu Lan
2023-05-15 16:59 ` [RFC PATCH V6 14/14] x86/hyperv: Add hyperv-specific handling for VMMCALL under SEV-ES Tianyu Lan
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=20230531154832.GA428966@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=Tianyu.Lan@microsoft.com \
--cc=adrian.hunter@intel.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=anshuman.khandual@arm.com \
--cc=ashish.kalra@amd.com \
--cc=bp@alien8.de \
--cc=brijesh.singh@amd.com \
--cc=daniel.sneddon@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=jiangshan.ljs@antgroup.com \
--cc=kirill@shutemov.name \
--cc=kvm@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-hyperv@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ltykernel@gmail.com \
--cc=luto@kernel.org \
--cc=michael.roth@amd.com \
--cc=mikelley@microsoft.com \
--cc=mingo@redhat.com \
--cc=pangupta@amd.com \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=pbonzini@redhat.com \
--cc=ray.huang@amd.com \
--cc=samitolvanen@google.com \
--cc=sandipan.das@amd.com \
--cc=seanjc@google.com \
--cc=srutherford@google.com \
--cc=sterritt@google.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=tony.luck@intel.com \
--cc=venu.busireddy@oracle.com \
--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®