From: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
To: Josh Poimboeuf <jpoimboe@kernel.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
Amit Shah <amit@kernel.org>,
linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
x86@kernel.org, linux-doc@vger.kernel.org, amit.shah@amd.com,
thomas.lendacky@amd.com, bp@alien8.de, tglx@linutronix.de,
peterz@infradead.org, corbet@lwn.net, mingo@redhat.com,
dave.hansen@linux.intel.com, hpa@zytor.com, seanjc@google.com,
pbonzini@redhat.com, daniel.sneddon@linux.intel.com,
kai.huang@intel.com, sandipan.das@amd.com,
boris.ostrovsky@oracle.com, Babu.Moger@amd.com,
david.kaplan@amd.com, dwmw@amazon.co.uk
Subject: Re: [RFC PATCH v2 1/3] x86: cpu/bugs: update SpectreRSB comments for AMD
Date: Thu, 14 Nov 2024 00:01:16 -0800 [thread overview]
Message-ID: <20241114075403.7wxou7g5udaljprv@desk> (raw)
In-Reply-To: <20241114023141.n4n3zl7622gzsf75@jpoimboe>
On Wed, Nov 13, 2024 at 06:31:41PM -0800, Josh Poimboeuf wrote:
> On Wed, Nov 13, 2024 at 05:55:05PM -0800, Pawan Gupta wrote:
> > > > user->user SpectreRSB is also mitigated by IBPB, so RSB filling is
> > > > unnecessary when IBPB is issued. Also, when an appication does not opted-in
> > > > for IBPB at context switch, spectre-v2 for that app is not mitigated,
> > > > filling RSB is only a half measure in that case.
> > > >
> > > > Is RSB filling really serving any purpose for userspace?
> > >
> > > Indeed...
> > >
> > > If we don't need to flush RSB for user->user, we'd only need to worry
> > > about protecting the kernel. Something like so?
> > >
> > > - eIBRS+!PBRSB: no flush
> > > - eIBRS+PBRSB: lite flush
> >
> > Yes for VMexit, but not at kernel entry. PBRSB requires an unbalanced RET,
> > and it is only a problem until the first retired CALL. At VMexit we do have
> > unbalanced RET but not at kernel entry.
> >
> > > - everything else: full flush
> >
> > > i.e., same logic as spectre_v2_determine_rsb_fill_type_at_vmexit(), but
> > > also for context switches.
> >
> > Yes, assuming you mean user->kernel switch, and not process context switch.
>
> Actually I did mean context switch. AFAIK we don't need to flush RSB at
> kernel entry.
>
> If user->user RSB is already mitigated by IBPB, then at context switch
> we only have to worry about user->kernel. e.g., if 'next' has more (in
> kernel) RETs then 'prev' had (in kernel) CALLs, the user could trigger
> RSB underflow or corruption inside the kernel after the context switch.
Yes, this condition can cause RSB underflow, but that is not enough. More
importantly an attacker also needs to control the target of RET.
> Doesn't eIBRS already protect against that?
Yes, eIBRS does protect against that, because the alternate predictor (TA)
is isolated by eIBRS from user influence.
> For PBRSB, I guess we don't need to worry about that since there would
> be at least one kernel CALL before context switch.
Right. So the case where we need RSB filling at context switch is
retpoline+CDT mitigation.
next prev parent reply other threads:[~2024-11-14 8:01 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-11 16:39 [RFC PATCH v2 0/3] Add support for the ERAPS feature Amit Shah
2024-11-11 16:39 ` [RFC PATCH v2 1/3] x86: cpu/bugs: update SpectreRSB comments for AMD Amit Shah
2024-11-11 17:01 ` Dave Hansen
2024-11-11 19:33 ` Josh Poimboeuf
2024-11-11 19:58 ` Kaplan, David
2024-11-11 20:39 ` Josh Poimboeuf
2024-11-11 20:40 ` Josh Poimboeuf
2024-11-12 0:30 ` Josh Poimboeuf
2024-11-12 0:29 ` Andrew Cooper
2024-11-12 1:46 ` Josh Poimboeuf
2024-11-12 11:58 ` Borislav Petkov
2024-11-13 21:24 ` Josh Poimboeuf
2024-11-13 21:37 ` Borislav Petkov
2024-11-14 0:43 ` Josh Poimboeuf
2024-11-14 7:47 ` Borislav Petkov
2024-11-14 9:47 ` Ingo Molnar
2024-11-14 9:54 ` Borislav Petkov
2024-11-12 15:16 ` Shah, Amit
2024-11-12 21:43 ` Pawan Gupta
2024-11-13 20:21 ` Josh Poimboeuf
2024-11-14 1:55 ` Pawan Gupta
2024-11-14 2:31 ` Josh Poimboeuf
2024-11-14 8:01 ` Pawan Gupta [this message]
2024-11-15 5:48 ` Josh Poimboeuf
2024-11-15 14:44 ` Kaplan, David
2024-11-15 17:05 ` Josh Poimboeuf
2024-11-15 17:50 ` Pawan Gupta
2024-11-15 18:10 ` Josh Poimboeuf
2024-11-18 10:15 ` Shah, Amit
2024-11-11 16:39 ` [RFC PATCH v2 2/3] x86: cpu/bugs: add support for AMD ERAPS feature Amit Shah
2024-11-11 18:57 ` Dave Hansen
2024-11-13 10:33 ` Shah, Amit
2024-11-11 16:39 ` [RFC PATCH v2 3/3] x86: kvm: svm: add support for ERAPS and FLUSH_RAP_ON_VMRUN Amit Shah
2024-11-11 19:02 ` Dave Hansen
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=20241114075403.7wxou7g5udaljprv@desk \
--to=pawan.kumar.gupta@linux.intel.com \
--cc=Babu.Moger@amd.com \
--cc=amit.shah@amd.com \
--cc=amit@kernel.org \
--cc=andrew.cooper3@citrix.com \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=daniel.sneddon@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=david.kaplan@amd.com \
--cc=dwmw@amazon.co.uk \
--cc=hpa@zytor.com \
--cc=jpoimboe@kernel.org \
--cc=kai.huang@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peterz@infradead.org \
--cc=sandipan.das@amd.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.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®