From: Gleb Natapov <gleb@redhat.com>
To: Avi Kivity <avi@redhat.com>
Cc: mtosatti@redhat.com, kvm@vger.kernel.org
Subject: Re: [PATCH 15/23] KVM: do not inject #PF in (read|write)_emulated() callbacks
Date: Wed, 28 Apr 2010 12:21:53 +0300 [thread overview]
Message-ID: <20100428092153.GM10044@redhat.com> (raw)
In-Reply-To: <4BD7FBCD.50707@redhat.com>
On Wed, Apr 28, 2010 at 12:11:41PM +0300, Avi Kivity wrote:
> On 04/27/2010 03:15 PM, Gleb Natapov wrote:
> >Return error to x86 emulator instead of injection exception behind its back.
> >
> >Signed-off-by: Gleb Natapov<gleb@redhat.com>
> >---
> > arch/x86/include/asm/kvm_emulate.h | 3 +++
> > arch/x86/kvm/emulate.c | 12 +++++++++++-
> > arch/x86/kvm/x86.c | 28 ++++++++++++++--------------
> > 3 files changed, 28 insertions(+), 15 deletions(-)
> >
> >diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h
> >index ae4af86..b977ccf 100644
> >--- a/arch/x86/include/asm/kvm_emulate.h
> >+++ b/arch/x86/include/asm/kvm_emulate.h
> >@@ -94,6 +94,7 @@ struct x86_emulate_ops {
> > int (*read_emulated)(unsigned long addr,
> > void *val,
> > unsigned int bytes,
> >+ unsigned int *error,
> > struct kvm_vcpu *vcpu);
> >
>
> The fault may be at a different address than addr, if we cross a
> page boundary. Need a struct here.
>
Correct and you can find couple of FIXME in emulator.c that say so.
I'll fix that later. This is not the problem that was introduced by this
patch set. What do you mean we need struct here? Struct with
error code + error location?
After looking at the code: only write_emulated handle cross page access
correctly now.
--
Gleb.
next prev parent reply other threads:[~2010-04-28 9:21 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-27 12:15 [PATCH 00/23] next round of emulator cleanups Gleb Natapov
2010-04-27 12:15 ` [PATCH 01/23] KVM: x86 emulator: introduce read cache Gleb Natapov
2010-04-27 12:15 ` [PATCH 02/23] KVM: x86 emulator: fix Move r/m16 to segment register decoding Gleb Natapov
2010-04-27 12:15 ` [PATCH 03/23] KVM: x86 emulator: cleanup xchg emulation Gleb Natapov
2010-04-27 12:15 ` [PATCH 04/23] KVM: x86 emulator: cleanup nop emulation Gleb Natapov
2010-04-27 12:15 ` [PATCH 05/23] KVM: x86 emulator: handle "far address" source operand Gleb Natapov
2010-04-27 12:15 ` [PATCH 06/23] KVM: x86 emulator: add (set|get)_dr callbacks to x86_emulate_ops Gleb Natapov
2010-04-27 12:15 ` [PATCH 07/23] KVM: x86 emulator: add (set|get)_msr " Gleb Natapov
2010-04-27 12:15 ` [PATCH 08/23] KVM: x86 emulator: cleanup some direct calls into kvm to use existing callbacks Gleb Natapov
2010-04-28 8:59 ` Avi Kivity
2010-04-28 9:33 ` Gleb Natapov
2010-04-28 12:56 ` Avi Kivity
2010-04-27 12:15 ` [PATCH 09/23] KVM: x86 emulator: make set_cr() callback return error if it fails Gleb Natapov
2010-04-28 9:01 ` Avi Kivity
2010-04-27 12:15 ` [PATCH 10/23] KVM: x86 emulator: make (get|set)_dr() " Gleb Natapov
2010-04-27 12:15 ` [PATCH 11/23] KVM: x86 emulator: fix X86EMUL_RETRY_INSTR and X86EMUL_CMPXCHG_FAILED values Gleb Natapov
2010-04-27 12:15 ` [PATCH 12/23] KVM: fill in run->mmio details in (read|write)_emulated function Gleb Natapov
2010-04-27 12:15 ` [PATCH 13/23] KVM: x86 emulator: x86_emulate_insn() return -1 only in case of emulation failure Gleb Natapov
2010-04-27 12:15 ` [PATCH 14/23] KVM: remove export of emulator_write_emulated() Gleb Natapov
2010-04-27 12:15 ` [PATCH 15/23] KVM: do not inject #PF in (read|write)_emulated() callbacks Gleb Natapov
2010-04-28 9:11 ` Avi Kivity
2010-04-28 9:21 ` Gleb Natapov [this message]
2010-04-29 9:23 ` Avi Kivity
2010-04-27 12:15 ` [PATCH 16/23] KVM: handle emulation failure case first Gleb Natapov
2010-04-27 12:15 ` [PATCH 17/23] KVM: x86 emulator: advance RIP outside x86 emulator code Gleb Natapov
2010-04-27 12:15 ` [PATCH 18/23] KVM: x86 emulator: set RFLAGS " Gleb Natapov
2010-04-27 12:15 ` [PATCH 19/23] KVM: x86 emulator: use shadowed register in emulate_sysexit() Gleb Natapov
2010-04-27 12:15 ` [PATCH 20/23] KVM: x86 exmulator: handle shadowed registers outside emulator Gleb Natapov
2010-04-27 12:15 ` [PATCH 21/23] KVM: x86 emulator: move interruptibility state tracking out of emulator Gleb Natapov
2010-04-27 12:15 ` [PATCH 22/23] KVM: remove unneeded initialization Gleb Natapov
2010-04-28 9:17 ` Avi Kivity
2010-04-27 12:15 ` [PATCH 23/23] KVM: x86 emulator: do not inject exception directly into vcpu Gleb Natapov
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=20100428092153.GM10044@redhat.com \
--to=gleb@redhat.com \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=mtosatti@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox