Port-xen archive

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

NetBSD-current dom0 crash with keyboard

This note supercedes all my previous keyboard crash notes.

No crash dump, but I caught the panic with a video recording; this is
typed from that.

I did this by powering up the computer with the keyboard plugged in
(because otherwise the BIOS says "keyboard failure - press F2 to
continue"!), and then unplugged it while /boot was running, so that the
XEN3_DOM0 kernel would boot up, replay log on /, and stabilize.  At this
point it's up and I can log in over ssh.

Then, I started video recording and plugged in the keyboard, which
resulted in a crash within a second or two.

The kernel prints
  uhidev0: [apple keyboard]
  ukbd0 at uhidev0

The next line is a panic and the call chain is basically:
  [normal USB discovery]
    line 523: KASSERT(!wskbd_console_initted);

so we are trying to attach a second console.

Looking at dmesg from a boot of this same kernel without a keyboard, I
see (in addition to many things that seem unremarkable):

  xencons0 at hypervisor0: Xen Virtual Console Driver
  wsdisplay0 at vga0 kbdmux 1: console (80x25, vt100 emulation)
  wsmux1: connecting to wsdisplay0

For completeness, my /boot line is

  menu=Xen:load /netbsd-XEN3_DOM0.gz console=pc;multiboot /xen.gz dom0_mem=4096M

and I have two trivial debug changes for coda  and puffs.  nothing in
USB, xen, keyboards, console is different.   And GENERIC from the same
release build works fine on this machine.


  Is Xen itself supposed to grab this keyboard?

  Is the dom0 supposed to be using hardware for the system console, and
  use xencons0 to get 'xl dmesg' output from the hypervisor, with no way
  for Xen to get console keyboard input?

  It seems that when wsdisplay attaches to the vga, to provide an output
  path, it conjures up wskbd mux (1, not 0??) for the reverse path and
  marks it as console -- even though there is no input.  And then the
  keyboard later collides somehow.

  There is a variable for ukbd being console
  separately from all the other things that could be console, but I
  think this is about one and only one ukbd being the console.  I don't
  understand what else woudl have claimed it that is a ukbd.

  This problem does not seem to be about my hardware; is anyone else
  seeing this?  Why not?

Attachment: signature.asc
Description: PGP signature

Home | Main Index | Thread Index | Old Index