3 messages in com.xensource.lists.xen-devel[Xen-devel] Xen attention key
FromSent OnAttachments
Bin Ren17 Nov 2003 10:13 
Bin Ren17 Nov 2003 10:41 
Keir Fraser17 Nov 2003 11:30 
Subject:[Xen-devel] Xen attention key
From:Bin Ren (br2@cam.ac.uk)
Date:11/17/2003 10:13:09 AM
List:com.xensource.lists.xen-devel

Xen internally registers a series of key handlers. When a key is pressed, the corresponding key handler is invoked, which 'printk' (not 'printf' to stdout) internal statistical information, very useful for debugging.

When you are using a serial line, you directly enter this special mode, i.e. every key you press results in a key handler invoked (if exists).

When you are using the keyboard under Domain0, you need XEN_ATTENTION_KEY to use this function, (currently defined to Scroll Lk).

With PC keyboard (without Fn key), just simultaneously press Scroll Lk + key (such as 'p', 'h' etc)

However, with a laptop keyboard with Fn, it's much much more tricky.

Typically, you need press Fn + Num Lk to 'produce' Scroll Lk. At this point, if you move on to press another key (say, press Fn, Num Lk, 'p' all together), the key_handler is not invoked at all, and your keyboard hangs.

To restore your keyboard, release the previous three keys, and press Fn + Num Lk again.

The reason is: With Fn pressed, the scan code of the key (say 'p') is changed so that it's not recognized by Xen at all.

The solution is: 1. press Fn + Num Lk 2. release Fn but hold Num Lk 3. press another key ('p', 'h', etc)

Last but not least, as I said at the beginning, Xen internal statistical information is output via 'printk'. If you are using a serial line, you could see the output immediately. But if you are under Domain0, you won't see anything: 'printk' is not directed to 'stdout' on Domain0. Fortunately, you can use 'xi_read_console_ring' to fetch the 'printk' messages from Xen and print them to 'stdout' on Domain0. 'xi_read_console_ring' only exists in Xeno-unstable.bk tree.

FYI.

-- Bin