Hi, I want to write a Xen-aware application but I am encountering some problems. For my applications to be Xen aware, the ones that are running in non domain 0 need to be able to obtain some bootstrap information from the program running in domain 0. This is very petty information (as most IPC will be done using TCP/IP). Basically my approach was this: 1. Process in domain-0 writes a key to /local/domain/<DomID>. (<DomID> refers to the domain id number assigned to a newly created vm) 2. Process in unprivileged domain reads from /local/domain/<DomID> Of course you can see my problem: The unprivileged domain has no idea which /local/domain/<DomID> is his! My first question: Is there a way for an unprivileged domain to find out his <DomID> in user-space? My second approached when I ran into this problem was: 1. Process in domain-0 writes a key to /local/domain/<DomID>. 2. Kernel-space driver in the unprivileged domain reads this value (or watches this key) using the xs_* functions (which i believe already defaults to the unprivileged domain''s home name-space) and exposes a character device (/dev/my_program_info) which prints out this information. 3. Process in unprivileged domain just reads /dev/my_program_info This second solution is too messy though! I believe I can still take the first approach especially since the xs_* calls in the kernel default to the home name-space. Why can''t there be a user-space method to do this? Any help would be greatly appreciated, Thank You! Rian Hunter _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 6/29/06, Rian Hunter <rian@mit.edu> wrote:> Hi, > > I want to write a Xen-aware application but I am encountering some > problems. For my applications to be Xen aware, the ones that are running > in non domain 0 need to be able to obtain some bootstrap information > from the program running in domain 0. This is very petty information (as > most IPC will be done using TCP/IP).Why not just put this info in the domU kernel cmdline? Jacob _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Thu, Jun 29, 2006 at 04:31:55PM -0400, Rian Hunter wrote:> Basically my approach was this: > > 1. Process in domain-0 writes a key to /local/domain/<DomID>. (<DomID> > refers to the domain id number assigned to a newly created vm) > 2. Process in unprivileged domain reads from /local/domain/<DomID> > > Of course you can see my problem: The unprivileged domain has no idea > which /local/domain/<DomID> is his! My first question: Is there a way > for an unprivileged domain to find out his <DomID> in user-space?you can access /local/domain/<self>/.. by just using relative path instead of absolute path. ex: if you want to read /local/domain/5/something/x from domain 5 you can just do : value = xs_read("something/x"); Cheers, -- Vincent Hanquez _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Jun 30, 2006, at 8:21 AM, Jacob Gorm Hansen wrote:> On 6/29/06, Rian Hunter <rian@mit.edu> wrote: >> Hi, >> >> I want to write a Xen-aware application but I am encountering some >> problems. For my applications to be Xen aware, the ones that are >> running >> in non domain 0 need to be able to obtain some bootstrap information >> from the program running in domain 0. This is very petty >> information (as >> most IPC will be done using TCP/IP). > > Why not just put this info in the domU kernel cmdline?That''s a good question. The reason I can''t is because my program won''t always have control over the starting/stopping of VM, nor will it have access to the configuration as well.> JacobRian _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Jun 30, 2006, at 8:29 AM, Vincent Hanquez wrote:> you can access /local/domain/<self>/.. by just using relative path > instead > of absolute path. > > ex: if you want to read /local/domain/5/something/x from domain 5 > you can > just do : > > value = xs_read("something/x");Oh can I? That''s what I thought except when I do: $ xenstore-read something it fails. Maybe that''s because xenstore-read always does an absolute path. I''ve read the source and it doesn''t seem that way, I''ll guess I''ll try writing a program that uses the xs library to be sure.> Cheers, > -- > Vincent HanquezThanks! Rian Hunter _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On Fri, Jun 30, 2006 at 10:34:45AM -0400, Rian Hunter wrote:> > On Jun 30, 2006, at 8:29 AM, Vincent Hanquez wrote: > >you can access /local/domain/<self>/.. by just using relative path > >instead > >of absolute path. > > > >ex: if you want to read /local/domain/5/something/x from domain 5 > >you can > >just do : > > > >value = xs_read("something/x"); > > Oh can I? That''s what I thought except when I do: > > $ xenstore-read something > > it fails. Maybe that''s because xenstore-read always does an absolute > path. I''ve read the source and it doesn''t seem that way, I''ll guess > I''ll try writing a program that uses the xs library to be sure.It probably fails because of permissions -- you can only read what the tools in domain 0 have explicitly allowed you to read. I''ve just added some notes to the XenBus page on the wiki wrt permissions -- they are worth reading. Ewan. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel