On Wed, Feb 05, 2025 at 09:34:21AM -0800, Jason Thorpe wrote: > > On Feb 4, 2025, at 11:40 PM, Simon Burge <sim...@netbsd.org> wrote: > > Emile `iMil' Heitor wrote: > > --- a/sys/dev/ic/com.c > > +++ b/sys/dev/ic/com.c > > @@ -589,8 +589,15 @@ com_attach_subr(struct com_softc *sc) > > break; > > } > > > > + if (!inside_vm_guest()) { > > + /* > > + * Wait for output to finish. No need for > > + * a delay on virtual machines. > > + */ > > + delay(10000); > > As for the com(4)-specific bit: why are we inserting a blanket > 10ms delay *at all*? If we’re concerned about garbling > output-in-progress on real hardware, isn’t there some register we > can look at, or something?
That is a good question. That delay was already present when cgd@ checked in rev 1.1. With no good explanation. LSR bits 5 (THRE) and 6 (TSRE/TEMT) have been available since the original INS8250 for checking if the transmitter is completely empty. Why it didn't loop on those bits is anyone's guess. --chris