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

Re: [Xen-devel] better console support

On Thu, Jan 25, 2007 at 06:55:29PM +0000, Keir Fraser wrote:
> On 25/1/07 18:47, "Joe Bonasera" <joe.bonasera@xxxxxxx> wrote:
> > The standard internal testing setup inside Sun that most
> > people run with is debug Xen and debug dom0 both
> > sharing either the VGA console or a single serial port console.
> > We also see field support of the eventual product needing the
> > ability to interact with both consoles on the same physical
> > device.  So we want to make the dom0 just handle sharing the console
> > as automatically as possible.
> You can already detect if Xen has locked out com1 or com2: try reading one
> of the UART registers (or perhaps write-then-read). If you get back all ones
> then you're locked out.

good to know.

so does xen have any uses for serial ports other than as a console
device?  if not then we can probably use this to detect an in use
port and switch the console to use hypervisor interfaces in this case.

> Maybe a vgakeep flag would be useful. We could add a SIF_VGA_IN_USE flag or
> something.

well, i don't think the xen vgakeep mode (which is essentially an
extension of the default vga mode) really provides us with a usable
console configuration since xen doesn't support any kind of keyboard
input.  (at least from my reading of the 3.0.3 code i think will only
take input from a serial port.)  so setting the xen to vga and vgakeep
and then setting the dom0 console to the hypervisor would essentially
give you a read-only console.

also, afaik, the current xen console io interfaces only allow simple
reads and writes of mostly uninterpreted character data, so essentially
the console is treated as serial device instead of a terminal.  so for
example, using the current xen console io interfaces there is no way
to change a character currently displayed on the screen without knowing
the current contents of the screen and re-writing out all those contents.

_if_ we want to be able to support access to the xen debugger on a
local vga console (and we could always decide that we don't) then i
think that we probably have a few options:

- add keyboard support to xen.  then xen could handle output on the vga
  device and input from the keyboard, and the dom0 OS console access
  would go through hypervisor interfaces.  also, modify the xen
  console interfaces to support some kind of "terminal" access to
  the console device (ie, write z at location x,y, etc)

- add keyboard support to xen.  then xen could handle output on the vga
  device and input from the keyboard.  have the host OS to also access
  the vga and keyboard devices directly.  (the tricky part here would
  be ensuring that xen and dom0 don't step on each others console
  output, although xen itself probably shouldn't be doing too much
  console output when it hasn't entered it's debugger.)

- allow xen to call a dom0's polled io console entry points to obtain
  input from and do output to the dom0 console device.  this would
  allow xen to use whatever console device the dom0 is configured to
  use and would require that the dom0 OS register it's polled io
  routines with xen.


ps - fyi, i'm a xen newbie so if i've gotten anything wrong or any of
     this sounds far fetched and/or impossible then i appoligize for
     my ignorance.

Xen-devel mailing list



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