I've made the changes in libxenstore as you recommended - xs_daemon|domain_open{_readonly} all alias to xs_open.
Also, in the case of opening read-only, if it fails using sockets, it opens /proc/xen/xenbus with O_RDONLY.
~M On Thu, Dec 9, 2010 at 3:39 AM, Ian Campbell <Ian.Campbell@xxxxxxxxxxxxx> wrote:
On Thu, 2010-12-09 at 10:53 +0000, Vincent Hanquez wrote:
> On 09/12/10 10:21, Ian Campbell wrote:
> >> I think there was at least 1 other practical differences, but it
> >> seems to have eluded me.
>
> Thinking more about it, it might be related to timeout, and/or it might
> be: If xenstored has decided to not answer you, your thread is dead in
> the water, because you end up stuck in kernel land forever (wait not
> interruptible aka D).
>
> (It might have been related to historical reasons, however it could
> still be happening in the unlikely event of xenstored dying)
Sounds plausible.
The current driver seems to use wait_event_interruptible and attempt to
do something sane looking with O_NONBLOCK on read but on write looks
like it may end up waiting for a reply forever if xenstored has gone
away, there's even a "FIXME avoid synchronous wait for response" in the
code.
Ian.
libxenstore_domain.patch
Description: Text Data
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|