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

[Xen-changelog] Quick hack to make sure that pirqs and interdomain event channels are



# HG changeset patch
# User sos22@xxxxxxxxxxxxxxxxxxxx
# Node ID f3f8452978219763b9e5dde244d932cf6a49d9c0
# Parent  bd1642e8599ed685c31a1fcef14062d09af45880

Quick hack to make sure that pirqs and interdomain event channels are
all bound to vcpu0, rather vcpu0 99% of the time and an entirely
random otherwise.  This make sure things work nicely when you start
taking vcpus offline, since vcpu0 can't go offline; the correct
solution is to allow domains to change evtchn<->vcpu bindings.

Signed-off-by: Steven Smith, sos22@xxxxxxxxxxxx

diff -r bd1642e8599e -r f3f845297821 xen/common/event_channel.c
--- a/xen/common/event_channel.c        Wed Jul  6 18:34:16 2005
+++ b/xen/common/event_channel.c        Thu Jul  7 09:27:25 2005
@@ -220,10 +220,12 @@
 
     chn1->u.interdomain.remote_dom  = d2;
     chn1->u.interdomain.remote_port = (u16)port2;
+    chn1->notify_vcpu_id            = 0;
     chn1->state                     = ECS_INTERDOMAIN;
     
     chn2->u.interdomain.remote_dom  = d1;
     chn2->u.interdomain.remote_port = (u16)port1;
+    chn2->notify_vcpu_id            = 0;
     chn2->state                     = ECS_INTERDOMAIN;
 
  out:
@@ -324,8 +326,10 @@
 
     chn = evtchn_from_port(d, port);
 
+    chn->notify_vcpu_id = 0;
+
     d->pirq_to_evtchn[pirq] = port;
-    rc = pirq_guest_bind(d->vcpu[chn->notify_vcpu_id], pirq, 
+    rc = pirq_guest_bind(d->vcpu[0], pirq, 
                          !!(bind->flags & BIND_PIRQ__WILL_SHARE));
     if ( rc != 0 )
     {

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