Date: Fri, 25 Aug 1995 13:44:15 +1000 From: Bruce Evans <bde@zeta.org.au> To: jkh@time.cdrom.com, phk@critter.tfs.com Cc: freebsd-hackers@FreeBSD.org, jgreco@brasil.moneng.mei.com, phk@freefall.FreeBSD.org, terryl@CS.Stanford.EDU Subject: Re: ISDN Anyone? Message-ID: <199508250344.NAA29018@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> There is actually a lot more promise in a 16550 or 16650 at 460800 bps. >> You only get 1/16th or 1/32th the number of interrupts. >Hmmm. I find that the serial interrupt overhead is pretty intense at 115.2 >even with a 16550. You know some secret for doing this I don't? Hrmph. I've posted accurate benchmarks about 50 times saying that for raw mode select()/read()/write() i/o, the overhead of the sio driver on a 486DX2/66 VLB system is about 7% for input and 3.5% for output. Of this, about 0.5% for input and 0.5% for ouput would go away if interrupts were free, and about 2.5% more for input and 1.5% for output would go away if the hardware was infinitely fast. The remainder (about half) is pure software overhead - it exists even for ptys. In fact, the pty implementation is not so good (for raw mode) and the input overhead is 5-10 times larger for ptys. An interrupt overhead of 0.5+0.5% isn't small, but it is acceptable when the software overheads are so large. Same for the hardware overhead of 2.5+1.5%. The 32-bit fifos on the 16650 would reduce the interrupt (and total) overhead by a whole 0.25%+0.25%. For the current cyclades driver, the fifos are only 12 bytes instead of 16, so the interrupt overhead is about 16/12 times larger. Other overheads are similar. For 16450 UARTs, there are about 16 times as many interrupts, so the interrupt overhead is about 16 times higher = 8% (more precisely, input overhead is 11% more and output overhead is 10% more). ISA parallel ports have significantly higher overheads that 16450s. They generate an interrupt per byte for output and an interrupt per nybble for input. They take about twice as many i/o's per byte for output and even more for input. The are only "fast" compared with serial ports because serial ports run at a fixed, relatively low, speed. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199508250344.NAA29018>