> port->throttled never becomes true for qemu. Huh? What did I miss below?
if (ret == -EAGAIN || (ret >= 0 && ret < buf_size)) { virtio_serial_throttle_port(port, true); | | V void virtio_serial_throttle_port(VirtIOSerialPort *port, bool throttle) { if (!port) { return; } trace_virtio_serial_throttle_port(port->id, throttle); port->throttled = throttle; <-------------------- WHOOOT! if (throttle) { return; } qemu_bh_schedule(port->bh); }