From patchwork Thu May 9 00:53:20 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Nakajima, Jun" X-Patchwork-Id: 2542441 Return-Path: X-Original-To: patchwork-kvm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id 5C2C43FE80 for ; Thu, 9 May 2013 00:53:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755184Ab3EIAxp (ORCPT ); Wed, 8 May 2013 20:53:45 -0400 Received: from mail-da0-f46.google.com ([209.85.210.46]:60798 "EHLO mail-da0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755154Ab3EIAxo (ORCPT ); Wed, 8 May 2013 20:53:44 -0400 Received: by mail-da0-f46.google.com with SMTP id e20so1270871dak.5 for ; Wed, 08 May 2013 17:53:44 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:from:to:subject:date:message-id:x-mailer:in-reply-to :references:x-gm-message-state; bh=xD7O4qtjXuVnti3OiyQw12WswpqYBql6jsfb4ETv1Hk=; b=YhkmUGS9rKWUmof+1neiv5dhWLR1A7N7/xiI0RB2REQQo11N7f0fMVH/PVsPcrQDK0 0WTeIOmum4MsefKSXqcM54GHumTqmoSnlghNdY4RlpLNzOlp3rE90oXfhv3yPUGWu0Ko ghlPd0CtAF1xwoMDyUKcPOeDOPPQxTirNY1EMP0e1h6u2dSuI1nc0FHEpB47znb08EBP oTr6p4/RQk5VQ2ry6Wgu6KYZ/CkgRvkFyv8CdMrKMUxlrsJHYkOwZ+OLK+scdlGXxexR PqJQJ8rL1zkp/CFPsPWV9dRCUJzo2FxF2tAOM6vukkdWX5BlTYf/bVkvgJnyV1MbfTsi /TCA== X-Received: by 10.68.255.130 with SMTP id aq2mr9822303pbd.164.1368060824034; Wed, 08 May 2013 17:53:44 -0700 (PDT) Received: from localhost (c-98-207-34-191.hsd1.ca.comcast.net. [98.207.34.191]) by mx.google.com with ESMTPSA id vz8sm1185883pac.20.2013.05.08.17.53.42 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Wed, 08 May 2013 17:53:43 -0700 (PDT) From: Jun Nakajima To: kvm@vger.kernel.org Subject: [PATCH v3 08/13] nEPT: Some additional comments Date: Wed, 8 May 2013 17:53:20 -0700 Message-Id: <1368060805-2790-8-git-send-email-jun.nakajima@intel.com> X-Mailer: git-send-email 1.8.2.1.610.g562af5b In-Reply-To: <1368060805-2790-7-git-send-email-jun.nakajima@intel.com> References: <1368060805-2790-1-git-send-email-jun.nakajima@intel.com> <1368060805-2790-2-git-send-email-jun.nakajima@intel.com> <1368060805-2790-3-git-send-email-jun.nakajima@intel.com> <1368060805-2790-4-git-send-email-jun.nakajima@intel.com> <1368060805-2790-5-git-send-email-jun.nakajima@intel.com> <1368060805-2790-6-git-send-email-jun.nakajima@intel.com> <1368060805-2790-7-git-send-email-jun.nakajima@intel.com> X-Gm-Message-State: ALoCoQlE6roCrgr2Vxpef6Mu4vWoOXxbRNQ1B4IYdKbu4QVsuSsGNJN8Gtay5vqo8d63gnnhqT4p Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org Some additional comments to preexisting code: Explain who (L0 or L1) handles EPT violation and misconfiguration exits. Don't mention "shadow on either EPT or shadow" as the only two options. Signed-off-by: Nadav Har'El Signed-off-by: Jun Nakajima Signed-off-by: Xinhao Xu --- arch/x86/kvm/vmx.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index db8df4c..17d8b89 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -6534,7 +6534,20 @@ static bool nested_vmx_exit_handled(struct kvm_vcpu *vcpu) return nested_cpu_has2(vmcs12, SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES); case EXIT_REASON_EPT_VIOLATION: + /* + * L0 always deals with the EPT violation. If nested EPT is + * used, and the nested mmu code discovers that the address is + * missing in the guest EPT table (EPT12), the EPT violation + * will be injected with nested_ept_inject_page_fault() + */ + return 0; case EXIT_REASON_EPT_MISCONFIG: + /* + * L2 never uses directly L1's EPT, but rather L0's own EPT + * table (shadow on EPT) or a merged EPT table that L0 built + * (EPT on EPT). So any problems with the structure of the + * table is L0's fault. + */ return 0; case EXIT_REASON_PREEMPTION_TIMER: return vmcs12->pin_based_vm_exec_control &