Public bug reported: KVM virtual machines with only a serial pty console will hang on start, consuming 100% cpu, waiting for input from the console. This prevents normal starting of virtual machines in a server environment.
Possibly related: https://bugs.launchpad.net/qemu/+bug/1047470 ============================================== Software versions ============================================== Ubuntu 12.10 quantal Ubuntu 3.5.0-23.35-generic 3.5.7.2 qemu 1.2.0+noroms-0ubuntu2.12.10.2 kvm 1:84+dfsg-0ubuntu16+1.2.0+noroms+0ubuntu2.12.10.2 linux-image-3.5.0-23-generic 3.5.0-23.35 ============================================== ============================================== Example libvirt config snippet: ============================================== <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> ============================================== ============================================== strace of kvm process during 100% cpu utilization shows the following repeating in a loop: ============================================== write(9, "\1\0\0\0\0\0\0\0", 8) = 8 read(7, 0x7fffe7e1a5a0, 128) = -1 EAGAIN (Resource temporarily unavailable) write(9, "\1\0\0\0\0\0\0\0", 8) = 8 timer_gettime(0x8, {it_interval={0, 0}, it_value={0, 0}}) = 0 timer_settime(0x8, 0, {it_interval={0, 0}, it_value={0, 9934393}}, NULL) = 0 timer_gettime(0x8, {it_interval={0, 0}, it_value={0, 9893037}}) = 0 timer_settime(0x8, 0, {it_interval={0, 0}, it_value={0, 1041537}}, NULL) = 0 timer_gettime(0x8, {it_interval={0, 0}, it_value={0, 997359}}) = 0 timer_settime(0x8, 0, {it_interval={0, 0}, it_value={0, 945520}}, NULL) = 0 futex(0x7f0545dd69c0, FUTEX_WAKE_PRIVATE, 1) = 1 select(17, [4 7 8 11 14 15 16], [], [], NULL) = 2 (in [4 8]) read(4, 0x7fffe7e196b0, 1) = -1 EIO (Input/output error) timer_gettime(0x8, {it_interval={0, 0}, it_value={0, 753905}}) = 0 timer_settime(0x8, 0, {it_interval={0, 0}, it_value={0, 705886}}, NULL) = 0 read(8, "\2\0\0\0\0\0\0\0", 512) = 8 futex(0x7f0545dd69c0, FUTEX_WAKE_PRIVATE, 1) = 1 select(17, [7 8 11 14 15 16], [], [], NULL) = 1 (in [7]) read(7, "\16\0\0\0\0\0\0\0\376\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\0\0\0\0"..., 128) = 128 rt_sigaction(SIGALRM, NULL, {0x7f05450ca800, ~[KILL STOP RTMIN RT_1], SA_RESTORER, 0x7f0540bcacb0}, 8) = 0 ============================================== ============================================== workaround #1: ============================================== --- qemu-kvm-1.2.0+noroms/qemu-char.c.orig 2013-02-03 01:00:59.874031609 +0000 +++ qemu-kvm-1.2.0+noroms/qemu-char.c 2013-02-03 00:49:15.098213218 +0000 @@ -988,6 +988,7 @@ char *pty_name = NULL; #define q_ptsname(x) ptsname(x) #endif + char bleh[1] = {'\0'}; if (openpty(&master_fd, &slave_fd, pty_name, NULL, NULL) < 0) { return NULL; @@ -997,6 +998,7 @@ tcgetattr(slave_fd, &tty); cfmakeraw(&tty); tcsetattr(slave_fd, TCSAFLUSH, &tty); + write(slave_fd, bleh, 1); close(slave_fd); chr = g_malloc0(sizeof(CharDriverState)); ============================================== ** Affects: linux (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1113911 Title: kvm's with only serial console: hang on start, consume 100% cpu, waiting for console input To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1113911/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs