Unless an unforseen problem arises, I am going to commit this tomorrow
    and then start working on a cleanup patch.   I have decided to
    keep the sysctl instrumentation intact for the moment so people who
    experience panics or lockups can turn it off to see whether that was the
    cause or not.

    The cleanup patch will deal with moving the critical_*() functions
    from MI to MD, inlining, and the removal of the (old) CRITICAL_FORK and
    (new) MACHINE_CRITICAL_ENTER hacks.  I'll probably wind up adding
    <machine/critical.h> (i.e. /usr/src/sys/<arch>/include/critical.h)
    and for i386 sys/i386/i386/critical.c to hold unpend() and other
    support routines.

    I've looked at cleaning up cpu_critical_enter() & exit but its use 
    pollutes a number of MI source files: kern/kern_ktr.c, kern/subr_trap.c,
    and kern/subr_witness.c are all misusing the functions.  If these
    functions can safely be changed to use critical_enter() and critical_exit()
    I will rename the i386's cpu_critical*() functions into intr_disable()
    and intr_restore() and then use the new names for internal i386 use.

    Is there any reason why the above uses of cpu_critical*() cannot be
    changed to use standard critical*()?  I believe we *always* have a 
    curthread structure to play with so it should just work.


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to