[TUHS] 386BSD released

Bakul Shah bakul at iitbombay.org
Fri Jul 16 15:51:11 AEST 2021


On Jul 15, 2021, at 9:25 PM, Theodore Y. Ts'o <tytso at mit.edu> wrote:
> 
> I remember a friendly rivalry that I had with Bruce D. Evans in
> Australia, who was working on the serial driver for FreeBSD, where we
> would exchange tips and techniques for making the serial driver on our
> respective OS's more CPU efficient.  (The metric was to see who could
> most reduce the system overhead of the serial interrupt and tty layers
> when running a C-Kermit file transfer over a pair of RS-232 ports
> connected via a loopback cable.)  It was a lot of fun, and we both
> gained a lot from the exchange of ideas, but finally, I came up with
> an idea (flip buffers) that really reduced Linux's serial/tty
> overhead, but which Bruce couldn't match in FreeBSD, because the
> FreeBSD core team thought that clists were handed down from Mount
> Olympus by the Gods of BSD, and making that kind of change in the tty
> layer was tantamount to heresy.  Heh.

Dave Yost wrote the serial driver for our 4 port serial card @ Fortune
(1981-82).  Later chips like NS16550 had 16 char on chip buffers but we
back then we used a Moto SIO chip that had only one char buffer.  IIRC,
he used two tricks. One was "partially evaluated" xmit/recv handlers so
that each port got its own xmit/recv functions, with hand-crafted
instructions (in hex, no less!) just right for a given port and all the
interry t handler . The  do was transfer a char from/to the buffer it
(lready knew about. The other was he increased the cblock size from 8 to 128
(what a clist points to). He says he described this design to dmr who said
why not?!  With this design Yost's code was able to handle 4 full-duplex
9600 baud streams at full-speed. Not bad for a 5.6Mhz clock machine!



More information about the TUHS mailing list