Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Apr 2005 10:08:46 -0400
From:      David Schultz <das@FreeBSD.ORG>
To:        ALeine <aleine@austrosearch.net>, killing@multiplay.co.uk, freebsd-hackers@FreeBSD.ORG
Subject:   Re: kernel killing processes when out of swap
Message-ID:  <20050412140846.GA17282@VARK.MIT.EDU>
In-Reply-To: <20050412132219.GB784@empiric.icir.org>
References:  <200504121224.j3CCOFXL019177@marlena.vvi.at> <20050412132219.GB784@empiric.icir.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Apr 12, 2005, Bruce M Simpson wrote:
> On Tue, Apr 12, 2005 at 05:24:15AM -0700, ALeine wrote:
> > machine. Having a flag to tag processes as vital to prevent them from getting
> > killed (or to give them lower next-to-be-killed priority so that all non-vital
> > processes get killed first) when you run out of swap would be a useful feature,
> 
> P_SYSTEM provides something like this feature, amongst others. It is used by
> init(8).  However P_SYSTEM also says that process statistics should not be
> maintained, and that the signals that may be dispatched to such processes
> are restricted.

A madvise(NULL, 0, MADV_PROTECT) is the best way to tell the
kernel not to kill your process.  You must be running as root
to use it.

Now that disk space is cheap, it would be even nicer if we had a
non-overcommit mode for swap, as most System V-derived systems do.
Then at least processes would get ENOMEM instead of SIGKILL in a
space shortage.  I don't think this would be too hard to add,
except possibly for handling OBJT_DEFAULT objects.



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