Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Dec 2015 18:31:56 -0500
From:      Shawn Webb <shawn.webb@hardenedbsd.org>
To:        Gleb Smirnoff <glebius@FreeBSD.org>
Cc:        Konstantin Belousov <kib@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r292772 - head/sys/vm
Message-ID:  <20151229233156.GA4032@mutt-hardenedbsd>
In-Reply-To: <20151229205952.GV7277@FreeBSD.org>
References:  <201512271442.tBREgdRr079655@repo.freebsd.org> <20151229205952.GV7277@FreeBSD.org>

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

--LZvS9be/3tNcYl/X
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Dec 29, 2015 at 11:59:52PM +0300, Gleb Smirnoff wrote:
> On Sun, Dec 27, 2015 at 02:42:39PM +0000, Konstantin Belousov wrote:
> K> Author: kib
> K> Date: Sun Dec 27 14:42:39 2015
> K> New Revision: 292772
> K> URL: https://svnweb.freebsd.org/changeset/base/292772
> K>=20
> K> Log:
> K>   Add missed relpbuf() for a smallfs page-in.
> K>  =20
> K>   Reported by:	Shawn Webb
> K>   Tested by:	pho
> K>   Sponsored by:	The FreeBSD Foundation
> K>=20
> K> Modified:
> K>   head/sys/vm/vnode_pager.c
> K>=20
> K> Modified: head/sys/vm/vnode_pager.c
> K> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
> K> --- head/sys/vm/vnode_pager.c	Sun Dec 27 14:39:47 2015	(r292771)
> K> +++ head/sys/vm/vnode_pager.c	Sun Dec 27 14:42:39 2015	(r292772)
> K> @@ -806,6 +806,7 @@ vnode_pager_generic_getpages(struct vnod
> K>  	 * than a page size, then use special small filesystem code.
> K>  	 */
> K>  	if (pagesperblock =3D=3D 0) {
> K> +		relpbuf(bp, freecnt);
> K>  		for (i =3D 0; i < count; i++) {
> K>  			PCPU_INC(cnt.v_vnodein);
> K>  			PCPU_INC(cnt.v_vnodepgsin);
>=20
> The reason for this bug is that I tried to move the (pagesperblock =3D=3D=
 0)
> block above the call to getpbuf().
>=20
> We actually know that filesystem is "small" at the very beginning of the
> function and we can branch into "small filesystem" pager immediately.
>=20
> Later I moved the block back to its place, simply because new place
> wasn't tested properly. And forgot to restore relpbuf.
>=20
> What filesystem did you use to show up the bug? I'm about to test the
> variant with immediate branching. Shawn, would you be able to test
> a patch if I produce one?

Definitely. Send me a patch and I can spin up an ISO with it and boot it
up in bhyve.

Thanks,

--=20
Shawn Webb
HardenedBSD

GPG Key ID:          0x6A84658F52456EEE
GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89  3D9E 6A84 658F 5245 6EEE

--LZvS9be/3tNcYl/X
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJWgxfqAAoJEGqEZY9SRW7uutAQAJmqARHqy6hjngzgxktCyGv4
nkZBcGj6UEZKUre3b4jH1Kq7AeD/Ymog+8NUQG5Dusy9JyoEI+ykSLVcZFy5Io6B
NflOLVzefbEaJz/dkaWasDgfZHSpFzsAaGgjb1BdRNnD1AVZSQCGHw8uuMPVYhWV
/IH/VIxz4eOcrsEDr+rkU5bKkmPmQpPQ9aLPWhxGZ0NNm9pBYhbY6LS/cDrJnP1T
fp33rtI1PWB4+ZDuiiiNE44A7mzffUpSm9WH54B2y3BqkfUoD1qducTwMn8lsKbJ
NJQWYG/o0DeLVtra/LT/5+OY2mTP+b3vmX1lT/E2wFKHHUjWzMJRHP8E7uQQQ3BB
iLJGaO8QGAqjTmHunaGFC9N9qw0/0nXWLhcRq7+4bWkpm9zxQy3YCE8mt2gqFgaW
yxqi24658dLejS/WiLhKoPZp9tFwt54EXUxcLZZYge25ckBzAwziJxoKDWKS3PzJ
4ZtzLWlSAT35ff3OmdiTPfoFL7Sxrv9SO6Zgv2MNj1RylwMkvTD/6ewFBQObDGCB
q/DIqwmNBB/9lbnTgbO6YusfoZHijhw1qhHijefwSfqeMEZ9BQSh0AIyUHHQ4Mpp
MMiFE3uvlZCRjg9u2Er7r8Fw4rTdx31wBS9kBv/CbgCYNqIfpY+WotemlFHEBiEi
uEsL8t3BpNU3+fV99aMK
=6R4R
-----END PGP SIGNATURE-----

--LZvS9be/3tNcYl/X--



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