[Bug 227404] UP FreeBSD VM always hangs on reboot since 20180329-r331740

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Apr 18 09:31:22 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=227404

Tijl Coosemans <tijl at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tijl at FreeBSD.org

--- Comment #6 from Tijl Coosemans <tijl at FreeBSD.org> ---
I ran into this a couple of times now on a UP machine.  The problem is that
base r329612 (jeff) turned the bufspace daemon process into a thread of the buf
daemon process.  Now both threads call kproc_suspend_check with the same proc
argument and it contains the following while loop:

while (SIGISMEMBER(p->p_siglist, SIGSTOP)) {
        wakeup(&p->p_siglist);
        msleep(&p->p_siglist, &p->p_mtx, PPAUSE, "kpsusp", 0);
}

So one thread wakes up the other and the other wakes up the first again,
starving other processes like the syncer.  On an SMP system other processes can
still run on another CPU.  I suspect one or both daemons need to be converted
to use kthread_suspend and kthread_suspend_check instead, but I cannot reboot
this machine right now to test this.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the freebsd-bugs mailing list