From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wei Ye Subject: [PATCH v3 0/2] Extend ioreq-server to support page write protection Date: Thu, 4 Sep 2014 05:53:17 +0800 Message-ID: <1409781199-12052-1-git-send-email-wei.ye@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: kevin.tian@intel.com, keir@xen.org, ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com, tim@xen.org, ian.jackson@eu.citrix.com, donald.d.dugger@intel.com, Paul.Durrant@citrix.com, zhiyuan.lv@intel.com, JBeulich@suse.com, yang.z.zhang@intel.com, Wei Ye List-Id: xen-devel@lists.xenproject.org Changes from v1: - Changes the new p2m type name from p2m_ram_wp to p2m_mmio_write_dm. This means that we treat the pages as a special mmio range instead of ram. - Move macros to c file since only this file is using them. - Address various comments from Jan. Changes from v2: - Remove excute attribute of the new p2m type p2m_mmio_write_dm - Use existing rangeset for keeping the write protection page range instead of introducing hash table. - Some code style fix. ioreq-server is proposed to forward PIO and MMIO request to multiple device models according to the io range. XenGT (Intel Graphics Virtualization technology, please refer to https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization- xengt) driver reside in Dom0 as a virtual graphics device model also need to trap and emulate the guest's write operation to some specific memory pages, like the memory pages used by guest graphics driver as PPGTT(per-process graphics translation table). We add an new p2m type "p2m_mmio_write_dm" to trap the page write operation. Page of this new p2m type is read only and for write, the request will go to device model via ioreq-server. Wei Ye (2): x86: add p2m_mmio_write_dm ioreq-server: write protected range and forwarding tools/libxc/xc_domain.c | 30 ++++++++++++++++++++++ tools/libxc/xenctrl.h | 18 ++++++++++++++ xen/arch/x86/hvm/hvm.c | 51 ++++++++++++++++++++++++++++++++++++-- xen/arch/x86/mm/p2m-ept.c | 1 + xen/arch/x86/mm/p2m-pt.c | 1 + xen/include/asm-x86/hvm/domain.h | 2 +- xen/include/asm-x86/p2m.h | 1 + xen/include/public/hvm/hvm_op.h | 1 + 8 files changed, 102 insertions(+), 3 deletions(-) -- 1.7.9.5