Hi -
Mach is 1.7+git20160607-486-dbg; the Hurd is from debian-hurd-20160325.
I've been having intermittent hangs during boot, which I've finally isolated to a disk image that will always trigger a hang, but only if kvm is enabled and -no-kvm-irqchip is specified. Running qemu without kvm, or with kvm and without -no-kvm-irqchip, everything seems to work fine.
The problem always occurs right after the system enters runlevel 2:
Configuring network interfaces...Internet Systems Consortium DHCP Client 4.3.3Copyright 2004-2015 Internet Systems Consortium.All rights reserved.For info, please visit https://www.isc.org/software/dhcp/Listening on Socket//dev/eth0Sending on Socket//dev/eth0DHCPDISCOVER on /dev/eth0 to 255.255.255.255 port 67 interval 8DHCPREQUEST of 10.0.2.15 on /dev/eth0 to 255.255.255.255 port 67DHCPOFFER of 10.0.2.15 from 10.0.2.2DHCPACK of 10.0.2.15 from 10.0.2.2bound to 10.0.2.15 -- renewal in 33681 seconds.done.Cleaning up temporary files....Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix.INIT: Entering runlevel: 2Using makefile-style concurrent boot in runlevel 2.
At this point, Mach freezes. I can not enter the debugger - cntl-alt-d does nothing. I can attach with remote GDB, and it shows the processor halted in machine_idle(). I can inspect memory, but if I try to do something like "call db_command_loop()", it just sits there. Breaking back into the debugger, the instruction pointer is pointing to the first instruction of db_command_loop().
GDB on qemu itself shows the emulator waiting in a ppoll() system call. The instruction pointer moves (unlike the emulated processor), but it just loops around in main_loop_wait().
If I run without -no-kvm-irqchip, the boot now continues as follows:
unexpected ACK from keyboard
Starting enhanced syslogd: rsyslogd.
Starting periodic command scheduler: cron.
Starting system message bus: dbus.
Starting OpenBSD Secure Shell server: sshd.
Debian GNU/Hurd stretch/sid debian console
login:
I found something on bug-hurd from several years ago suggesting that we need -no-kvm-irqchip because Mach uses a mode of the interrupt controller that isn't properly emulated by qemu. I also found
http://lists.gnu.org/archive/html/bug-hurd/2011-08/msg00067.html, which suggests that this switch is not needed on recent Linux kernels.
So, can I drop -no-kvm-irqchip because it isn't needed anymore, or is more effort suggested to track down this problem?
agape
brent