Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jan 2009 22:11:46 +0200
From:      Kostik Belousov <kostikbel@gmail.com>
To:        David Schultz <das@freebsd.org>
Cc:        Ed Schouten <ed@80386.nl>, src-committers@freebsd.org, Tom Rhodes <trhodes@freebsd.org>, svn-src-all@freebsd.org, Bruce Evans <brde@optusnet.com.au>, svn-src-head@freebsd.org
Subject:   Re: svn commit: r187607 - head/usr.bin/truss
Message-ID:  <20090126201146.GD2009@deviant.kiev.zoral.com.ua>
In-Reply-To: <20090126190310.GA31728@zim.MIT.EDU>
References:  <200901230058.n0N0wEjY026935@svn.freebsd.org> <20090125162123.GB17198@hoeg.nl> <20090126041926.J43097@delplex.bde.org> <20090125175751.GC17198@hoeg.nl> <20090126051910.E2148@besplex.bde.org> <20090126190310.GA31728@zim.MIT.EDU>

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

--Km1U/tdNT/EmXiR1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, Jan 26, 2009 at 02:03:10PM -0500, David Schultz wrote:
> On Mon, Jan 26, 2009, Bruce Evans wrote:
> > - P_SYSTEM has something to do with swapping, and I also removed the
> >   PS_INMEM setting for init.  I have always used NO_SWAPPING and haven't
> >   used a swap partition since memory sizes reached 64MB, so I wouldn't
> >   have noticed problems with this.  init doesn't run often so it is
> >   quite likely to be swapped (if allowed to) if real memory runs out.
>=20
> Process kstack swapping was removed several years ago, so
> "swapping out" a process just deactivates all of its pages.
> In principle this could be safe to do with init, but it's probably
> a bad idea, and perhaps could lead to deadlock in the
> out-of-swap-space -> kill a process -> reparent the zombie to init
> path. PS_INMEM will prevent init from being swapped out.

Process kernel stacks swapping, or more explicitely, allowance to page out
threads kernel stacks, is in the kernel. It is performed by vmdaemon,
look for the call to swapout_procs().

Kernel stack contains pcb, but not the struct thread. Notifying the target
process about raised signal requires only struct proc and referenced
structures (p_sigact, p_sigqueue etc) that cannot be paged out.

More interesting propery of the P_SYSTEM process is the immunity to the
oom killer. But vm_pageout_oom() explicitely cares to not kill pid 1
or pid < 48.

P.S. Your Mail-Followup-To: header may be considered offensive.

--Km1U/tdNT/EmXiR1
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iEYEARECAAYFAkl+GQEACgkQC3+MBN1Mb4iRXwCaA2vumXSbwEUGQzVRivIrEHVH
a8wAn06B+8q4OSe8EMDqfRa35H7sVDm1
=RN0m
-----END PGP SIGNATURE-----

--Km1U/tdNT/EmXiR1--



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