Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Jun 2012 11:28:06 +0300
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Eitan Adler <eadler@freebsd.org>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r236380 - head/sys/vm
Message-ID:  <20120601082806.GR2358@deviant.kiev.zoral.com.ua>
In-Reply-To: <201206010442.q514gqqv084148@svn.freebsd.org>
References:  <201206010442.q514gqqv084148@svn.freebsd.org>

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

--KHxoa/2yf2SjDQvg
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, Jun 01, 2012 at 04:42:52AM +0000, Eitan Adler wrote:
> Author: eadler
> Date: Fri Jun  1 04:42:52 2012
> New Revision: 236380
> URL: http://svn.freebsd.org/changeset/base/236380
>=20
> Log:
>   Add sysctl to query amount of swap space free
>  =20
>   PR:		kern/166780
>   Submitted by:	Radim Kolar <hsn@sendmail.cz>
>   Approved by:	cperciva
>   MFC after:	1 week
>=20
> Modified:
>   head/sys/vm/swap_pager.c
The commit messages lack any rationale for the change.

The rationale specified in the PR is wrong, there _is_ the sysctl
interface to read the swap use, vm.swap_info.N. It is used by e.g.
swapinfo(8)/libkvm(3) on live system.

>=20
> Modified: head/sys/vm/swap_pager.c
> =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
> --- head/sys/vm/swap_pager.c	Fri Jun  1 04:34:49 2012	(r236379)
> +++ head/sys/vm/swap_pager.c	Fri Jun  1 04:42:52 2012	(r236380)
> @@ -2692,3 +2692,18 @@ swaponvp(struct thread *td, struct vnode
>  	    NODEV);
>  	return (0);
>  }
> +
> +static int
> +sysctl_vm_swap_free(SYSCTL_HANDLER_ARGS) {
> +	int swap_free, used;
> +	int total;
> +
> +	swap_pager_status(&total, &used);
> +
> +	swap_free =3D (total - used) * PAGE_SIZE;
> +	return SYSCTL_OUT(req, &swap_free, sizeof(swap_free));
> +}
This just overflows at swap sizes greater then 2GB.

> +
> +SYSCTL_OID(_vm, OID_AUTO, swap_free, CTLTYPE_INT|CTLFLAG_RD|CTLFLAG_MPSA=
FE,
> +		NULL, 0, sysctl_vm_swap_free, "Q",
> +		"Blocks of free swap storage.");

Please revert the commit.

--KHxoa/2yf2SjDQvg
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (FreeBSD)

iEYEARECAAYFAk/IfRYACgkQC3+MBN1Mb4jbxwCglxOXsoKwgOSPPe26n20E/vYY
hWAAniG9a3SxbtiBOs+euXhw0ZQUdcOt
=OWVg
-----END PGP SIGNATURE-----

--KHxoa/2yf2SjDQvg--



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