Subject: Re: spl/ipl stuff
To: Robert Black" , "Chris G. Demetriou <cgd@pa.dec.com>
From: Robert Black <r.black@ic.ac.uk>
List: tech-kern
Date: 07/07/1997 16:22:10
Hmm, just checked how FreeBSD-current handles this and it seems to have the
same feature.

I've been thinking about possible solutions. The cleanest way seems to be to
pull the information out of the message buffer and push it through constty when
it is known to be safe to do so. The problem with this is that it would not be
possible to distinguish between log() and printf() so the behaviour of one
would have to be changed to match the other. In a panic situation everything
goes through cnputc() so this would be no problem.

A simple workaround for now is the following patch. It has the side-effect that
your console messages vanish if you use TIOCCONS without running syslogd and
you may need to rejig your syslog.conf. Its nastiest aspect is that you tend to
lose messages just prior to a panic (although this could be fixed by getting
the panic code to dump the remainder of the message buffer). This patch is
against a not-quite-current because thats all I had handy.

*** subr_prf.c  Thu Apr 17 12:21:30 1997
--- subr_prf.c.new      Mon Jul  7 15:48:10 1997
***************
*** 544,550 ****
                constty = NULL;
        if ((flags & TOCONS) && tp == NULL && constty) {
                tp = constty;
-               flags |= TOTTY;
        }
        if ((flags & TOTTY) && tp && tputchar(c, tp) < 0 &&
            (flags & TOCONS) && tp == constty)
--- 544,549 ----


Cheers

Rob Black