Hi - I'm running Mach/Hurd in qemu/kvm, on a Linux 4.4.0 host (Ubuntu 16.04), with the -no-kvm-irqchip option, as suggested here: https://www.gnu.org/software/hurd/contributing.html
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.3 Copyright 2004-2015 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Listening on Socket//dev/eth0 Sending on Socket//dev/eth0 DHCPDISCOVER on /dev/eth0 to 255.255.255.255 port 67 interval 8 DHCPREQUEST of 10.0.2.15 on /dev/eth0 to 255.255.255.255 port 67 DHCPOFFER of 10.0.2.15 from 10.0.2.2 DHCPACK of 10.0.2.15 from 10.0.2.2 bound 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: 2 Using 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