home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.unix.bsd
- Path: sparky!uunet!munnari.oz.au!spool.mu.edu!umn.edu!umeecs!quip.eecs.umich.edu!dmuntz
- From: dmuntz@quip.eecs.umich.edu (Daniel A Muntz)
- Subject: Re: more about 386BSD SLIP
- Message-ID: <1992Sep7.193547.6231@zip.eecs.umich.edu>
- Sender: news@zip.eecs.umich.edu (Mr. News)
- Organization: University of Michigan EECS Dept., Ann Arbor
- References: <Sep.7.14.41.53.1992.602@athos.rutgers.edu>
- Date: Mon, 7 Sep 1992 19:35:47 GMT
- Lines: 26
-
- In article <Sep.7.14.41.53.1992.602@athos.rutgers.edu> hedrick@athos.rutgers.edu (Charles Hedrick) writes:
- >Aside from the well-known silo overflow problem, I think there's
- >another problem in the serial driver. I just had output hang in SLIP.
- >There's a well-known problem that causes output interrupts not to
- >happen sometimes. I've heard people who really know the serial
-
- The interrupt occurs, but is lost.
-
- >devices claim that with correct interrupt handling code this won't
- >happen, but in every piece of device-level code I've seen, it has.
- >The problem showed up in SLIP8250 (the MSDOS packet driver -- I have a
- >fixed version), in the FTP Inc SLIP implementation (they fixed it a
- >couple of years ago), and Linux (until it was fixed several releases
- >ago). The obvious solution is to time out serial writes. If you send
- >a character and don't get output done within a reasonable time, just
- >assume the output worked and go ahead with the next.
-
- The RT BSD serial driver, which is extremely similar to the 386bsd one, had
- a similar problem. Our first solution was a timeout, but eventually
- the problem was found (interrupts were not disabled in a certain place) and
- SLIP has worked correctly since with the timeout code removed. It
- is much better to solve the actual problem than to put in a timeout.
- Depending on how often you have to fall back on the timeout, throughput can
- suffer, especially at speeds >= 57600.
-
- -Dan
-