Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Jan 1999 20:30:22 -0500 (EST)
From:      "John S. Dyson" <root@dyson.iquest.net>
To:        dillon@apollo.backplane.com (Matthew Dillon)
Cc:        dg@root.com, jkh@FreeBSD.ORG, hackers@FreeBSD.ORG
Subject:   Re: Found problem w/ Paging performance over NFS
Message-ID:  <199901190130.UAA27297@dyson.iquest.net>
In-Reply-To: <199901190128.RAA84794@apollo.backplane.com> from Matthew Dillon at "Jan 18, 99 05:28:35 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
> :
> :PG_BUSY is quite severe, and not always needed.
> :
> :John
> 
>     Ok.  I just figured out the interaction -- in fact, we *can't* test m->busy
>     in this section of code because of the following sequence:
> 
> 	vm_fault -> vnode_pager_getpages -> ffs_getpages -> ffs_read -> 
> 	    cluster_read -> getblk -> allocbuf ( lockup )
> 
>     ffs_getpages converts the PG_BUSY into a vm_page_t->busy before getting into
>     the cluster stuff, and thus allocbuf() deep down cannot sleep on
>     vm_page_t->busy.
> 
>     Ick.  I'm going to add a comment explaining that case.
> 
Yep, it is *very* important to understand the interactions, or either clustering
won't work on alot of filesystems or worse things will happen.

John

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?199901190130.UAA27297>