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>