[dm-devel] [ANNOUNCE] multipath-tools-0.4.4
Lars Marowsky-Bree
lmb at suse.de
Mon Apr 25 09:28:09 UTC 2005
On 2005-04-25T00:26:58, christophe varoqui <christophe.varoqui at free.fr> wrote:
> * the daemon sets /proc/self/oom_adj to -17, hence is
> protected from the oom killer. Watch out for leaks.
I just cross-checked this. Quoting /usr/src/linux/fs/proc/base.c:
static ssize_t oom_adjust_write(struct file * file, const char * buf,
size_t count, loff_t *ppos)
{
struct task_struct *task = proc_task(file->f_dentry->d_inode);
char buffer[8], *end;
int oom_adjust;
if (!capable(CAP_SYS_RESOURCE))
return -EPERM;
memset(buffer, 0, 8);
if (count > 6)
count = 6;
if (copy_from_user(buffer, buf, count))
return -EFAULT;
oom_adjust = simple_strtol(buffer, &end, 0);
if (oom_adjust < -16 || oom_adjust > 15)
return -EINVAL;
if (*end == '\n')
end++;
task->oomkilladj = oom_adjust;
if (end - buffer == 0)
return -EIO;
return end - buffer;
}
I doubt that set_oom_adj() has ever worked, unless your kernel is different
from mine in this regard... Checking the return value on fprintf()/fclose()
might have caught this earlier.
Sincerely,
Lars Marowsky-Brée <lmb at suse.de>
--
High Availability & Clustering
SUSE Labs, Research and Development
SUSE LINUX Products GmbH - A Novell Business
More information about the dm-devel
mailing list