On 2/9/08, H. Peter Anvin <[EMAIL PROTECTED]> wrote: > Blue Swirl wrote: > >> > >> If you look at the patch, there are no timing dependencies; the only > >> parameter is the depth of the virtual queue. The exhaustion is > >> completely controlled by target OS access patterns. > > > > Thanks, this clarified the difference. But I'll rephrase my original > > comment: > > > > The patch looks OK, but the simulated FIFO exhaustion should benefit > > all devices, as > > discussed here: > > http://lists.gnu.org/archive/html/qemu-devel/2007-12/msg00283.html > > The difference is you *can't* do that in a general layer.
What makes you think that is impossible? Just move the serial_clear_burst to vl.c under name chr_clear_burst, move burst_len to CharDriverState and introduce a new function in vl.c that contains the burst length check. This is functionally identical to your patch. For 100% compatibility, the init functions could be changed so that only PC serial is affected, but I think all character devices would benefit from this. Also win2k install hack in ide.c seems to be related to this problem, so even more generic solution would be desirable.