[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Problem with xenconsole
Hi, Something strange is going on with the xenconsole: There is no console output on the first domain I connect to. Connecting to any further domain shows console output. This impacts both PV and HVM guests (latter one only if serial console is configured). Console input is working so you can work blindly on it (or connect via ssh :) How to reproduce: Boot your Xen machine, make sure xend is running. Launch some guests and connect to the console with: xm create -c <guest-config> or xm create <guest-config> xm console <domid> *My* understanding how xenconsole works: xenconsoled opens one tty for each launched domU via openpty(). xenconsoled tells xenstored which pty (e.g. /dev/pts/3) is used for that domU. The masterfd will be used for console input/output. It writes anything read from the ring-buffer into the pty (= console output) and writes anything read from the pty into the ring-buffer (= console input). xenconsoled multiplexes the console ring-buffer content to the different domUs ptys. When the user connects to the console, the xenconsole client runs. It queries xenstored which pty to use for that domU. It uses select() to wait for any input from stdin or any output from the pty becoming available. When the user types something on the keyboard, xenconsole reads this from stdin and writes this into the pty and returns back to select(). When output from the pty is available, xenconsole reads it from the pty and writes this to stdout. What I figured out or what is going wrong: I ktraced xenconsoled, launched a guest and connected to its console. In the ktrace I saw, xenconsoled (= daemon) actually receives the console output and writes into the pty. I also ktraced xenconsole (= client) and I also put some debug fprintf(stderr, ...) into xenconsole to noticed, select() reacts as expected on console input. But: On the first guest I connect to, select() does not notice when an output is available. That is why no console output is there and why you can work blindly on the guest. On any further guest you connect to, select() actually does notice when an output is available and xenconsole writes this to stdout. Anyone have seen this, too? I suspect there's some terminal initialization missing in xensonsoled (daemon) but I'm stuck there. Christoph -- AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |