Messages in this thread | | | Date | Thu, 15 May 2008 14:52:46 +0400 | From | Pavel Emelyanov <> | Subject | [PATCH 0/10] Make bsd process accounting work in pid namespaces |
| |
After I fixed access to task->tgid in kernel/acct.c, Oleg pointed out some bad side effects with this accounting vs pid namespaces interaction. I.e. when some task in pid namespace sets this accounting up, this blocks all the others from doing the same. Restricting this to init namespace only could help, but didn't look as a grace solution.
So here is the approach to make this accounting work with pid namespaces properly.
The idea is simple - when a task dies it accounts itself in each namespace it is visible from and which set the accounting up.
For example here are the commands run and the output of lastcomm from init and sub namespaces:
init_ns# accton pacct sub_ns# accton pacct (this is a different file - sub ns is run in a chroot-ed environment) init_ns# cat /dev/null sub_ns# ls /dev/null init_ns# accton sub_ns# accton
sub_ns# lastcomm -f pacct ls 0 [136,0] 0.00 secs Thu May 15 10:30 accton 0 [136,0] 0.00 secs Thu May 15 10:30
init_ns# lastcomm -f pacct accton root pts/0 0.00 secs Thu May 15 14:30 << got from sub cat root pts/1 0.00 secs Thu May 15 14:30 ls root pts/0 0.00 secs Thu May 15 14:30 << got from sub accton root pts/1 0.00 secs Thu May 15 14:30
That was the summary, the details are in patches.
The set was sent for RFC a month ago, but I got only one, but positive response from Oleg. Hopefully, he can confirm one now.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
| |