From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: [PATCH 0/7] Emulator exception improvements Date: Mon, 22 Nov 2010 17:53:20 +0200 Message-ID: <1290441207-4250-1-git-send-email-avi@redhat.com> To: Marcelo Tosatti , kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:10489 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751393Ab0KVPxj (ORCPT ); Mon, 22 Nov 2010 10:53:39 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id oAMFrdOq026254 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 22 Nov 2010 10:53:39 -0500 Received: from cleopatra.tlv.redhat.com (cleopatra.tlv.redhat.com [10.35.255.11]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id oAMFrcWO028322 for ; Mon, 22 Nov 2010 10:53:39 -0500 Sender: kvm-owner@vger.kernel.org List-ID: This boring patchset introduces a struct x86_exception to represent an exception, and uses it to communicate between the emulator and the rest of kvm. The primary benefit is that we can now pass a #GP from kvm into the emulator, not just #PFs. I'd like to also fold vcpu->arch.fault into struct x86_exception, but that's more difficult, so deferred until later. Avi Kivity (7): KVM: x86 emulator: introduce struct x86_exception to communicate faults KVM: x86 emulator: make emulator memory callbacks return full exception KVM: x86 emulator: drop dead pf injection in emulate_popf() KVM: x86 emulator: tighen up ->read_std() and ->write_std() error checks KVM: x86 emulator: simplify exception generation KVM: Push struct x86_exception info the various gva_to_gpa variants KVM: Push struct x86_exception into walk_addr() arch/x86/include/asm/kvm_emulate.h | 26 +++-- arch/x86/include/asm/kvm_host.h | 14 ++- arch/x86/kvm/emulate.c | 243 ++++++++++++++---------------------- arch/x86/kvm/mmu.c | 13 +- arch/x86/kvm/paging_tmpl.h | 31 +++-- arch/x86/kvm/x86.c | 97 ++++++++------- 6 files changed, 195 insertions(+), 229 deletions(-)