From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [PATCH 11/11] nEPT: Provide the correct exit qualification upon EPT Date: Thu, 02 May 2013 10:50:51 +0200 Message-ID: <518228EB.3030305@siemens.com> References: <1366958611-6935-1-git-send-email-jun.nakajima@intel.com> <1366958611-6935-2-git-send-email-jun.nakajima@intel.com> <1366958611-6935-3-git-send-email-jun.nakajima@intel.com> <1366958611-6935-4-git-send-email-jun.nakajima@intel.com> <1366958611-6935-5-git-send-email-jun.nakajima@intel.com> <1366958611-6935-6-git-send-email-jun.nakajima@intel.com> <1366958611-6935-7-git-send-email-jun.nakajima@intel.com> <1366958611-6935-8-git-send-email-jun.nakajima@intel.com> <1366958611-6935-9-git-send-email-jun.nakajima@intel.com> <1366958611-6935-10-git-send-email-jun.nakajima@intel.com> <1366958611-6935-11-git-send-email-jun.nakajima@intel.com> <517CED7B.5060505@web.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------030500060209090602090109" Cc: "Nakajima, Jun" , "kvm@vger.kernel.org" To: "Xu, Xinhao" Return-path: Received: from goliath.siemens.de ([192.35.17.28]:23086 "EHLO goliath.siemens.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751880Ab3EBIu5 (ORCPT ); Thu, 2 May 2013 04:50:57 -0400 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------030500060209090602090109 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 2013-05-02 08:59, Xu, Xinhao wrote: > Hi, Jan > Can you provide details of your test environment? Pretty simple: Run a Linux 3.9(-rc5) kernel as L2 on top of the same kernel with QEMU (git head at that time). I've attached the config. Jan > > -----Original Message----- > From: Jan Kiszka [mailto:jan.kiszka@web.de] > Sent: Sunday, April 28, 2013 5:36 PM > To: Xu, Xinhao > Cc: Nakajima, Jun; kvm@vger.kernel.org > Subject: Re: [PATCH 11/11] nEPT: Provide the correct exit qualification upon EPT > > On 2013-04-27 08:42, Xu, Xinhao wrote: >> From 2df72c1e8e3b167a6008ab11e2a68d734c68e425 Mon Sep 17 00:00:00 2001 >> From: Xinhao Xu >> Date: Sat, 27 Apr 2013 05:45:49 +0800 >> Subject: [PATCH] nEPT: Check EPT misconfiguration while walking addr & >> move pte check code to vmx.c > > Please fix up the subject when posting a patch in reply to another one. > >> >> I add code to detect EPT misconfiguration and inject it to L1. >> Now L1 can correctly go to ept_misconfig handler(instead of wrongly >> going to fast_page_fault), it will try to handle mmio page fault, if >> failed, it is a real ept misconfiguration. >> >> For scalability, Xiantao suggests me moving vendor specific code out >> from common code. In order to do this, I add new ops in kvm_mmu >> struct, check_tdp_pte, to provide an interface to check fault while >> walking address. The better way is to do fault detecting at here, but >> so far I just have checked ept misconfiguration. More patches will be >> added in future. > > Seems there are some issues remaining. I can boot Linux as L2 when I remove this patch. When it's applied, L2 becomes pretty slow and eventually resets during kernel boot of L2. L1 remains stable. > > Jan > > -- Siemens AG, Corporate Technology, CT RTC ITP SDP-DE Corporate Competence Center Embedded Linux --------------030500060209090602090109 Content-Type: application/x-bzip; name=".config.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=".config.bz2" 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 7kinChIJrUcpIA== --------------030500060209090602090109--