Re: [Containers] [PATCH 6/7] vt: Update spawnpid to be a struct pid_t
From: Eric W. Biederman
Date: Wed Aug 16 2006 - 10:22:25 EST
Kirill Korotaev <dev@xxxxx> writes:
>> Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> writes:
>>>Ar Maw, 2006-08-15 am 12:23 -0600, ysgrifennodd Eric W. Biederman:
>>>>This keeps the wrong process from being notified if the
>>>>daemon to spawn a new console dies.
>>>Not sure why we count pids not task structs but within the proposed
>>>implementation this appears correct so
>> Basically struct pid is relatively cheap, 64bytes or so.
>> struct task is expensive 10K or so, when all of the stacks
>> and everything are included.
>> Counting pids allows the task to exit in user space and free up
>> all of it's memory.
>> When /proc used to count the task struct it was fairly easy to
>> deliberately oom a 32bit machine just by open up directories in
>> /proc and then having the process exit. rlimits didn't help because
>> we don't count processes that have exited.
> hey, hey. your patch doesn't help in this situation (much)!
> inodes and dentries can still consume much memory.
> it just makes the situation a bit better.
It does help. The size of the locked memory is better and we
account for the used inodes and dentries. As I recall the inode+dentry
is less than 1k. The number of open file handle rlimit at least
lets the existing limits work. The core improvement is not allowing
an escape from our accounting mechanism for one of our biggest data
> I wonder whether it is easy to have the following done with your implementation:
> container tasks visible from host. theoretically having 2 pids (vpid, pid)
> it should be implementable. Do you see any obstacles?
I seen no problem for having tasks have N pid numbers. The trick
is to create a hash table entry (struct pid) that when has a pointer
to the real struct pid. It won't be the classic pid,vpid. All pids
will be equally real.
My intention is to give a process a pid in each namespace that it has
an ancestor in.
> in other regards patches look pretty good. Good job!
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/