ESIX woes. (serial performance)

John R. Levine johnl at esegue.segue.boston.ma.us
Fri Nov 17 04:27:02 AEST 1989


In article <862 at pmafire.UUCP> dave at pmafire.UUCP (Dave Remien) writes:
>[many people report lousy serial performance on various 386 unices]
>I'm running Bell Tech 3.2 (NOT 3.2u, I'm waiting for that) with Lachman
>TCP/IP, NFS, X and both a regular serial port and a Bell Tech ACE card;
>I have yet to see any slowdown yet that can't be attributed to a 16MHz
>'386 and only 4 megs of RAM. I've got an ENET586 card, for what it's
>worth. 

It depends mostly on the controller chip in your serial card.  The problem
is that the 386 doesn't really support priority interrupts. (There is a
global suppress interrupt bit, the priority business on the 8259 only
applies when several interrupt requests arrive at once.)  Too many device
drivers disable interrupts while doing non-trivial processing, so that if
you're trying to run at 19.2K and interrupts are off for 500us or more,
you lose.  If you can replace your serial chip with a 16550, there are
several serial drivers that turn on the silo in the 16550, greatly relaxing
the interrupt response required.  The 386/ix X5 update driver does this, as
does the free JJM driver that's been passed around.

The right solution would be to be more disciplined about driver interrupt
handling, and to put in a kernel mechanism to let drivers schedule work
"later", meaning not at interrupt level but before returning to the mainline
user or kernel process.  I expect that's what Venix does, but don't hold
your breath waiting for the regular Unix vendors to do it -- it'd be a lot
of work.
-- 
John R. Levine, Segue Software, POB 349, Cambridge MA 02238, +1 617 864 9650
johnl at esegue.segue.boston.ma.us, {ima|lotus|spdcc}!esegue!johnl
"Now, we are all jelly doughnuts."



More information about the Comp.unix.i386 mailing list