Date: Sun, 14 Aug 2005 15:01:33 +0300 From: Maxim Sobolev <sobomax@portaone.com> To: Ade Lovett <ade@FreeBSD.ORG> Cc: current@FreeBSD.ORG Subject: Re: Serious performance issues, broken initialization, and a likely fix Message-ID: <42FF329D.9080608@portaone.com> In-Reply-To: <42FF0C09.2070204@FreeBSD.org> References: <42F7D104.2020103@FreeBSD.org> <42FF0C09.2070204@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Ade Lovett wrote:
> Ade Lovett wrote:
>
>>To cut a long story short, the order in which nswbuf is being
>>initialized is completely, totally, and utterly wrong -- this was
>>introduced by revision 1.132 of vm/vnode_pager.c just over 4 years ago.
>
>
> This is now logged as kern/84903 and, as the PR states, IMO 6.0 should
> *NOT* be released until a resolution is found to this problem.
>
> The current misinitialization of nswbuf will affect *any* system where
> there are even a reasonable number of attempted concurrent disk reads.
>
> I'm certainly willing to work with someone to get a definitive patch
> made, however we do *not* run HEAD here, only RELENG_6, so that will
> have to be taken into consideration.
I think kan has already committed a fix for that problem into HEAD.
-Maxim
kan 2005-08-13 20:21:34 UTC
FreeBSD src repository
Modified files:
sys/kern vfs_cluster.c
sys/sys buf.h
sys/vm vm_pager.c vnode_pager.c
Log:
Do not use vm_pager_init() to initialize vnode_pbuf_freecnt variable.
vm_pager_init() is run before required nswbuf variable has been set
to correct value. This caused system to run with single pbuf available
for vnode_pager. Handle both cluster_pbuf_freecnt and vnode_pbuf_freecnt
variable in the same way.
Reported by: ade
Obtained from: alc
MFC after: 2 days
Revision Changes Path
1.167 +0 -6 src/sys/kern/vfs_cluster.c
1.188 +2 -0 src/sys/sys/buf.h
1.106 +1 -0 src/sys/vm/vm_pager.c
1.223 +0 -9 src/sys/vm/vnode_pager.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42FF329D.9080608>
