Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 10 Jan 2013 20:18:19 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Sergey Kandaurov <pluknet@gmail.com>
Cc:        svn-src-head@freebsd.org, Andrey Zonov <zont@freebsd.org>, src-committers@freebsd.org, svn-src-all@freebsd.org
Subject:   Re: svn commit: r245255 - head/sys/vm
Message-ID:  <20130110181819.GV2561@kib.kiev.ua>
In-Reply-To: <CAE-mSO%2B=d8gknb2BJ%2BsERe-zsYD8L3Or6Yk2mSNak7c0yjDVdw@mail.gmail.com>
References:  <201301101243.r0AChwR7090554@svn.freebsd.org> <CAE-mSO%2B=d8gknb2BJ%2BsERe-zsYD8L3Or6Yk2mSNak7c0yjDVdw@mail.gmail.com>

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

--U8v/hV883cEE9JJG
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Thu, Jan 10, 2013 at 05:03:31PM +0300, Sergey Kandaurov wrote:
> On 10 January 2013 16:43, Andrey Zonov <zont@freebsd.org> wrote:
> > Author: zont
> > Date: Thu Jan 10 12:43:58 2013
> > New Revision: 245255
> > URL: http://svnweb.freebsd.org/changeset/base/245255
> >
> > Log:
> >   - Reduce kernel size by removing unnecessary pointer indirections.
> >
> >   GENERIC kernel size reduced in 16 bytes and RACCT kernel in 336 bytes.
> >
> >   Suggested by: alc
> >   Reviewed by:  alc
> >   Approved by:  kib (mentor)
> >   MFC after:    1 week
> >
> > Modified:
> >   head/sys/vm/vm_map.c
> >   head/sys/vm/vm_mmap.c
> >   head/sys/vm/vm_unix.c
> >
> > Modified: head/sys/vm/vm_map.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/vm_map.c        Thu Jan 10 12:30:58 2013        (r24525=
4)
> > +++ head/sys/vm/vm_map.c        Thu Jan 10 12:43:58 2013        (r24525=
5)
> [...]
> > @@ -3505,8 +3504,7 @@ Retry:
> >                 grow_amount =3D limit - ctob(vm->vm_ssize);
> >  #endif
> >         if (!old_mlock && map->flags & MAP_WIREFUTURE) {
> > -               if (ptoa(vmspace_wired_count(p->p_vmspace)) + grow_amou=
nt >
> > -                   lmemlim) {
> > +               if (ptoa(pmap_wired_count(map->pmap)) + grow_amount > l=
memlim) {
> >                         vm_map_unlock_read(map);
> >                         rv =3D KERN_NO_SPACE;
> >                         goto out;
> > @@ -3514,7 +3512,7 @@ Retry:
> >  #ifdef RACCT
> >                 PROC_LOCK(p);
> >                 if (racct_set(p, RACCT_MEMLOCK,
> > -                   ptoa(vmspace_wired_count(p->p_vmspace)) + grow_amou=
nt)) {
> > +                   ptoa(pmap_wired_count(map->pmap)) + grow_amount)) {
> >                         PROC_UNLOCK(p);
> >                         vm_map_unlock_read(map);
> >                         rv =3D KERN_NO_SPACE;
> > @@ -3645,7 +3643,7 @@ out:
> >                 KASSERT(error =3D=3D 0, ("decreasing RACCT_VMEM failed"=
));
> >                 if (!old_mlock) {
> >                         error =3D racct_set(p, RACCT_MEMLOCK,
> > -                           ptoa(vmspace_wired_count(p->p_vmspace)));
> > +                           ptoa(pmap_wired_count(map->pmap)));
> >                         KASSERT(error =3D=3D 0, ("decreasing RACCT_MEML=
OCK failed"));
> >                 }
> >                 error =3D racct_set(p, RACCT_STACK, ctob(vm->vm_ssize));
> >
>=20
> Hi,
> although vm_fault_hold() is the only caller of vm_map_growstack()
> and it passes curproc as a process argument, this is a public function
> and more callers can grow theoretically with !curproc. For the reason,
> shouldn't vmspace be used with vmspace_acquire_ref()/vmspace_free() ?
> Just nitpicking..
>=20
No, vm_map_growstack() is not a public interface. It is indeed exposed,
but this is due to the lack of the formal KBI and KPI definitions, and
not by intent.

Adding vmspace reference there is pointless, it adds two atomics for the
path for no use.

--U8v/hV883cEE9JJG
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iQIcBAEBAgAGBQJQ7wXqAAoJEJDCuSvBvK1BmSUP/2kjDAAxyOe0GBZU3olbxWfY
61BO6HdAgOeZoy1zaA8ucrob4/i9AS4thRkyaK3PeIFKENGbyB504AS5XPb+dXYF
C0ocm/EFzQGsQCeC9lfm1KHd/ncFPA/VKYFWObdn0nEoBER5Dgs8NHJ7kM824v3P
VqAGAauRX+n7OunFV4kflnfXdf5o5eP4/g+VdZkK6Y6yNVc2KnAOym4q3Bs75e6y
0AET610tLbjkuKT+qpzqe76UrOrDxOIpsLNsuPs/jwtru4PX14rnfNu0wGJsoHsy
g21mQPeKc6HtM7VxabG1Dd0IxTopJyg+YQo3g+v0K7ieowgSJruigVgSbwCIj7Cs
d4zfh/TwokvJ0ja6yBDmXgDKKOpNHZTiXljk7OXzNC5he2u9a0k/D+e3Mc3x12J+
C6wWpgIcKpzwucN31qNya6b6SctgcEjOJebDbvXU+cee5iZk6bSM+oQqiLppmiZ/
jGDqFqfJUXrDQAy3RCAk7DYNHi4OF8YPSRjyvCISklWqWbER7x2r1SfOhi7WRb+c
L6UNqQm+SGGu8gjyq21Yx3rPx/xOV2gBZlHSRn/bJBt6iVoXd2Xe06Tq7nBK4Tr6
4Gdax5m6LxrWuZnekSwWSv2z1ccuZghWWtmR2dPw3+6T56SHMxSaqlezyvmsEVXK
caaaYMYp01uWP4c8/8gA
=7W6/
-----END PGP SIGNATURE-----

--U8v/hV883cEE9JJG--



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