Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 18 Apr 2018 09:31:20 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 227404] UP FreeBSD VM always hangs on reboot since 20180329-r331740
Message-ID:  <bug-227404-227-sn2Q2L03zP@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-227404-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-227404-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help

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

Tijl Coosemans <tijl@FreeBSD.org> changed:

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

--- Comment #6 from Tijl Coosemans <tijl@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.


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-227404-227-sn2Q2L03zP>