[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Sched_op hypercall small questions
On Thu, Sep 22, 2011 at 5:00 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx> wrote: > On Thu, 2011-09-22 at 08:43 +0100, Daniel Castro wrote: >> On Thu, Sep 22, 2011 at 3:30 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> >> wrote: > >> Thanks for the answer Ian, one question: If I do not manually change >> the mask bit, then after writing to the ring and the response arrives >> how can I be sure that xenstore is delivering an event? > > Add some printfs in the daemon? > >> I am suspecting that xenstore does not use event notification for simple >> read and write operations. Could I be right? > > I don't think so, how else would it notify the client end that it should > look into the ring? > > In the daemon the do_read() function calls the same common send_reply() > as most (all?) other commands. send_reply queues a message on > conn->out_list. Later on write_messages() dequeues it and calls the > connections write method, which is writechn() in this case (the other > case is a local socket connection which uses writefd but isn't relevant > here). writechn() has an xc_evtchn_notify() at the end. You are right as usual, using trace in the deamon in function writechn I get: DEBUG notify dom 1 on port 42 Form /usr/lib/xen/bin/lsevtchn I get: 42: VCPU 0: Interdomain (Connected) - Remote Domain 1, Port 2 And from the guest I have: Event is interdomain to dom 0 port 42 So they are interconected and the xenstore deamon is delivering the event. I am going to check the ring waiting function there has to be something I am missing.... thanks, Daniel > > Ian. > >> >> > >> >> >> >> Thanks >> >> > >> >> >>>> 3. If I issue the hypercall and the event never comes is it possible >> >> >>>> to to yield the CPU for ever? >> >> >>> Yes, if you do not specify a timeout. >> >> >> Keir thanks for the answer. >> >> >> >> >> >> I am trying to read from xenstore, so I have the following: >> >> >> I write on my xenstore ring the query I want, then, >> >> >> hypercall_event_channel_op(EVTCHNOP_send ... >> >> >> If I read the ring inmediatly the answer is not ready so I issue a >> >> >> hypercall_sched_op(SCHEDOP_poll, &poll); >> >> >> But while I am entering the yield state the answer comes, so the event >> >> >> is never seen because it has already been delivered. >> >> > >> >> > It generally only makes sense to poll on masked events. >> >> > >> >> >> >> >> >> If I use some way to wait (just for very brief instant) after the >> >> >> event_channel_op send then, when I check the ring the answer is there; >> >> >> And I do not need to yield the CPU. >> >> >> >> >> >> Should I issue the wait after the send, rather than when I am about to >> >> >> read the answer? >> >> > >> >> > What environment is this in? >> >> > >> >> > J >> >> > >> >> >> >> >> >> >> >> -- >> >> +-=====---------------------------+ >> >> | +---------------------------------+ | This space intentionally blank >> >> for notetaking. >> >> | | | Daniel Castro, | >> >> | | | Consultant/Programmer.| >> >> | | | U Andes | >> >> +-------------------------------------+ >> >> >> >> >> >> >> > >> > >> > >> >> >> > > > -- +-=====---------------------------+ | +---------------------------------+ | This space intentionally blank for notetaking. | | | Daniel Castro, | | | | Consultant/Programmer.| | | | U Andes | +-------------------------------------+ _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |