Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Feb 1999 16:19:11 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Matthew Jacob <mjacob@feral.com>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: Panic in FFS/4.0 as of yesterday - update
Message-ID:  <199902270019.QAA20214@apollo.backplane.com>
References:  <Pine.LNX.4.04.9902260950020.985-100000@feral-gw>  

next in thread | previous in thread | raw e-mail | index | archive | help
::	Pop the patch at 1:00 p.m. today.  By then I should have an update.
::	The one I have now is very close - just a couple of missing wakeups.
:
:    This patch seems to fix buildworld.  I ran Matt Jacob's STEST and managed
:    to lock it up -- looks like flushdirtybuffers() needs to allow the syncer
:    to get in whether or not some other process is flushing dirty buffers
:    at the same time.
:
:    I'll have another update to vfs_bio on my site at around 4:00 p.m.
:					-Matt

    Ugh.  inode lock now - if a process has a lock on an inode and then blocks
    in getnewbuf(), the syncer can still allocate buffers but can deadlock
    trying to lock the inode.

    I'll bet the inode lockup reported a few days ago under heavy test loads
    is due to this problem too.

    I think the solution may be to have the syncer reschedule a vnode which
    it finds locked rather then block getting the lock as it does now.

		( excerpt from kern/vfs_subr.c, sched_sync() )

                splx(s);

                while ((vp = LIST_FIRST(slp)) != NULL) {
                        vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, p);
                        (void) VOP_FSYNC(vp, p->p_ucred, MNT_LAZY, p);
                        VOP_UNLOCK(vp, 0, p);
                        s = splbio();
                        if (LIST_FIRST(slp) == vp) {
			...


    					-Matt
					Matthew Dillon 
					<dillon@backplane.com>


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199902270019.QAA20214>