** Summary changed:
- "-serial unix:" option of qemu-system-* is broken in qemu 2.6.0
+ "-serial unix:" option of qemu-system-arm is broken in qemu 2.6.0
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs
I wrote small code which reproduces this issue.
https://bitbucket.org/redcap97/puts-hello-x8-armv7-kernel/downloads
/puts-HELLO-x8
Above binary outputs "HELLO!" 8 times to UART.
# Please execute in terminal
socat unix-listen:a.sock stdout | tee actual
# Please execute
> Looking at the code in 2.5.0, the qemu_chr_fe_write method would see
EAGAIN too, because the tcp_chr_accept() method would always set the
newly connected client to non-blocking mode. So thre's no obvious change
in behaviour between 2.5 and 2.6 wrt to blocking sockets.
It looks like tcp_chr_accep
Sorry, this issue only occur in qemu-system-arm (vexpress-a9).
In hw/char/pl011.c, qemu_chr_fe_write function is called directly and EAGAIN
isn't handled.
http://git.qemu.org/?p=qemu.git;a=blob;f=hw/char/pl011.c;h=210c87b4c2bd000d80c359ca5c05d43c64210677;hb=bfc766d38e1fae5767d43845c15c79ac8fa6d6a
Public bug reported:
I found a bug of "-serial unix:PATH_TO_SOCKET" in qemu 2.6.0 (qemu 2.5.1 works
fine).
Occasionally, a part of the output of qemu disappears in the bug.
It looks like following commit is the cause:
char: ensure all clients are in non-blocking mode (Author: Daniel P. Berrange