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

[Xen-changelog] [xen-unstable] xend: populate HVM guest grant table on boot



# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1328894690 0
# Node ID 9ad1e42c341bc78463b6f6610a6300f75b535fbb
# Parent  0dcb9d1e7b554a9f6f76b62b38a139acf9b2180a
xend: populate HVM guest grant table on boot

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---


diff -r 0dcb9d1e7b55 -r 9ad1e42c341b tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c Fri Feb 10 16:07:07 2012 +0000
+++ b/tools/python/xen/lowlevel/xc/xc.c Fri Feb 10 17:24:50 2012 +0000
@@ -1008,6 +1008,30 @@
     return Py_BuildValue("{}");
 }
 
+static PyObject *pyxc_gnttab_hvm_seed(XcObject *self,
+                                     PyObject *args,
+                                     PyObject *kwds)
+{
+    uint32_t dom, console_domid, xenstore_domid;
+    unsigned long xenstore_gmfn = 0;
+    unsigned long console_gmfn = 0;
+    static char *kwd_list[] = { "domid",
+                               "console_gmfn", "xenstore_gmfn",
+                               "console_domid", "xenstore_domid", NULL };
+    if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iiiii", kwd_list,
+                                      &dom,
+                                     &console_gmfn, &xenstore_gmfn,
+                                     &console_domid, &xenstore_domid) )
+        return NULL;
+
+    if ( xc_dom_gnttab_hvm_seed(self->xc_handle, dom,
+                               console_gmfn, xenstore_gmfn,
+                               console_domid, xenstore_domid) != 0 )
+        return pyxc_error_to_exception(self->xc_handle);
+
+    return Py_None;
+}
+
 static PyObject *pyxc_evtchn_alloc_unbound(XcObject *self,
                                            PyObject *args,
                                            PyObject *kwds)
@@ -2439,6 +2463,17 @@
       " vcpu_avail [long, 1]: Which Virtual CPUS available.\n\n"
       "Returns: [int] 0 on success; -1 on error.\n" },
 
+    { "gnttab_hvm_seed",
+      (PyCFunction)pyxc_gnttab_hvm_seed,
+      METH_KEYWORDS, "\n"
+      "Initialise HVM guest grant table.\n"
+      " dom     [int]:      Identifier of domain to build into.\n"
+      " console_gmfn [int]: \n"
+      " xenstore_gmfn [int]: \n"
+      " console_domid [int]: \n"
+      " xenstore_domid [int]: \n"
+      "Returns: None on sucess. Raises exception on error.\n" },
+
     { "hvm_get_param", 
       (PyCFunction)pyxc_get_hvm_param, 
       METH_VARARGS | METH_KEYWORDS, "\n"
diff -r 0dcb9d1e7b55 -r 9ad1e42c341b tools/python/xen/xend/XendConstants.py
--- a/tools/python/xen/xend/XendConstants.py    Fri Feb 10 16:07:07 2012 +0000
+++ b/tools/python/xen/xend/XendConstants.py    Fri Feb 10 17:24:50 2012 +0000
@@ -52,6 +52,7 @@
 HVM_PARAM_HPET_ENABLED = 11
 HVM_PARAM_ACPI_S_STATE = 14
 HVM_PARAM_VPT_ALIGN    = 16
+HVM_PARAM_CONSOLE_PFN  = 17
 HVM_PARAM_NESTEDHVM    = 24 # x86
 
 restart_modes = [
diff -r 0dcb9d1e7b55 -r 9ad1e42c341b tools/python/xen/xend/image.py
--- a/tools/python/xen/xend/image.py    Fri Feb 10 16:07:07 2012 +0000
+++ b/tools/python/xen/xend/image.py    Fri Feb 10 17:24:50 2012 +0000
@@ -971,6 +971,13 @@
         xc.hvm_set_param(self.vm.getDomid(), HVM_PARAM_STORE_EVTCHN,
                          store_evtchn)
 
+        console_mfn = xc.hvm_get_param(self.vm.getDomid(), 
HVM_PARAM_CONSOLE_PFN)
+        xc.gnttab_hvm_seed(domid = self.vm.getDomid(),
+                           console_gmfn = console_mfn,
+                           xenstore_gmfn = rc['store_mfn'],
+                           console_domid = 0,
+                           xenstore_domid = 0)
+
         return rc
 
 

_______________________________________________
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®.