hi,
I am trying to bind an event channel to my domain using the following code:
#include "xc.h"
int main()
{
int xc_handle = xc_interface_open();
int p1=0;
int p2=0;
int r;
r = xc_evtchn_alloc_unbound(xc_handle,
1,
&p2);
printf("%d ports %d %d\n", r,p1,p2);
r = xc_evtchn_bind_interdomain(xc_handle,
DOMID_SELF,1,
&p1,&p2);
printf("%d ports %d %d\n", r,p1,p2);
r = xc_evtchn_send(xc_handle, p1);
printf("send %d\n", r);
return 0;
}
On a freshly booted Xen with one domU that works, printing:
0 ports 0 14
0 ports 15 14
send 0
however, the next time I run it I get:
0 ports 0 16
-1 ports 0 16
send -1
The bind_interdomain hypercall fails in Xen in common/evtchn.c, in the test:
else if ( port2 >= d2->max_event_channel )
{
printk("port2 %d max_event_channel %d\n",
port2,d2->max_event_channel);
ERROR_EXIT(-EINVAL);
}
The printk I have added prints:
(XEN) port2 16 max_event_channel 16
-- In general, max_event_channel seems to stop being increased after the
first bind call. What am I doing wrong here?
thanks,
Jacob
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
|