[Qemu-devel] [PATCH 0/3] Avoid retrying on serial_xmit with EPIPE

Sergio Lopez posted 3 patches 7 years, 5 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20180531074601.10647-1-slp@redhat.com
Test checkpatch passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
Test s390x passed
chardev/char-io.c    | 3 +++
hw/char/serial.c     | 1 +
include/io/channel.h | 1 +
io/channel-file.c    | 3 +++
4 files changed, 8 insertions(+)
[Qemu-devel] [PATCH 0/3] Avoid retrying on serial_xmit with EPIPE
Posted by Sergio Lopez 7 years, 5 months ago
EPIPE is not a recoverable error, so retrying on serial_xmit is a waste of CPU
cycles, and can potentially comprosie the Guest OS stability if both the vCPU
and the emulator thread are pinned to the same pCPU, with the first one
actively polling the serial device and barely giving time to the second to make
any actual progress.

Sergio Lopez (3):
  io: Implement QIO_CHANNEL_ERR_BROKEN
  chardev: On QIO_CHANNEL_ERR_BROKEN set errno to EPIPE
  hw/char/serial: Don't retry on serial_xmit if errno == EPIPE

 chardev/char-io.c    | 3 +++
 hw/char/serial.c     | 1 +
 include/io/channel.h | 1 +
 io/channel-file.c    | 3 +++
 4 files changed, 8 insertions(+)

-- 
1.8.3.1