Hello all I am a newbie in Python & have been trying to understand the set of operations performed by XEND in order to create a new domain. Can someone answer the following questions about domain creation 1. The set of Hypercalls requests made by XEND to XEN thru the privcmd driver 2. What event channels get created & what entities are involved in setting up the event channels. 3. A control channel is supposed to exist between XEND & the domain. If XEND listens to one end of the channel, then what entity in the domain listens to the other end If someone can point me to some document for more details I would appreciate it Thanks Nauzad ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Anthony Liguori
2005-Jan-15 23:49 UTC
Re: [Xen-devel] What is domain creation flow-chart in XEND
I can answer some of this. This is what I''ve been able to figure out. It could be wrong. Nauzad Sadry wrote:>Hello all > >I am a newbie in Python & have been trying to understand the set of >operations performed by XEND in order to create a new domain. Can >someone answer the following questions about domain creation > >1. The set of Hypercalls requests made by XEND to XEN thru the privcmd driver > >It''s a two step process. First the raw domain is created, then Linux (or something else) is loaded. For the first part, it''s actually quite simple. Xend issues a DOM0_CREATEDOMAIN hypercall. That will create an empty domain with a certain amount of CPUs and visible memory. The next part is more complicated. For Linux, it''s all pretty much done in the xc_linux_build() function (tools/libxc/xc_linux_build.c). This code is straight foreword.>2. What event channels get created & what entities are involved in >setting up the event channels. > >From what I can tell, Linux always listens on event channel 1. So, Xend just binds a local port to the domains port 1. After binding, it maps a shared memory region and works on a ring queue passing back and forth control_msg_t structures. This is how virtual devices are setup. I imagine each device gets it''s own channel but I do not know for sure.>3. A control channel is supposed to exist between XEND & the domain. >If XEND listens to one end of the channel, then what entity in the >domain listens to the other end > >The domain''s kernel I believe.>If someone can point me to some document for more details I would appreciate it > >I posted some documentation to xc.h. This is where most of this work is done. I don''t know of any documentation. The bulk of all this is done in libxc, xu.c (this binding implements a bunch of functionality), and x2d2 (this isn''t used by Xend but is a bit easier to understand than Xend). Regards,>Thanks > >Nauzad > > >------------------------------------------------------- >The SF.Net email is sponsored by: Beat the post-holiday blues >Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. >It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt >_______________________________________________ >Xen-devel mailing list >Xen-devel@lists.sourceforge.net >https://lists.sourceforge.net/lists/listinfo/xen-devel > > >------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Mark Williamson
2005-Jan-16 01:06 UTC
Re: [Xen-devel] What is domain creation flow-chart in XEND
> From what I can tell, Linux always listens on event channel 1. So, > Xend just binds a local port to the domains port 1. After binding, it > maps a shared memory region and works on a ring queue passing back and > forth control_msg_t structures. This is how virtual devices are setup. > > I imagine each device gets it''s own channel but I do not know for sure.Every domain has a "control interface" as you described, which is used for low bandwidth communications (console and various configuration messages). Amongst other things, the control channel is used to negotiate the locations of shared memory pages that the network and block drivers can use for high-bandwidth communications.> The domain''s kernel I believe.See linux-2.6.10-sparse/arch/xen/kernel/ctrl_if.c and linux-2.6.10-sparse/include/asm-xen/ctrl_if.h for code relating to the kernel control interface driver.> >If someone can point me to some document for more details I would > > appreciate itAndy wrote an explanation of how the block device drivers work. It''s in docs/misc/blkif-drivers-explained.txt. You might find some pertinent information there, particularly when you look at how the drivers talk to each other. HTH, Mark> I posted some documentation to xc.h. This is where most of this work is > done. I don''t know of any documentation. The bulk of all this is done > in libxc, xu.c (this binding implements a bunch of functionality), and > x2d2 (this isn''t used by Xend but is a bit easier to understand than Xend). > > Regards, > > >Thanks > > > >Nauzad > > > > > >------------------------------------------------------- > >The SF.Net email is sponsored by: Beat the post-holiday blues > >Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > >It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > >_______________________________________________ > >Xen-devel mailing list > >Xen-devel@lists.sourceforge.net > >https://lists.sourceforge.net/lists/listinfo/xen-devel > > ------------------------------------------------------- > The SF.Net email is sponsored by: Beat the post-holiday blues > Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/xen-devel------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Nauzad Sadry
2005-Jan-17 04:07 UTC
Re: [Xen-devel] What is domain creation flow-chart in XEND
Hello folks how does XEND pass the information abt the control channel in DomainU??. I see xc_linux_build() function does set the control channel info, but I do not see anybody in XEND using xc_linux_build (). Am I correct ??>From what I am understanding x2d2 is like a miniXend for testingpurposes. The actual XEND does NOT communicate with x2d2. Thanks Nauzad On Sun, 16 Jan 2005 01:06:23 +0000, Mark Williamson <maw48@cl.cam.ac.uk> wrote:> > From what I can tell, Linux always listens on event channel 1. So, > > Xend just binds a local port to the domains port 1. After binding, it > > maps a shared memory region and works on a ring queue passing back and > > forth control_msg_t structures. This is how virtual devices are setup. > > > > I imagine each device gets it''s own channel but I do not know for sure. > > Every domain has a "control interface" as you described, which is used for low > bandwidth communications (console and various configuration messages). > Amongst other things, the control channel is used to negotiate the locations > of shared memory pages that the network and block drivers can use for > high-bandwidth communications. > > > The domain''s kernel I believe. > > See linux-2.6.10-sparse/arch/xen/kernel/ctrl_if.c and > linux-2.6.10-sparse/include/asm-xen/ctrl_if.h for code relating to the kernel > control interface driver. > > > >If someone can point me to some document for more details I would > > > appreciate it > > Andy wrote an explanation of how the block device drivers work. It''s in > docs/misc/blkif-drivers-explained.txt. You might find some pertinent > information there, particularly when you look at how the drivers talk to each > other. > > HTH, > Mark > > > I posted some documentation to xc.h. This is where most of this work is > > done. I don''t know of any documentation. The bulk of all this is done > > in libxc, xu.c (this binding implements a bunch of functionality), and > > x2d2 (this isn''t used by Xend but is a bit easier to understand than Xend). > > > > Regards, > > > > >Thanks > > > > > >Nauzad > > > > > > > > >------------------------------------------------------- > > >The SF.Net email is sponsored by: Beat the post-holiday blues > > >Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > > >It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > > >_______________________________________________ > > >Xen-devel mailing list > > >Xen-devel@lists.sourceforge.net > > >https://lists.sourceforge.net/lists/listinfo/xen-devel > > > > ------------------------------------------------------- > > The SF.Net email is sponsored by: Beat the post-holiday blues > > Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. > > It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/xen-devel >------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Anthony Liguori
2005-Jan-17 05:00 UTC
Re: [Xen-devel] What is domain creation flow-chart in XEND
Nauzad Sadry wrote:>Hello folks > >how does XEND pass the information abt the control channel in DomainU??. > > >What information in particular are you referring to? Are you talking about how it passes the information through the control channel or how it sets up the control channel?>I see xc_linux_build() function does set the control channel info, but >I do not see anybody in XEND using xc_linux_build (). Am I correct ?? > >Yeah, this has confused me a little too. xfrd does call xc_linux_build. Here''s my understanding (this could be totally wrong). Xend uses the config file to build a LISP expression that it passes to xfrd. xfrd is what actually calls xc_linux_build. docs/misc/xend.tex and docs/misc/xen_config.html explain this stuff although neither mentions xfrd.>>From what I am understanding x2d2 is like a miniXend for testing >purposes. The actual XEND does NOT communicate with x2d2. > >This is correct. Looks like x2d2 is a bit older too because it doesn''t actually do an evtchn_send which I believe means it won''t actually work with today''s kernels. Regards,>Thanks > >Nauzad > >------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Andrew Warfield
2005-Jan-17 08:16 UTC
Re: [Xen-devel] What is domain creation flow-chart in XEND
>how does XEND pass the information abt the control channel in DomainU??.the control rings live on the shared page that is passed to new domains at start-of-day. see the control_if_t struct in xen/include/public/io/domain_controller.h.> Yeah, this has confused me a little too. xfrd does call > xc_linux_build. Here''s my understanding (this could be totally wrong). > Xend uses the config file to build a LISP expression that it passes to > xfrd. xfrd is what actually calls xc_linux_build. docs/misc/xend.tex > and docs/misc/xen_config.html explain this stuff although neither > mentions xfrd.In the general case of building a new domain, xend calls the domain builder directly. you don''t see the linux_build call because python builds it inline: tools/python/xen/xend/XendDomainInfo.py:736: buildfn = getattr(xc, ''%s_build'' % ostype) xfrd is only used for domain migration.> >>From what I am understanding x2d2 is like a miniXend for testing > >purposes. The actual XEND does NOT communicate with x2d2.This is correct, x2d2 is a simpler xend that steven smith wrote. I don''t think that it will build with the current tree. hth, a. ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It''s fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel