[PATCH 0/10] Make bsd process accounting work in pid namespaces

Pavel Emelyanov
2008-05-15T10:56:18Z

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.