From: "liuchao (CR)" <liuchao173@huawei.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: "mingo@kernel.org" <mingo@kernel.org>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Hushiyuan <hushiyuan@huawei.com>,
"hewenliang (C)" <hewenliang4@huawei.com>
Subject: Re: [RFC] decrease tsk->signal->live before profile_task_exit
Date: Tue, 9 Jun 2020 02:30:02 +0000 [thread overview]
Message-ID: <36882010b4b642a0b752eeeea697e783@huawei.com> (raw)
Eric W. Biederman <mailto:ebiederm@xmission.com> writes:
> liuchao <liuchao173@huawei.com> writes:
>
> > I want to dermine which thread is the last one to enter do_exit in
> > profile_task_exit. But when a lot of threads exit, tsk->signal->live
> > is not correct since it decrease after profile_task_exit.
>
> I don't think that would be wise.
>
> Any additional code before the sanity checks at the start of do_exit seems
> like a bad idea.
>
> We could probably move the decrement of tsk->signal->live a little earlier,
> but not that much earlier in the function.
>
> Does profile_task_exit even make sense that early in the code? If the code
> is doing much of anything that is a completely inappopriate placement of
> profile_task_exit.
I think so too.
Move the decrement of tsk->signal->live after the sanity checks, then
profile_task_exit and kcov_task_exit make more sense.
>
> Eric
>
>
> > Signed-off-by: liuchao <liuchao173@huawei.com>
> > ---
> > kernel/exit.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/kernel/exit.c b/kernel/exit.c index
> > ce2a75bc0ade..1693764bc356 100644
> > --- a/kernel/exit.c
> > +++ b/kernel/exit.c
> > @@ -708,6 +708,7 @@ void __noreturn do_exit(long code)
> > struct task_struct *tsk = current;
> > int group_dead;
> >
> > + group_dead = atomic_dec_and_test(&tsk->signal->live);
> > profile_task_exit(tsk);
> > kcov_task_exit(tsk);
> >
> > @@ -755,7 +756,6 @@ void __noreturn do_exit(long code)
> > if (tsk->mm)
> > sync_mm_rss(tsk->mm);
> > acct_update_integrals(tsk);
> > - group_dead = atomic_dec_and_test(&tsk->signal->live);
> > if (group_dead) {
> > /*
> > * If the last thread of global init has exited, panic
next reply other threads:[~2020-06-09 2:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-09 2:30 liuchao (CR) [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-05-28 4:09 [RFC] decrease tsk->signal->live before profile_task_exit liuchao
2020-05-29 18:01 ` Eric W. Biederman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=36882010b4b642a0b752eeeea697e783@huawei.com \
--to=liuchao173@huawei.com \
--cc=ebiederm@xmission.com \
--cc=hewenliang4@huawei.com \
--cc=hushiyuan@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.