I''m assuming that for an early port of an OS to Xen I need only worry about the VIRQs in evtchan, is this mostly right? I.e. I need not worry about PIRQs for the initial cut since it is a guest, not DOM0. ron ------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun''s Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
Yes, pretty much. I/O will require you to implement virtual drivers based on interdomain communications (i.e., shared memory + inter-domin event channels). You could perhaps get some mileage out of the Linux drivers though (also, using those will allow you to track changes in the API as we move towards a 2.0 release of Xen). -- Keir> > I''m assuming that for an early port of an OS to Xen I need only worry > about the VIRQs in evtchan, is this mostly right? I.e. I need not worry > about PIRQs for the initial cut since it is a guest, not DOM0. > > ron > > > > ------------------------------------------------------- > This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > Learn from the experts at JavaOne(SM), Sun''s Worldwide Java Developer > Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/xen-devel------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun''s Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
On Fri, 18 Jun 2004, Keir Fraser wrote:> > Yes, pretty much. I/O will require you to implement virtual drivers > based on interdomain communications (i.e., shared memory + inter-domin > event channels). You could perhaps get some mileage out of the Linux > drivers though (also, using those will allow you to track changes in > the API as we move towards a 2.0 release of Xen).so the virtual drivers will require PIRQ support in the guest? I was a bit unclear on this one. I''m so used to i8259 oddness and limitations that I figured you would deliver virtual dirver interrupts as VIRQs -- I''m wrong there? Ah well, more reading. I''m trying to get the console up as Plan 9 is now starting the boot process, which in turn is asking me what the root is ... but I can''t tell it :-) ron ------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun''s Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
> On Fri, 18 Jun 2004, Keir Fraser wrote: > > > > > Yes, pretty much. I/O will require you to implement virtual drivers > > based on interdomain communications (i.e., shared memory + inter-domin > > event channels). You could perhaps get some mileage out of the Linux > > drivers though (also, using those will allow you to track changes in > > the API as we move towards a 2.0 release of Xen). > > so the virtual drivers will require PIRQ support in the guest? I was a bit > unclear on this one. I''m so used to i8259 oddness and limitations that I > figured you would deliver virtual dirver interrupts as VIRQs -- I''m wrong > there? > > Ah well, more reading. I''m trying to get the console up as Plan 9 is now > starting the boot process, which in turn is asking me what the root is ... > but I can''t tell it :-) > > ron >The only event notification mechanism provided by Xen is event channels. VIRQs are kind-of a special case of these -- you can bind an event channel to a number of different sources, mainly: 1. VIRQs 2. PIRQs 3. An event-channel point in another domain (i.e., inter-dom channel) In a non-privileged guest, the only VIRQ you need care about is VIRQ_TIMER (although VIRQ_DEBUG may also be useful). You don''t need to worry about PIRQs at all. Everything else is done via inter-domain event channels. Generally these are set up for you by control software in DOM0, and you are told the port address of your end of the channel. You can then send notifications to the far end, and receive async notifications yourself. There is one bootstrap comms channel that is created for you to talk to the control software -- you get told the address of that endpoint in your start_info structure; the shared memory for messages is the second half of the shared_info page. For message formats and a sensible abstraction layer see tools/xend/lib/domain_controller.h (this is #include''d into your OS), and linux-2.4.26-xen-sparse/arch/xen/kernel/evtchn.c, and linux-2.4.26-xen-sparse/arch/xen/kernel/ctrl_if.c, and Yes -- we desperately need some API docs! :-D -- Keir ------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun''s Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel
On Fri, 18 Jun 2004, Keir Fraser wrote:> In a non-privileged guest, the only VIRQ you need care about is > VIRQ_TIMER (although VIRQ_DEBUG may also be useful).good to know.> Everything else is done via inter-domain event channels. Generally > these are set up for you by control software in DOM0, and you are told > the port address of your end of the channel. You can then send > notifications to the far end, and receive async notifications > yourself.so console I/O goes through that shared-memory channel? I had noticed that one.> There is one bootstrap comms channel that is created for you to talk > to the control software -- you get told the address of that endpoint > in your start_info structure; the shared memory for messages is the > second half of the shared_info page. For message formats and a > sensible abstraction layer see tools/xend/lib/domain_controller.h > (this is #include''d into your OS), and > linux-2.4.26-xen-sparse/arch/xen/kernel/evtchn.c, and > linux-2.4.26-xen-sparse/arch/xen/kernel/ctrl_if.c, andyes, these are my reference right now, the key is figuring out how to use them :-) It seems that kicking off the shared memory message channel is done by a callback from Xen to guest OS, right? That''s how I read it right now. anyway, it''s getting closer. It''s overall pretty nice. ron ------------------------------------------------------- This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference Learn from the experts at JavaOne(SM), Sun''s Worldwide Java Developer Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKND _______________________________________________ Xen-devel mailing list Xen-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xen-devel