[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [help] problem with `tools/xenstore/xs.c: xs_talkv()`
On Thu, 2012-08-09 at 10:42 +0100, éç wrote: > > > On Thu, Aug 9, 2012 at 4:21 PM, Ian Campbell <Ian.Campbell@xxxxxxxxxx> > wrote: > On Thu, 2012-08-09 at 08:07 +0100, éç wrote: > > > > > > On Wed, Aug 8, 2012 at 4:32 PM, éç <aware.why@xxxxxxxxx> > wrote: > > Hi all, > > > > In xen-4.1.2 src/tools/xenstore/xs.c: xs_talkv > function, > > there are several lines as follow: > > > > > > 437 mutex_lock(&h->request_mutex); > > > > > > > > 438 > > > > > > > > 439 if (!xs_write_all(h->fd, &msg, > sizeof(msg))) > > > > > > > > 440 goto fail; > > > > > > > > 441 > > > > > > > > 442 for (i = 0; i < num_vecs; i++) > > > > > > > > 443 if (!xs_write_all(h->fd, > > iovec[i].iov_base, iovec[i].iov_len)) > > > > > > > > 444 goto fail; > > > > > > > > 445 > > > > > > > > 446 ret = read_reply(h, &msg.type, len); > > > > > > > > 447 if (!ret) > > > > > > > > 448 goto fail; > > > > > > > > 449 > > > > > > > > 450 mutex_unlock(&h->request_mutex); > > > > > > > > > > The above seems to tell me that after writing to > h->fd , the > > read_reply invoking read_message which immediatelly > read from > > hd->fd? > > What did it mean by this? > > > > > > > > > > Thanks > > > > If hd->fd refers to a socket descriptor, it's understandable > that > > writing and then imediatelly reading, in which case the fd > is returned > > by get_handle(xs_daemon_socket(), flags). > > > > > > But when fd is retrived by get_handle(xs_domain_dev(), > flags), it > > means to write to a file and then read from the same file > imediatelly. > > Dose it have something to do with the internal communication > > protocol?! > > > Yes, the xenstore protocol involves both writing messages and > reading > replies, but that seems trivially obvious so I'm afraid I > really have no > idea what your question is nor what is confusing you. Perhaps > describing > in more detail what you are trying to achieve will help? > > Reading http://wiki.xen.org/wiki/Asking_Xen_Devel_Questions > might also > help you consider what it is you are asking. > > > > > > > > Thanks for replying. > > > > > > > > > > > > > > > > Sorry about that, pehaps it results from my lacking of rudimentary > knowledge. > IIRC, when using socket, there are two buffers of which one is for > sending and another for receiving, so I said 'If hd->fd refers to a > socket descriptor, it's understandable that > > writing and then imediatelly reading,' > > > But when fd is retrived by get_handle(xs_domain_dev(), flags), it > seems that sender and receiver both writing to the same file, I have > no idea about the file /proc/xen/xenbus for communicating between > domains? /proc/xen/xenbus is a virtual device which arbitrates access to the xenbus ring, which in turn is used to communicate with the xenstore daemon. You could think of an fd onto this device as a socket connected to the xenstore daemon. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |