[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] console driver - How domain0 processes console messages ?
On Wed, 16 Feb 2005 07:54:22 +0000, Andrew Warfield <andrew.warfield@xxxxxxxxx> wrote: > Console messages currently share the same shared memory rings that > control messages use. As such, ctrl_if_send_message_noblock(), is a > non-blocking send on these rings, and ctrl_if_notify_controller() is > an event channel notification of a control event. Aside from console > messages, control messages are exactly that -- things like driver > setup and connection. See xen/include/public/io/domain_controller.h > for a full list. > > The control message rings are mapped to user space in dom0 through > calls to libxc, while the notification is delivered to dom0 via > /dev/evtchn. If you are using stable or testing, these rings are > accessed directly by xend, see tools/python/xen/lowlevel/xu/xu.c > (especially the notifier and port objects therein). If you are using > the unstable tree, xcs (tools/xcs/xcs.c) demultiplexes the shared > rings/event channels. > > In xend, consol messages are eventually handled in > tools/python/xen/xend/server/console.py. > > Hope that helps. We plan to separate the console messages from the > control rings in the very near future, allowing them to have a > separate driver and be throttled independent of control messages. > This should make the current interface considerably simpler. Hello Andrew, Thanks for all the info, I am working on a stable tree of XEN. I am actually working on the mini-os. I am now porting some drivers to the mini-os and I am starting with the console driver since it is the simplest and uses the same communication ring as regular event messages. Whenever I try to output to the console of mini-os I get some garbage (non ascii characters). In XenoLinux, the communication ring is found at 2048 bytes offset from the shared_info structure. I am refering to the following macro found in ctrl_if.c ************************************************************************ #define get_ctrl_if() ((control_if_t *)((char *)HYPERVISOR_shared_info + 2048)) ************************************************************************ Are the control rings found at the same location if I boot something else than Linux like for example the mini-os ? I am concern that my console driver in mini-os is sending event notification to domain0 but is however not writing the messages in the correct location of the communication ring and that is why I am getting some bogus output on my console. Next, I am going to look at tools/python/xen/lowlevel/xu/xu.c to see if domain0 is receiving the actual data being sent from mini-os console driver. Thanks Richard ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |