At 10:13 +0100 on 13 Oct (1286964818), Jiang, Yunhong wrote:
> When I firstly checking the code, I also think the xs_domain_open()
> should be more approprate. But it is a bit surprise that it is not
> used at all, except one utility , xentore-client.c , in xenstore
> directory, which definitely not need this (I assume xenstore-ls should
> always be in same domain as xenstore daemon). I suspect if
> xs_domain_open() and the xenfs is really widely tested.
I had thought it was used by stubdom qemu, but it seems not - not sure
how that works then. It isn't specifically tested but I know that some
people have been using it successfully in the last month or two.
> >(IMHO xs_daemon_open() should be killed entirely, but there are some
> >dom0 kernels where the xs_domain_open() connection isn't allowed to send
> >XS_INTRODUCE commands. That shouldn't make a difference here, though).
> But we should at least add xs_domain_close() firstly, matching
> xs_domain_open() with xs_deamon_close() is really something strange :-)
I think the right thing to do would be have xs_daemon_open hide the
details of whether the connection is over a socket or xenbus, and not
have every caller have to care about that.
In the meantime if the domain connection isn't working for you, you
could always copy the logic from libxl of trying daemon first.
> >> Following simple patch make it work, but I'm not sure if it is the
> >> right method, will fs-backend run in other domain?
> >What does the change to ROOT_NODE do in this patch? Any chance that it
> >fixes the problem by itself? :)
> No, it does not work.
> >> Thanks
> >> --jyh
> >> diff -r a33886146b45 tools/fs-back/fs-backend.c
> >> --- a/tools/fs-back/fs-backend.c Fri Oct 08 11:41:57 2010 +0100
> >> +++ b/tools/fs-back/fs-backend.c Wed Oct 13 15:10:22 2010 +0800
> >> @@ -462,7 +462,7 @@ int main(void)
> >> sigaction(SIGUSR2, &act, NULL);
> >> /* Open the connection to XenStore first */
> >> - xsh = xs_domain_open();
> >> + xsh = xs_daemon_open();
> >> assert(xsh != NULL);
> >> xs_rm(xsh, XBT_NULL, ROOT_NODE);
> >> /* Create watch node */
> >> diff -r a33886146b45 tools/fs-back/fs-backend.h
> >> --- a/tools/fs-back/fs-backend.h Fri Oct 08 11:41:57 2010 +0100
> >> +++ b/tools/fs-back/fs-backend.h Wed Oct 13 15:10:33 2010 +0800
> >> @@ -9,7 +9,7 @@
> >> #include <xen/io/fsif.h>
> >> #include "sys-queue.h"
> >> -#define ROOT_NODE "backend/vfs"
> >> +#define ROOT_NODE "/local/domain/0/backend/vfs"
> >> #define EXPORTS_SUBNODE "exports"
> >> #define EXPORTS_NODE ROOT_NODE"/"EXPORTS_SUBNODE
> >> #define WATCH_NODE EXPORTS_NODE"/requests"
> >> ~
> >> ~
> >> _______________________________________________
> >> Xen-devel mailing list
> >> Xen-devel@xxxxxxxxxxxxxxxxxxx
> >> http://lists.xensource.com/xen-devel
> >Tim Deegan <Tim.Deegan@xxxxxxxxxx>
> >Principal Software Engineer, XenServer Engineering
> >Citrix Systems UK Ltd. (Company #02937203, SL9 0BG)
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, XenServer Engineering
Citrix Systems UK Ltd. (Company #02937203, SL9 0BG)
Xen-devel mailing list