From: Sean Christopherson <sean.j.christopherson@intel.com>
To: Liran Alon <liran.alon@oracle.com>
Cc: "Singh, Brijesh" <brijesh.singh@amd.com>,
"pbonzini@redhat.com" <pbonzini@redhat.com>,
"rkrcmar@redhat.com" <rkrcmar@redhat.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
Boris Ostrovsky <boris.ostrovsky@oracle.com>
Subject: Re: [PATCH 1/2] KVM: SVM: Fix workaround for AMD Errata 1096
Date: Tue, 16 Jul 2019 10:27:10 -0700 [thread overview]
Message-ID: <20190716172710.GD1987@linux.intel.com> (raw)
In-Reply-To: <60D01C4B-EC2E-453E-B5F6-BBE8FA94E31D@oracle.com>
On Tue, Jul 16, 2019 at 07:56:31PM +0300, Liran Alon wrote:
>
> > On 16 Jul 2019, at 19:41, Sean Christopherson <sean.j.christopherson@intel.com> wrote:
> >
> > On Tue, Jul 16, 2019 at 07:20:42PM +0300, Liran Alon wrote:
> >> How can a SMAP fault occur when CPL==3? One of the conditions for SMAP is
> >> that CPL<3.
> >
> > The CPU is effectively at CPL0 when it does the decode assist, e.g.:
> >
> > 1. CPL3 guest hits reserved bit NPT fault (MMIO access)
> > 2. CPU transitions to CPL0 on VM-Exit
> > 3. CPU performs data access on **%rip**, encounters SMAP violation
> > 4. CPU squashes SMAP violation, sets VMCB.insn_len=0
> > 5. CPU delivers VM-Exit to software for original NPT fault
> >
> > The original NPT fault is due to a reserved bit (or not present) entry for
> > a MMIO GPA, *not* the GPA corresponding to %rip. The fault on the decode
> > assist is never delivered to software, it simply results in having invalid
> > info in the VMCB's insn_bytes and insn_len fields.
>
> If the CPU performs the VMExit transition of state before doing the data read
> for DecodeAssist, then I agree that CPL will be 0 on data-access regardless
> of vCPU CPL. But this also means that SMAP violation should be raised based
> on host CR4.SMAP value and not vCPU CR4.SMAP value as KVM code checks.
> Furthermore, vCPU CPL of guest doesn’t need to be 3 in order to trigger this
> Errata.
Doh, #2 above is likely wrong. My *guess* is that the DecodeAssist walk
starts with %rip, i.e. does a NPT walk using the guest context, and that
the access is always an implicit system (CPL0) access.
I'll get out of the way and let Brijesh answer :-)
next prev parent reply other threads:[~2019-07-16 17:27 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-15 20:30 KVM: SVM: Fix workaround for AMD Errata 1096 Liran Alon
2019-07-15 20:30 ` [PATCH 1/2] " Liran Alon
2019-07-16 15:48 ` Singh, Brijesh
2019-07-16 15:56 ` Liran Alon
2019-07-16 16:07 ` Liran Alon
2019-07-16 16:10 ` Singh, Brijesh
2019-07-16 16:20 ` Liran Alon
2019-07-16 16:41 ` Sean Christopherson
2019-07-16 16:56 ` Liran Alon
2019-07-16 17:27 ` Sean Christopherson [this message]
2019-07-16 17:27 ` Paolo Bonzini
2019-07-16 17:35 ` Liran Alon
2019-07-16 19:28 ` Singh, Brijesh
2019-07-16 19:34 ` Liran Alon
2019-07-16 19:39 ` Paolo Bonzini
2019-07-16 19:45 ` Sean Christopherson
2019-07-16 19:50 ` Liran Alon
2019-07-16 19:47 ` Liran Alon
2019-07-16 19:41 ` Sean Christopherson
2019-07-16 19:52 ` Liran Alon
2019-07-16 20:02 ` Singh, Brijesh
2019-07-16 20:07 ` Sean Christopherson
2019-07-16 20:13 ` Paolo Bonzini
2019-07-16 20:09 ` Liran Alon
2019-07-16 20:27 ` Singh, Brijesh
2019-07-16 20:54 ` Sean Christopherson
2019-07-16 21:53 ` Liran Alon
2019-07-16 18:05 ` Singh, Brijesh
2019-07-16 18:06 ` Singh, Brijesh
2019-07-15 20:30 ` [PATCH 2/2] KVM: x86: Rename need_emulation_on_page_fault() to handle_no_insn_on_page_fault() Liran Alon
2019-07-16 15:48 ` Sean Christopherson
2019-07-16 16:01 ` Liran Alon
2019-07-16 16:10 ` Sean Christopherson
2019-07-16 19:33 ` Singh, Brijesh
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=20190716172710.GD1987@linux.intel.com \
--to=sean.j.christopherson@intel.com \
--cc=boris.ostrovsky@oracle.com \
--cc=brijesh.singh@amd.com \
--cc=kvm@vger.kernel.org \
--cc=liran.alon@oracle.com \
--cc=pbonzini@redhat.com \
--cc=rkrcmar@redhat.com \
/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.