> From: Dave Voutila <d...@sisu.io>
> Date: Sun, 28 Nov 2021 22:51:59 -0500
> 
> The last vmm diff I'll be sending tonight...promise! This swaps out
> usage of printf(9) outside the autoconf(4) functions.
> 
> The reason for this change is printf(9) could acquire a sleepable
> lock.

Huh?

/*
 * printf: print a message to the console and the log
 */
int
printf(const char *fmt, ...)
{
        va_list ap;
        int retval;

        va_start(ap, fmt);
        mtx_enter(&kprintf_mutex);
        retval = kprintf(fmt, TOCONS | TOLOG, NULL, NULL, ap);
        mtx_leave(&kprintf_mutex);
        va_end(ap);
        if (!panicstr)
                logwakeup();

        return(retval);
}

The guts of the the code runs while holding a mutex, which means it
can't sleep.  And logwakeup() doesn't sleep either.

Reply via email to