summary refs log tree commit diff stats
path: root/results/classifier/accel-gemma3:12b/kvm/1381846
blob: ff57996b8188100fbae234be49c81b7f6b418fc9 (plain) (blame)
1
2
3
4
5
6
7
8
9
Data sent to parallel port in guest is lost if host buffer fills up

It appears that qemu will blindly write characters out to the chardev and drop them on the floor if a write fails with EAGAIN, without initiating flow control (via BUSY and ACK) back to the guest. If the host buffer is too small, or is talking to a hardware device that is too slow, data will be lost.

I notice this problem when I run a DOS program with this on the qemu command line:
-parallel /dev/usb/lp0

I can work around this problem by buffering via a pipe, but this looks like a general problem. Is there a way to wire up the readiness of the output chardev to the parallel port ACK and BUSY lines, and signal an ISA interrupt? I don't know the code well enough to tell.