summary refs log tree commit diff stats
path: root/results/classifier/zero-shot/118/none/1381846
blob: 65545383dc4f3ad9b9279a325b06bf8cd8def3d8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
graphic: 0.756
performance: 0.714
device: 0.630
network: 0.552
semantic: 0.535
register: 0.524
architecture: 0.515
peripherals: 0.510
permissions: 0.508
ppc: 0.497
i386: 0.462
kernel: 0.450
socket: 0.444
user-level: 0.432
vnc: 0.431
mistranslation: 0.429
PID: 0.414
hypervisor: 0.402
risc-v: 0.389
debug: 0.377
TCG: 0.361
VMM: 0.360
boot: 0.358
x86: 0.343
files: 0.331
arm: 0.291
assembly: 0.277
virtual: 0.208
KVM: 0.199

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.

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.

[Expired for QEMU because there has been no activity for 60 days.]