|
|
|
|
|
|
|
|
|
|
xen-devel
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
|
|
|
|
|