From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751810AbdF2Xa2 (ORCPT ); Thu, 29 Jun 2017 19:30:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43786 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751537AbdF2Xa1 (ORCPT ); Thu, 29 Jun 2017 19:30:27 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 60E0080463 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=bsd@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 60E0080463 From: Bandan Das To: kvm@vger.kernel.org Cc: pbonzini@redhat.com, linux-kernel@vger.kernel.org Subject: [PATCH 0/2] Expose VMFUNC to the nested hypervisor Date: Thu, 29 Jun 2017 19:29:54 -0400 Message-Id: <20170629232956.12300-1-bsd@redhat.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Thu, 29 Jun 2017 23:30:26 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org These patches expose eptp switching/vmfunc to the nested hypervisor. Testing with kvm-unit-tests seems to work ok. If the guest hypervisor enables vmfunc/eptp switching, a "shadow" eptp list address page is written to the VMCS. Initially, it would be unpopulated which would result in a vmexit with exit reason 59. This hooks to handle_vmfunc() to rewrite vmcs12->ept_pointer to reload the mmu and get a new root hpa. This new shadow ept pointer is written to the shadow eptp list in the given index. A next vmfunc call to switch to the given index would succeed without an exit. Bandan Das (2): KVM: nVMX: Implement EPTP switching for the L1 hypervisor KVM: nVMX: Advertise VMFUNC to L1 hypervisor arch/x86/include/asm/vmx.h | 9 ++++ arch/x86/kvm/vmx.c | 122 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) -- 2.9.4