From owner-freebsd-hackers Thu Aug 24 20:48:04 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.FreeBSD.org (8.6.11/8.6.6) id UAA21240 for hackers-outgoing; Thu, 24 Aug 1995 20:48:04 -0700 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.FreeBSD.org (8.6.11/8.6.6) with ESMTP id UAA21234 for ; Thu, 24 Aug 1995 20:47:58 -0700 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id NAA29018; Fri, 25 Aug 1995 13:44:15 +1000 Date: Fri, 25 Aug 1995 13:44:15 +1000 From: Bruce Evans Message-Id: <199508250344.NAA29018@godzilla.zeta.org.au> To: jkh@time.cdrom.com, phk@critter.tfs.com Subject: Re: ISDN Anyone? Cc: freebsd-hackers@FreeBSD.org, jgreco@brasil.moneng.mei.com, phk@freefall.FreeBSD.org, terryl@CS.Stanford.EDU Sender: hackers-owner@FreeBSD.org Precedence: bulk >> 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