[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] Implement event channels in two minios domains
I want to implement event channels in two minios domains, DomA and DomB. DomA allocates the channel, DomB binds the channel to its local port and then sends a event. But DomA doesn't receive the event(maybe received but didn't handle the event). I want to know if i lost a procedure. Here is my code, main func in minios, and the two attachments are the printed results. Thanks. int main() { sleep(1); struct xs_handle *xs; unsigned int domid, remote_dom; evtchn_port_t local_port, remote_port; /* Get a connection to the daemon */ xs = xs_daemon_open(); if(xs == NULL) { perror( "---> xs_deamon_open:" ); } printf( "---> xs_deamon_open OK!\n" ); //get the current dom domid = get_domid(xs); int is_parent= domid % 2 == 0 ? 0 : 1; if(is_parent == 1) goto parent; else goto child; parent: printf( "---> I am first DomU!\n" ); //wait for next dom to start sleep(30); remote_dom = domid + 1; //allocate a event channel evtchn_alloc_unbound(remote_dom, evt_handler, NULL, &local_port); printf("local port: %d\n", local_port); //bind VCPU 0 evtchn_bind_vcpu_t bind_vcpu; bind_vcpu.port = local_port; bind_vcpu.vcpu = 0; HYPERVISOR_event_channel_op(EVTCHNOP_bind_vcpu, &bind_vcpu); //write_xenstore(domid, "evtchn_port", local_port); //wait the event while(1) { sleep(5); } return 0; child: printf( "---> I am child DomU!\n" ); remote_dom = domid - 1; //wait the previous dom to allocate event channel sleep(40); //get the remote_port and bind the channel to local_port //remote_port = read_xenstore(remote_dom, "evtchn_port"); remote_port = 5; evtchn_bind_interdomain(remote_dom, remote_port, evt_handler, NULL, &local_port); printf("local port: %d\n", local_port); sleep(5); //send the event evtchn_send_t send; send.port = local_port; HYPERVISOR_event_channel_op(EVTCHNOP_send, &send); printf("---> send the event\n"); while(1) { sleep(5); } return 0; }
_______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |