[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [IA64] memmap: save/restore implemented



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1180043311 21600
# Node ID 010370333a880c2a4a87f785c732b12f3a236d81
# Parent  27735ce15f9770e64938a080054d1a1d41dad5f8
[IA64] memmap: save/restore implemented

Implemented XENMEM_maximum_gpfn for domain save/restore with domain memmap.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c |   15 +++++++++++++++
 xen/arch/ia64/xen/mm.c                            |    6 ++++++
 xen/include/asm-ia64/mm.h                         |    2 +-
 3 files changed, 22 insertions(+), 1 deletion(-)

diff -r 27735ce15f97 -r 010370333a88 
linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c Thu May 24 15:43:58 
2007 -0600
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c Thu May 24 15:48:31 
2007 -0600
@@ -430,6 +430,21 @@ xencomm_privcmd_memory_op(privcmd_hyperc
 
                return ret;
        }
+       case XENMEM_maximum_gpfn:
+       {
+               domid_t kern_domid;
+               domid_t __user *user_domid;
+               struct xencomm_handle *desc;
+
+               user_domid = (domid_t __user *)hypercall->arg[1];
+               if (copy_from_user(&kern_domid, user_domid, sizeof(domid_t)))
+                       return -EFAULT;
+               desc = xencomm_create_inline(&kern_domid);
+
+               ret = xencomm_arch_hypercall_memory_op(cmd, desc);
+
+               return ret;
+       }
        case XENMEM_translate_gpfn_list:
        {
                xen_translate_gpfn_list_t kern_op;
diff -r 27735ce15f97 -r 010370333a88 xen/arch/ia64/xen/mm.c
--- a/xen/arch/ia64/xen/mm.c    Thu May 24 15:43:58 2007 -0600
+++ b/xen/arch/ia64/xen/mm.c    Thu May 24 15:48:31 2007 -0600
@@ -368,6 +368,12 @@ mm_final_teardown(struct domain* d)
         d->arch.shadow_bitmap = NULL;
     }
     mm_p2m_teardown(d);
+}
+
+unsigned long
+domain_get_maximum_gpfn(struct domain *d)
+{
+    return (d->arch.convmem_end + PAGE_SIZE - 1) >> PAGE_SHIFT;
 }
 
 // stolen from share_xen_page_with_guest() in xen/arch/x86/mm.c
diff -r 27735ce15f97 -r 010370333a88 xen/include/asm-ia64/mm.h
--- a/xen/include/asm-ia64/mm.h Thu May 24 15:43:58 2007 -0600
+++ b/xen/include/asm-ia64/mm.h Thu May 24 15:48:31 2007 -0600
@@ -506,6 +506,6 @@ int steal_page(
 
 #define domain_clamp_alloc_bitsize(d, b) (b)
 
-#define domain_get_maximum_gpfn(d) (-ENOSYS)
+unsigned long domain_get_maximum_gpfn(struct domain *d);
 
 #endif /* __ASM_IA64_MM_H__ */

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.