On 02/19, Steven Rostedt wrote:
On Sat, 17 Feb 2024 11:49:24 +0100
Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
On 02/17, wenyang.linux@xxxxxxxxxxx wrote:
From: Wen Yang <wenyang.linux@xxxxxxxxxxx>
Currently coredump_task_exit() takes some time to wait for the generation
of the dump file. But if the user-space wants to receive a notification
as soon as possible it maybe inconvenient.
Add the new trace_sched_process_coredump() into coredump_task_exit(),
this way a user-space monitor could easily wait for the exits and
potentially make some preparations in advance.
Can't comment, I never know when the new tracepoint will make sense.
Stupid question. Can we simply shift trace_sched_process_exit() up
before coredump_task_exit() ?
Reading the rest of the thread and looking at the code, we do have this:
void __noreturn do_exit(long code)
{
struct task_struct *tsk = current;
int group_dead;
[...]
acct_collect(code, group_dead);
if (group_dead)
tty_audit_exit();
audit_free(tsk);
tsk->exit_code = code;
taskstats_exit(tsk, group_dead);
exit_mm();
if (group_dead)
acct_process();
trace_sched_process_exit(tsk);
There's a lot that happens before we trigger the above event.
and a lot after.
To me the current placement of looks absolutely
random.
I could
imagine that there are users expecting those actions to have taken place by
the time the event triggered. Like the "exit_mm()" call, as well as many
others.
I would be leery of moving that tracepoint.
And I agree. I am always scared of every user-visible change, simply
because it is user-visbible.
If it was not clear, I didn't try to nack this patch. I simply do not know
how people use the tracepoints and for what. Apart from debugging.
But if we add the new one into coredump_task_exit(), then we probably want
another one in ptrace_event(PTRACE_EVENT_EXIT) ? It too can "take some time"
before the exiting task actually exits.
So I think this needs some discussion, and the changelog should probably say
more.
In short: I am glad you are here, I leave this to you and Wen ;)