kernel killing processes when out of swap
David Schultz
das at FreeBSD.ORG
Tue Apr 12 07:09:07 PDT 2005
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.
More information about the freebsd-hackers
mailing list