From: Sean Christopherson <seanjc@google.com>
To: Varad Gautam <varad.gautam@suse.com>
Cc: kvm@vger.kernel.org, pbonzini@redhat.com, drjones@redhat.com,
marcorr@google.com, zxwang42@gmail.com, erdemaktas@google.com,
rientjes@google.com, brijesh.singh@amd.com,
Thomas.Lendacky@amd.com, jroedel@suse.de, bp@suse.de
Subject: Re: [kvm-unit-tests PATCH v3 04/11] lib: x86: Import insn decoder from Linux
Date: Wed, 6 Apr 2022 01:37:02 +0000 [thread overview]
Message-ID: <YkzuvuLYjira8iOW@google.com> (raw)
In-Reply-To: <20220224105451.5035-5-varad.gautam@suse.com>
On Thu, Feb 24, 2022, Varad Gautam wrote:
> Processing #VC exceptions on AMD SEV-ES requires instruction decoding
> logic to set up the right GHCB state before exiting to the host.
>
> Pull in the instruction decoder from Linux for this purpose.
Do we really need Linux's decoder for this? Linux needs a more robust decoder
because it has to deal with userspace crud, but KUT should have full control over
what code it encounters in a #VC handler, e.g. we should never have to worry about
ignore prefixes on a WRMSR. And looking at future patches, KUT is still looking
at raw opcode bytes, e.g.
/* Is it a WRMSR? */
exit_info_1 = (ctxt->insn.opcode.bytes[1] == 0x30) ? 1 : 0;
and the giant switch in vc_ioio_exitinfo().
The decoder does bring a bit of cleanliness, but 2k+ lines of code that's likely
to get stale fairly quickly is going to be a maintenance burden. And we certainly
don't need things like VEX prefix handling :-)
Do you happen to have data on how often each flavors of instructions is encountered?
E.g. can we get away with a truly minimal "decoder" by modifying select tests to
avoid hard-to-decode instructions? Or even patch them to do VMGEXIT directly?
next prev parent reply other threads:[~2022-04-06 16:30 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-24 10:54 [kvm-unit-tests PATCH v3 00/11] Add #VC exception handling for AMD SEV-ES Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 01/11] x86: AMD SEV-ES: Setup #VC exception handler " Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 02/11] x86: Move svm.h to lib/x86/ Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 03/11] lib: Define unlikely()/likely() macros in libcflat.h Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 04/11] lib: x86: Import insn decoder from Linux Varad Gautam
2022-04-06 1:37 ` Sean Christopherson [this message]
2022-04-08 7:42 ` Joerg Roedel
2022-04-15 18:07 ` Sean Christopherson
2022-08-25 16:42 ` Vasant Karasulli
2022-08-26 0:05 ` Sean Christopherson
2023-03-29 9:55 ` Joerg Roedel
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 05/11] x86: AMD SEV-ES: Pull related GHCB definitions and helpers " Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 06/11] x86: AMD SEV-ES: Prepare for #VC processing Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 07/11] lib/x86: Move xsave helpers to lib/ Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 08/11] x86: AMD SEV-ES: Handle CPUID #VC Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 09/11] x86: AMD SEV-ES: Handle MSR #VC Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 10/11] x86: AMD SEV-ES: Handle IOIO #VC Varad Gautam
2022-02-24 10:54 ` [kvm-unit-tests PATCH v3 11/11] x86: AMD SEV-ES: Handle string IO for " Varad Gautam
2022-04-06 1:50 ` Sean Christopherson
2022-04-08 7:43 ` Joerg Roedel
2022-04-15 16:57 ` Sean Christopherson
2022-04-15 17:22 ` Marc Orr
2022-04-15 17:42 ` Marc Orr
2022-04-15 18:30 ` Sean Christopherson
2022-04-15 18:45 ` Marc Orr
2022-04-15 19:11 ` Sean Christopherson
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=YkzuvuLYjira8iOW@google.com \
--to=seanjc@google.com \
--cc=Thomas.Lendacky@amd.com \
--cc=bp@suse.de \
--cc=brijesh.singh@amd.com \
--cc=drjones@redhat.com \
--cc=erdemaktas@google.com \
--cc=jroedel@suse.de \
--cc=kvm@vger.kernel.org \
--cc=marcorr@google.com \
--cc=pbonzini@redhat.com \
--cc=rientjes@google.com \
--cc=varad.gautam@suse.com \
--cc=zxwang42@gmail.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.