WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] x86: Handle p2m_ram_ro with HAP

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: Handle p2m_ram_ro with HAP
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 01 Aug 2008 02:20:17 -0700
Delivery-date: Fri, 01 Aug 2008 02:20:51 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1217502660 -3600
# Node ID a09df7d4e94eaf6554e97faa0cbcc733dd90581d
# Parent  532094aefa5d5e21c52624af5d35621713e8454d
x86: Handle p2m_ram_ro with HAP

I realized that I had failed to cover the hardware assisted paging
case in my earlier p2m_ram_ro patches. This should fix it.

Signed-off-by: Trolle Selander <trolle.selander@xxxxxxxxxxxxx>
---
 xen/arch/x86/hvm/svm/svm.c |    7 +++++--
 xen/arch/x86/hvm/vmx/vmx.c |    2 +-
 xen/include/asm-x86/p2m.h  |    2 +-
 3 files changed, 7 insertions(+), 4 deletions(-)

diff -r 532094aefa5d -r a09df7d4e94e xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c        Thu Jul 31 11:55:19 2008 +0100
+++ b/xen/arch/x86/hvm/svm/svm.c        Thu Jul 31 12:11:00 2008 +0100
@@ -874,9 +874,12 @@ static void svm_do_nested_pgfault(paddr_
     mfn_t mfn;
     unsigned long gfn = gpa >> PAGE_SHIFT;
 
-    /* If this GFN is emulated MMIO, pass the fault to the mmio handler */
+    /*
+     * If this GFN is emulated MMIO or marked as read-only, pass the fault
+     * to the mmio handler.
+     */
     mfn = gfn_to_mfn_current(gfn, &p2mt);
-    if ( p2mt == p2m_mmio_dm )
+    if ( (p2mt == p2m_mmio_dm) || (p2mt == p2m_ram_ro) )
     {
         if ( !handle_mmio() )
             hvm_inject_exception(TRAP_gp_fault, 0, 0);
diff -r 532094aefa5d -r a09df7d4e94e xen/arch/x86/hvm/vmx/vmx.c
--- a/xen/arch/x86/hvm/vmx/vmx.c        Thu Jul 31 11:55:19 2008 +0100
+++ b/xen/arch/x86/hvm/vmx/vmx.c        Thu Jul 31 12:11:00 2008 +0100
@@ -1971,7 +1971,7 @@ static void ept_handle_violation(unsigne
     }
 
     mfn = gfn_to_mfn(d, gfn, &t);
-    if ( p2m_is_ram(t) && paging_mode_log_dirty(d) )
+    if ( (t != p2m_ram_ro) && p2m_is_ram(t) && paging_mode_log_dirty(d) )
     {
         paging_mark_dirty(d, mfn_x(mfn));
         p2m_change_type(d, gfn, p2m_ram_logdirty, p2m_ram_rw);
diff -r 532094aefa5d -r a09df7d4e94e xen/include/asm-x86/p2m.h
--- a/xen/include/asm-x86/p2m.h Thu Jul 31 11:55:19 2008 +0100
+++ b/xen/include/asm-x86/p2m.h Thu Jul 31 12:11:00 2008 +0100
@@ -61,7 +61,7 @@ typedef enum {
     p2m_invalid = 0,            /* Nothing mapped here */
     p2m_ram_rw = 1,             /* Normal read/write guest RAM */
     p2m_ram_logdirty = 2,       /* Temporarily read-only for log-dirty */
-    p2m_ram_ro = 3,             /* Read-only; writes go to the device model */
+    p2m_ram_ro = 3,             /* Read-only; writes are silently dropped */
     p2m_mmio_dm = 4,            /* Reads and write go to the device model */
     p2m_mmio_direct = 5,        /* Read/write mapping of genuine MMIO area */
 } p2m_type_t;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86: Handle p2m_ram_ro with HAP, Xen patchbot-unstable <=