Oh, sorry for the delay. Again ;) On 12/02, Michael Holzheu wrote: > > 1) You have a thread group with several threads > 2) Thread group leader dies and reports cdata_wait in taskstats_exit() > 3) Thread group leader stays around as zombie until the thread > group dies > 4) Other forked processes of this thread group die > 5) cdata_wait of thread group is increased > 6) The new cdata is not reported by any exit event of the thread group Yes. > So maybe we should remove the thread_group_leader() check and report > cdata_wait for all threads and not only for the thread group leader? We > also should add ac_tgid to taskstats so that userspace can find the > corresponding thread group for each thread. I do not know. My only point was, this thread_group_leader() looks a bit confusing, at least if we are talking about do_exit() path. > When the last thread exits and the process/thread group dies, > taskstats_exit() sends an additional taskstats struct to userspace that > aggregates the thread accounting data. Currently only the delay > accounting data is aggregated (see > taskstats_exit->fill_tgid_exit->delayacct_add_tsk). Not sure, why the > other information is not aggregated. We perhaps also should include > ac_cXtime in the aggregated taskstats. Not sure I understand... Do you mean if (is_thread_group) fill_tgid_exit(tsk); ? Afaics, this is not "When the last thread exits", this is "this program is multithreaded, it has (or had) other threads". Oleg. -- 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