* Oleg Nesterov <oleg@xxxxxxxxxx> [2010-11-20 16:17:11]: > On 11/19, Peter Zijlstra wrote: > > > > On Fri, 2010-11-19 at 21:11 +0100, Michael Holzheu wrote: > > > Due to POSIX POSIX.1-2001, the CPU time of processes is not accounted > > > to the cumulative time of the parents, if the parents ignore SIGCHLD > > > or have set SA_NOCLDWAIT. This behaviour has the major drawback that > > > it is not possible to calculate all consumed CPU time of a system by > > > looking at the current tasks. CPU time can be lost. > > > > > > To solve this problem, this patch set duplicates the cumulative accounting > > > data in the signal_struct. In the second set (cdata_acct) the complete > > > cumulative resource counters are stored. The new cumulative CPU time (utime > > > and stime) is then exported via the taskstats interface. > > > > Maybe this has been treated earlier in the threads and I missed it, but > > the obvious solution doesn't get mentioned: > > IIRC, the first version did this. > > And it was me who spoiled this approach. But! only because I wasn't sure > this user-visible change is acceptable, and because there was some > misunderstanding. See http://marc.info/?l=linux-kernel&m=128552495203050&w=2 > > But, > > > What would break if we > > say, any test-case which does getrusage() after fork() with ignored > SIGCHLD/SA_NOCLDWAIT?. > > > violate this silly POSIX rule and account time of > > childs regardless of SIGCHLD/SA_NOCLDWAIT? > > +1. > > Personally, I'd certainly prefer this way, because I don't care about > POSIX at all ;) > > > Still. Once again, this breaks the current rules, and we never do > this without strong reason. > > I think we should ask Roland. If he thinks this is OK, I'd certainly > agree. > The Linux man page states In Linux kernel versions before 2.6.9, if the disposition of SIGCHLD is set to SIG_IGN then the resource usages of child processes are automatically included in the value returned by RUSAGE_CHILDREN, although POSIX.1-2001 explicitly prohibits this. This nonconformance is rectified in Linux 2.6.9 and later. -- Three Cheers, Balbir -- To unsubscribe from this list: send the line "unsubscribe linux-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html