Data sent to parallel port in guest is lost if host buffer fills up
Bug #1381846 reported by
Adam Goode
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Expired
|
Undecided
|
Unassigned |
Bug Description
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.
To post a comment you must log in.
The QEMU project is currently considering to move its bug tracking to another system. For this we need to know which bugs are still valid and which could be closed already. Thus we are setting older bugs to "Incomplete" now.
If you still think this bug report here is valid, then please switch the state back to "New" within the next 60 days, otherwise this report will be marked as "Expired". Or mark it as "Fix Released" if the problem has been solved with a newer version of QEMU already. Thank you and sorry for the inconvenience.