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>