[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] console driver - How domain0 processes console messages ?

  • To: andrew.warfield@xxxxxxxxxxxx
  • From: Richard <judicator3@xxxxxxxxx>
  • Date: Wed, 16 Feb 2005 03:38:05 -0500
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxxxx
  • Delivery-date: Wed, 16 Feb 2005 08:45:28 +0000
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:reply-to:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:references; b=Soyikoqaa0b29Gm3mc61I+cX6Co38F05rDIflj+S9RXhYxP482dF7BCnTGIkUOpJfoFSdXaxvHJ3BA/vZIXsRwCQ1lW2dM5CSFqtrQ1RuRfAmc2VB9IQAulRtoyKpY6bjs0lCfR85uWmClZaQzr7OpgmR0mksXBF93DodvCDuwc=
  • List-id: List for Xen developers <xen-devel.lists.sourceforge.net>

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

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.


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.
Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.