Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Mar 2003 14:09:02 -0500 (EST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Wes Peters <wes@softweyr.com>
Cc:        freebsd-arch@freebsd.org
Subject:   RE: Patch to protect process from pageout killing
Message-ID:  <XFMail.20030324140902.jhb@FreeBSD.org>
In-Reply-To: <200303240823.48262.wes@softweyr.com>

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

On 24-Mar-2003 Wes Peters wrote:
> As promised, here's the patch to protect a process from being killed when 
> pageout is in memory shortage.  This allows a process to specify that it 
> is important enough to be skipped when pageout is looking for the largest 
> process to kill.
> 
> My needs are simple.  We make a box that is a web proxy and runs from a 
> memory disk, using flash for permanent storage.  The flash is mounted 
> only when a configuration write is needed, the box runs from the memory 
> disk.  We've experienced a problem at certain customer sites where bind 
> will consume a lot (~30 MB) of ram and then pageout will kill the largest 
> process, which is usually either named or squid.  This pretty much kills 
> the box.  We'd much rather have pageout kill off some of the squid worker 
> processes, we can recover from that.
> 
> Is this a good approach to the problem?  Feedback welcome.

I think that adopting the SIGDANGER approach would be better rather
than rolling our own private interface.

> @@ -625,6 +625,15 @@
>               if (limp->rlim_max < 1)
>                       limp->rlim_max = 1;
>               break;
> +
> +        case RLIMIT_PROTECT:
> +                mtx_lock_spin(&sched_lock);
> +                if (limp->rlim_cur)
> +                        p->p_flag |= P_PROTECTED;
> +                else
> +                        p->p_flag &= ~P_PROTECTED;
> +                mtx_unlock_spin(&sched_lock);
> +                break;

p_flag is protected by PROC_LOCK, not sched_lock.

-- 

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

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




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