This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] How console data travel in Xen?

To: NAHieu <nahieu@xxxxxxxxx>
Subject: Re: [Xen-devel] How console data travel in Xen?
From: Anthony Liguori <aliguori@xxxxxxxxxx>
Date: Thu, 30 Jun 2005 13:16:54 -0500
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 30 Jun 2005 18:15:59 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <5d7aca9505063010287ec8117a@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <5d7aca950506300841306bad7a@xxxxxxxxxxxxxx> <42C4190D.7000809@xxxxxxxxxx> <5d7aca9505063010287ec8117a@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mozilla Thunderbird 1.0.2 (X11/20050317)
NAHieu wrote:

Anthony, thank you for a great detail explaination. These information
is really helpful to me.
no problem :-)

But still few questions stand: how do console data go from HW to Xen,
then to dom0? (the above explaination is only about sessions between
dom0 and domU)
Ok, so let's say you enter some keyboard data. Those keyboard actions are going to go to dom0. If you're typing at a console it's getting intercepted by some program that's push that keyboard data to Xend let's say. Xend takes that data and splits it up into CMSG_CONSOLE messages which it then passes through the previously described mechanism to domU.

Then domU sees that data as input on a virtual serial device (the domU kernel's been hacked to use the serial device by default instead of the typical virtual terminals). Then when domU decides it wants to display that data back to the user, it sends it back to dom0 again through the previously described channel.

Xend ends up getting those messages and assembles it into a string which it then displays back on the console.

This is probably a bit clearer if you look at the VM-Tools source tree. Everything is pretty much confined to tools/vm-console.c and xenctld/console.c. Xend does pretty much the same thing but there's a bit more indirection involved.


Anthony Liguori

Thank you a lot,

Xen-devel mailing list