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

[Xen-changelog] Tools changes for per-vcpu io event channel on IA64.



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID e33ebd1437675bc2a4a01f63de359783fc14653f
# Parent  70575c8cab99332d3836be101e6f3b6cf7228715
Tools changes for per-vcpu io event channel on IA64.

Signed-off-by Kevin Tian <Kevin.tian@xxxxxxxxx>

diff -r 70575c8cab99 -r e33ebd143767 tools/libxc/xc_ia64_stubs.c
--- a/tools/libxc/xc_ia64_stubs.c       Fri Feb 24 07:49:32 2006
+++ b/tools/libxc/xc_ia64_stubs.c       Fri Feb 24 09:29:09 2006
@@ -569,12 +569,14 @@
 static int setup_guest(  int xc_handle,
                          uint32_t dom, unsigned long memsize,
                          char *image, unsigned long image_size,
-                         unsigned int control_evtchn,
+                         uint32_t vcpus,
                          unsigned int store_evtchn,
                          unsigned long *store_mfn)
 {
     unsigned long page_array[2];
     shared_iopage_t *sp;
+    int i;
+
     // FIXME: initialize pfn list for a temp hack
     if (xc_ia64_get_pfn_list(xc_handle, dom, NULL, -1, -1) == -1) {
        PERROR("Could not allocate continuous memory");
@@ -612,7 +614,18 @@
                page_array[0])) == 0)
        goto error_out;
     memset(sp, 0, PAGE_SIZE);
-    sp->sp_global.eport = control_evtchn;
+
+    for (i = 0; i < vcpus; i++) {
+        uint32_t vp_eport;
+
+        vp_eport = xc_evtchn_alloc_unbound(xc_handle, dom, 0);
+        if (vp_eport < 0) {
+            fprintf(stderr, "Couldn't get unbound port from VMX guest.\n");
+            goto error_out;
+        }
+        sp->vcpu_iodata[i].vp_eport = vp_eport;
+    }
+
     munmap(sp, PAGE_SIZE);
 
     return 0;
@@ -625,7 +638,6 @@
                  uint32_t domid,
                  int memsize,
                  const char *image_name,
-                 unsigned int control_evtchn,
                  unsigned int vcpus,
                  unsigned int pae,
                  unsigned int acpi,
@@ -668,8 +680,8 @@
 
     memset(ctxt, 0, sizeof(*ctxt));
 
-    if ( setup_guest(xc_handle, domid, (unsigned long)memsize, image, 
image_size, 
-                       control_evtchn, store_evtchn, store_mfn ) < 0 ){
+    if ( setup_guest(xc_handle, domid, (unsigned long)memsize, image,
+                     image_size, vcpus, store_evtchn, store_mfn ) < 0 ){
         ERROR("Error constructing guest OS");
         goto error_out;
     }

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