From patchwork Fri Dec 16 13:43:47 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Haozhong Zhang X-Patchwork-Id: 9477915 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 58B9D60827 for ; Fri, 16 Dec 2016 13:46:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4C75C2883C for ; Fri, 16 Dec 2016 13:46:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4122C2885F; Fri, 16 Dec 2016 13:46:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id F02FC2883C for ; Fri, 16 Dec 2016 13:46:50 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cHsom-0006EO-2j; Fri, 16 Dec 2016 13:45:00 +0000 Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cHsol-0006C8-0G for xen-devel@lists.xenproject.org; Fri, 16 Dec 2016 13:44:59 +0000 Received: from [85.158.137.68] by server-6.bemta-3.messagelabs.com id F8/71-02804-ADFE3585; Fri, 16 Dec 2016 13:44:58 +0000 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrJLMWRWlGSWpSXmKPExsVywNxEW/fm++A Ig8YGK4vvWyYzOTB6HP5whSWAMYo1My8pvyKBNeN062+2gvm8FfOnNbI3MM7n6mLk5BASqJSY tmsrE4gtIcArcWTZDFYI20/iRsNDxi5GLqCaXkaJmfMnMYIk2AT0JVY8PghWJCKgJHFv1WSwZ maBSIn7mw6D1QgLhEkcmd0EVsMioCrxbMJ2MJtXwE7iwP+PbBAL5CUuXD3FAmJzAsUvHN8DFO cAWmYr0bpfYwIj7wJGhlWMGsWpRWWpRbqGxnpJRZnpGSW5iZk5uoYGxnq5qcXFiempOYlJxXr J+bmbGIHBwAAEOxi3bfc8xCjJwaQkyrt8R3CEEF9SfkplRmJxRnxRaU5q8SFGDQ4OgSvn5k5n kmLJy89LVZLgXfsOqE6wKDU9tSItMwcYrjClEhw8SiK8z0HSvMUFibnFmekQqVOMilLivJ0gC QGQREZpHlwbLEYuMcpKCfMyAh0lxFOQWpSbWYIq/4pRnINRSRhiCk9mXgnc9FdAi5mAFlvMA1 tckoiQkmpg1NGoeHL69IxXRwWZbKY98dz+0q3E/LTOPU2tW5JmxYmP9vzf+jBrl4Tp2k+CMY2 n3/J9U2ZYdmgO76frPsEMv3wmV4XJ5ZfHbwts2eyietC1buukSYe28u6e+kug6hFv+5vgw89i Jgov4JusctXq6wGBI/X5ip9FGi+vzE5wL15+wdbl3BwdPyWW4oxEQy3mouJEAA9nyEGMAgAA X-Env-Sender: haozhong.zhang@intel.com X-Msg-Ref: server-8.tower-31.messagelabs.com!1481895871!76565229!15 X-Originating-IP: [192.55.52.43] X-SpamReason: No, hits=0.0 required=7.0 tests= X-StarScan-Received: X-StarScan-Version: 9.1.1; banners=-,-,- X-VirusChecked: Checked Received: (qmail 28071 invoked from network); 16 Dec 2016 13:44:57 -0000 Received: from mga05.intel.com (HELO mga05.intel.com) (192.55.52.43) by server-8.tower-31.messagelabs.com with DHE-RSA-AES256-GCM-SHA384 encrypted SMTP; 16 Dec 2016 13:44:57 -0000 Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP; 16 Dec 2016 05:44:57 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,357,1477983600"; d="scan'208";a="43260553" Received: from hz-desktop.sh.intel.com (HELO localhost) ([10.239.159.148]) by fmsmga005.fm.intel.com with ESMTP; 16 Dec 2016 05:44:56 -0800 From: Haozhong Zhang To: xen-devel@lists.xenproject.org Date: Fri, 16 Dec 2016 21:43:47 +0800 Message-Id: <20161216134348.16236-16-haozhong.zhang@intel.com> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20161216134348.16236-1-haozhong.zhang@intel.com> References: <20161216134348.16236-1-haozhong.zhang@intel.com> Cc: Andrew Cooper , Haozhong Zhang Subject: [Xen-devel] [XTF PATCH 15/16] vvmx: test vmxon in VMX root w/ CPL = 0 and w/ current VMCS X-BeenThere: xen-devel@lists.xen.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP VMfailvalid(15) is expected in this test. Signed-off-by: Haozhong Zhang --- tests/vvmx/vmxon.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/vvmx/vmxon.c b/tests/vvmx/vmxon.c index ec7ee7e..705a04d 100644 --- a/tests/vvmx/vmxon.c +++ b/tests/vvmx/vmxon.c @@ -4,6 +4,7 @@ static uint8_t vmxon_region[PAGE_SIZE] __aligned(PAGE_SIZE); static uint8_t vmxon_region_2nd[PAGE_SIZE] __aligned(PAGE_SIZE); +static uint8_t vmcs[PAGE_SIZE] __aligned(PAGE_SIZE); /** * vmxon with CR4.VMXE cleared @@ -191,6 +192,23 @@ static bool test_vmxon_in_root_user_novmcs(void) VMXERR_FAULT, EXINFO_SYM(GP, 0), 0); } +/** + * vmxon in VMX root w/ CPL = 0 and w/ current VMCS + * + * Expect: VMfailvalid(15) + */ +static bool test_vmxon_in_root_cpl0_vmcs(void) +{ + clear_vmcs(vmxon_region_2nd, get_vmcs_revid()); + + exinfo_t fault; + uint8_t ret = vmxon((uint64_t)vmxon_region_2nd, &fault); + + return handle_vmxinsn_err(__func__, ret, fault, + VMXERR_VMFAIL_VALID, 0, + VMX_INSN_VMXON_IN_VMX_ROOT); +} + bool test_vmxon(void) { if ( !test_vmxon_novmxe() ) @@ -223,6 +241,17 @@ bool test_vmxon(void) if ( !test_vmxon_in_root_user_novmcs() ) return false; + clear_vmcs(vmcs, get_vmcs_revid()); + if ( vmptrld((uint64_t)vmcs, NULL) ) + { + xtf_failure("Fail: %s: unexpected failure from vmptrld 0x%"PRIx64"\n", + __func__, (uint64_t)vmcs); + return false; + } + + if ( !test_vmxon_in_root_cpl0_vmcs() ) + return false; + return true; }