Aucbvax.4063
net.2bsd-bugs
utzoo!decvax!ucbvax!dist2
Sat Sep 26 04:45:59 1981
moving i/o buffers back into kernel space

       Various people have commented about the lost clock interrupts
       resulting from the placement of i/o buffers outside the kernel
       in 2bsd V7 (this happens because spl7's are done during the
       re-mapping).  There have also been musings about whether
       something in this code was responsible for crashes. We decided
       to put the buffers back in and see what happens. In addition to
       undefining UCB_BUFOUT in localopts.h, we had to do the
       following. Apparently, the kernel was never tested with the
       buffers in.

Apparently so.

       (1) You will also need to undefine UCB_CLIST. In addition,
       there are separate assemler defines in conf/mch.s which will
       need to be unset. These are BUFS and CLIST.

Specifically, the needed changes are:
       diff mch.s mch.s.bufsin
       20,21c20,21
        .BUFS          = 0             / == UCB_BUFOUT
       > .CLIST        = 0             / == UCB_CLIST

       (2) seg.h needs to have the defines for UBMAPON and SSR3 placed
       outside the ifdef for UCB_BUFOUT (their definition is currently
       contingent on UCB_BUFOUT being defined).  There are portions of
       of the code in sys/machdep.c which get compiled regardless of
       whether UCB_BUFOUT is defined or not, and which depend on these
       defines.

This has been fixed in the current release.

       (3) sys/syslocal.c will need to include <BUF.H> if UCB_BUFOUT
       is NOT defined.

The changes which should be made are:
       diff syslocal.c syslocal.c.old
       14a15,17
       > #ifndef       UCB_BUFOUT
       > #include <SYS/BUF.H>
       > #endif
They have been made on tapes written after 9/26/81.

       (4) there is a line in bkclose() in dev/bk.c which should be
       compiled only if UCB_BUFOUT is defined. This line is
                       abrelse(tp->t_bufp)
       If UCB_BUFOUT is not defined, then the following should be
       compiled instead:
                       brelse(tp->t_bufp)

This has been fixed in the current release.

                       Carl

-----------------------------------------------------------------
gopher://quux.org/ conversion by John Goerzen <[email protected]>
of http://communication.ucsd.edu/A-News/


This Usenet Oldnews Archive
article may be copied and distributed freely, provided:

1. There is no money collected for the text(s) of the articles.

2. The following notice remains appended to each copy:

The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996
Bruce Jones, Henry Spencer, David Wiseman.