Re: [PATCH 0/6] KVM: x86: Make the cause of instruction emulation available to user-space

2021-04-13 Thread David Edmondson
On Monday, 2021-04-12 at 11:34:33 -07, Jim Mattson wrote:

> On Mon, Apr 12, 2021 at 6:09 AM David Edmondson
>  wrote:
>>
>> Instruction emulation happens for a variety of reasons, yet on error
>> we have no idea exactly what triggered it. Add a cause of emulation to
>> the various originators and pass it upstream when emulation fails.
>
> What is userspace going to do with this information? It's hard to say
> whether or not this is the right ABI without more context.

Logging for debug purposes, see reply to Sean.

dme.
-- 
You make me feel like a natural woman.


Re: [PATCH 0/6] KVM: x86: Make the cause of instruction emulation available to user-space

2021-04-12 Thread Jim Mattson
On Mon, Apr 12, 2021 at 6:09 AM David Edmondson
 wrote:
>
> Instruction emulation happens for a variety of reasons, yet on error
> we have no idea exactly what triggered it. Add a cause of emulation to
> the various originators and pass it upstream when emulation fails.

What is userspace going to do with this information? It's hard to say
whether or not this is the right ABI without more context.


[PATCH 0/6] KVM: x86: Make the cause of instruction emulation available to user-space

2021-04-12 Thread David Edmondson
Instruction emulation happens for a variety of reasons, yet on error
we have no idea exactly what triggered it. Add a cause of emulation to
the various originators and pass it upstream when emulation fails.

Joao originally produced the patches but is busy with other things and
I wanted to use it, so picked it up.

Tested by reverting commit 51b958e5aeb1e18c00332e0b37c5d4e95a3eff84
("KVM: x86: clflushopt should be treated as a no-op by emulation")
then running the test included in
https://lore.kernel.org/r/20201118121129.6276-1-david.edmond...@oracle.com.

Joao Martins (6):
  KVM: x86: add an emulation_reason to x86_emulate_instruction()
  KVM: x86: pass emulation_reason to handle_emulation_failure()
  KVM: x86: add emulation_reason to kvm_emulate_instruction()
  KVM: x86: pass a proper reason to kvm_emulate_instruction()
  KVM: SVM: pass a proper reason in kvm_emulate_instruction()
  KVM: VMX: pass a proper reason in kvm_emulate_instruction()

 arch/x86/include/asm/kvm_host.h | 27 +++--
 arch/x86/kvm/mmu/mmu.c  |  4 ++--
 arch/x86/kvm/svm/avic.c |  3 ++-
 arch/x86/kvm/svm/svm.c  | 26 +---
 arch/x86/kvm/vmx/vmx.c  | 17 
 arch/x86/kvm/x86.c  | 35 ++---
 arch/x86/kvm/x86.h  |  3 ++-
 7 files changed, 78 insertions(+), 37 deletions(-)

-- 
2.30.2