Patch to protect process from pageout killing

John Baldwin jhb at FreeBSD.org
Wed Mar 26 17:13:33 PST 2003


On 26-Mar-2003 Wes Peters wrote:
> On Tuesday 25 March 2003 08:34, John Baldwin wrote:
>> On 25-Mar-2003 Wes Peters wrote:
>> > On Monday 24 March 2003 08:36, Poul-Henning Kamp wrote:
>> >> Also, doesn't this result in the flag being inerited with fork() and
>> >> thereby negating the effect you are seeking for squid ?
>> >
>> > I looked through all the places in kern_fork.c where p2->p_flag gets
>> > set and didn't see anything that looked like it would inherit
>> > P_PROTECTED from p1->p_flag.  Did I miss something?  I'm obviously a
>> > bit of a neophyte in this part of the kernel.
>>
>> rlimit's are inherited.  However, due to a "feature" bug in your patch,
>> the P_PROTECTED flag doesn't get turned on when the rlimit is inherited
>> in fork1().
> 
> feature bug?  If you mean the fact that the setting for P_PROTECTED isn't 
> stored in the rlimit, that was intentional.  rlimits are inherited and I 
> specifically didn't want that behavior, similar to p_cpulimit.  I still 
> agree resource limits are not an ideal interface to use for this, I'll 
> look further.

I mean that you should be setting P_PROTECTED in fork() based on the
inherited rlimit's since otherwise the value of the rlimit is out of
sync with the P_PROTECTED flag.  Hence a bug.  However, since non-
inheritance is the desired behavior, it is also a feature, hence
"feature" bug.

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the freebsd-arch mailing list