From: "Raj, Ashok" <ashok.raj@intel.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: David Woodhouse <dwmw2@infradead.org>,
KarimAllah Ahmed <karahmed@amazon.de>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
x86@kernel.org, Andi Kleen <ak@linux.intel.com>,
Andrea Arcangeli <aarcange@redhat.com>,
Andy Lutomirski <luto@kernel.org>,
Arjan van de Ven <arjan@linux.intel.com>,
Asit Mallick <asit.k.mallick@intel.com>,
Borislav Petkov <bp@suse.de>,
Dan Williams <dan.j.williams@intel.com>,
Dave Hansen <dave.hansen@intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"H . Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@redhat.com>,
Janakarajan Natarajan <Janakarajan.Natarajan@amd.com>,
Joerg Roedel <joro@8bytes.org>,
Jun Nakajima <jun.nakajima@intel.com>,
Laura Abbott <labbott@redhat.com>,
Linus Torvalds <torvalds@linux-foundati
Subject: Re: [PATCH v3 0/4] KVM: Expose speculation control feature to guests
Date: Tue, 30 Jan 2018 15:48:22 -0800 [thread overview]
Message-ID: <20180130234822.GA62797@otc-nc-03> (raw)
In-Reply-To: <6b7db789-9cc1-1b4d-9209-8d082e0d8def@redhat.com>
On Tue, Jan 30, 2018 at 06:36:20PM -0500, Paolo Bonzini wrote:
> On 30/01/2018 04:00, David Woodhouse wrote:
> > I believe Ashok sent you a change which made us do IBPB on *every*
> > vmexit; I don't think we need that. It's currently done in vcpu_load()
> > which means we'll definitely have done it between running one vCPU and
> > the next, and when vCPUs are pinned we basically never need to do it.
> >
> > We know that VMM (e.g. qemu) userspace could be vulnerable to attacks
> > from guest ring 3, because there is no flush between the vmexit and the
> > host kernel "returning" to the userspace thread. Doing a full IBPB on
> > *every* vmexit would protect from that, but it's overkill. If that's
> > the reason, let's come up with something better.
>
> Certainly not every vmexit! But doing it on every userspace vmexit and
> every sched_out would not be *that* bad.
Right.. agreed. We discussed the different scenarios that doing IBPB
on VMexit would help, and decided its really not required on every exit.
One obvious case is when there is a VMexit and return back to Qemu
process (witout a real context switch) do we need that to be
protected from any poisoned BTB from guest?
If Qemu is protected by !dumpable/retpoline that should give that gaurantee.
We do VM->VM IBPB at vmload() time that should provide that gaurantee.
Cheers,
Ashok
>
> We try really hard to avoid userspace vmexits for everything remotely
> critical to performance (the main exception that's left is the PMTIMER
> I/O port, that Windows likes to access quite a lot), so they shouldn't
> happen that often.
WARNING: multiple messages have this Message-ID (diff)
From: "Raj, Ashok" <ashok.raj@intel.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: "David Woodhouse" <dwmw2@infradead.org>,
"KarimAllah Ahmed" <karahmed@amazon.de>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
x86@kernel.org, "Andi Kleen" <ak@linux.intel.com>,
"Andrea Arcangeli" <aarcange@redhat.com>,
"Andy Lutomirski" <luto@kernel.org>,
"Arjan van de Ven" <arjan@linux.intel.com>,
"Asit Mallick" <asit.k.mallick@intel.com>,
"Borislav Petkov" <bp@suse.de>,
"Dan Williams" <dan.j.williams@intel.com>,
"Dave Hansen" <dave.hansen@intel.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"H . Peter Anvin" <hpa@zytor.com>,
"Ingo Molnar" <mingo@redhat.com>,
"Janakarajan Natarajan" <Janakarajan.Natarajan@amd.com>,
"Joerg Roedel" <joro@8bytes.org>,
"Jun Nakajima" <jun.nakajima@intel.com>,
"Laura Abbott" <labbott@redhat.com>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Masami Hiramatsu" <mhiramat@kernel.org>,
"Peter Zijlstra" <peterz@infradead.org>,
"Radim Krčmář" <rkrcmar@redhat.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Tim Chen" <tim.c.chen@linux.intel.com>,
"Tom Lendacky" <thomas.lendacky@amd.com>,
"Ashok Raj" <ashok.raj@intel.com>
Subject: Re: [PATCH v3 0/4] KVM: Expose speculation control feature to guests
Date: Tue, 30 Jan 2018 15:48:22 -0800 [thread overview]
Message-ID: <20180130234822.GA62797@otc-nc-03> (raw)
In-Reply-To: <6b7db789-9cc1-1b4d-9209-8d082e0d8def@redhat.com>
On Tue, Jan 30, 2018 at 06:36:20PM -0500, Paolo Bonzini wrote:
> On 30/01/2018 04:00, David Woodhouse wrote:
> > I believe Ashok sent you a change which made us do IBPB on *every*
> > vmexit; I don't think we need that. It's currently done in vcpu_load()
> > which means we'll definitely have done it between running one vCPU and
> > the next, and when vCPUs are pinned we basically never need to do it.
> >
> > We know that VMM (e.g. qemu) userspace could be vulnerable to attacks
> > from guest ring 3, because there is no flush between the vmexit and the
> > host kernel "returning" to the userspace thread. Doing a full IBPB on
> > *every* vmexit would protect from that, but it's overkill. If that's
> > the reason, let's come up with something better.
>
> Certainly not every vmexit! But doing it on every userspace vmexit and
> every sched_out would not be *that* bad.
Right.. agreed. We discussed the different scenarios that doing IBPB
on VMexit would help, and decided its really not required on every exit.
One obvious case is when there is a VMexit and return back to Qemu
process (witout a real context switch) do we need that to be
protected from any poisoned BTB from guest?
If Qemu is protected by !dumpable/retpoline that should give that gaurantee.
We do VM->VM IBPB at vmload() time that should provide that gaurantee.
Cheers,
Ashok
>
> We try really hard to avoid userspace vmexits for everything remotely
> critical to performance (the main exception that's left is the PMTIMER
> I/O port, that Windows likes to access quite a lot), so they shouldn't
> happen that often.
next prev parent reply other threads:[~2018-01-30 23:48 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-30 0:10 [PATCH v3 0/4] KVM: Expose speculation control feature to guests KarimAllah Ahmed
2018-01-30 0:10 ` KarimAllah Ahmed
2018-01-30 0:10 ` [PATCH v3 1/4] KVM: x86: Update the reverse_cpuid list to include CPUID_7_EDX KarimAllah Ahmed
2018-01-30 23:17 ` Paolo Bonzini
2018-01-30 0:10 ` [PATCH v3 2/4] KVM: x86: Add IBPB support KarimAllah Ahmed
2018-01-30 14:22 ` Tom Lendacky
2018-01-30 14:36 ` David Woodhouse
2018-01-30 17:19 ` Jim Mattson
2018-01-30 17:43 ` David Woodhouse
2018-01-30 0:10 ` [PATCH v3 3/4] KVM: VMX: Emulate MSR_IA32_ARCH_CAPABILITIES KarimAllah Ahmed
2018-01-30 0:22 ` Raj, Ashok
2018-01-30 0:25 ` KarimAllah Ahmed
2018-01-30 23:21 ` Paolo Bonzini
2018-01-30 0:10 ` [PATCH v3 4/4] KVM: VMX: Allow direct access to MSR_IA32_SPEC_CTRL KarimAllah Ahmed
2018-01-30 17:49 ` Jim Mattson
2018-01-30 21:00 ` KarimAllah Ahmed
2018-01-30 22:49 ` Jim Mattson
2018-01-30 23:32 ` Paolo Bonzini
2018-01-30 23:50 ` KarimAllah Ahmed
2018-01-31 0:16 ` Jim Mattson
2018-01-31 0:19 ` Paolo Bonzini
2018-01-31 0:27 ` Jim Mattson
2018-01-31 0:52 ` KarimAllah Ahmed
2018-01-31 0:56 ` Paolo Bonzini
2018-01-30 9:00 ` [PATCH v3 0/4] KVM: Expose speculation control feature to guests David Woodhouse
2018-01-30 9:00 ` David Woodhouse
2018-01-30 9:32 ` KarimAllah Ahmed
2018-01-30 9:32 ` KarimAllah Ahmed
2018-01-30 23:36 ` Paolo Bonzini
2018-01-30 23:36 ` Paolo Bonzini
2018-01-30 23:48 ` Raj, Ashok [this message]
2018-01-30 23:48 ` Raj, Ashok
2018-01-31 0:16 ` Paolo Bonzini
2018-01-31 0:16 ` Paolo Bonzini
2018-01-31 0:26 ` David Woodhouse
2018-01-31 0:26 ` David Woodhouse
2018-01-31 6:54 ` Dave Hansen
2018-01-31 6:54 ` 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=20180130234822.GA62797@otc-nc-03 \
--to=ashok.raj@intel.com \
--cc=Janakarajan.Natarajan@amd.com \
--cc=aarcange@redhat.com \
--cc=ak@linux.intel.com \
--cc=arjan@linux.intel.com \
--cc=asit.k.mallick@intel.com \
--cc=bp@suse.de \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@intel.com \
--cc=dwmw2@infradead.org \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=joro@8bytes.org \
--cc=jun.nakajima@intel.com \
--cc=karahmed@amazon.de \
--cc=kvm@vger.kernel.org \
--cc=labbott@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=pbonzini@redhat.com \
--cc=torvalds@linux-foundati \
--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 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.