All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Peter.Enderborg@sony.com>
To: <rostedt@goodmis.org>, <ebiederm@xmission.com>
Cc: <mathieu.desnoyers@efficios.com>, <linux-kernel@vger.kernel.org>,
	<mingo@redhat.com>, <akpm@linux-foundation.org>,
	<peterz@infradead.org>, <ast@kernel.org>,
	<christian.brauner@ubuntu.com>, <dave@stgolabs.net>,
	<walken@google.com>, <jannh@google.com>,
	<christophe.leroy@c-s.fr>, <minchan@kernel.org>
Subject: Re: [PATCH 1/2] tracing: Add a trace for task_exit
Date: Tue, 4 May 2021 08:00:43 +0000	[thread overview]
Message-ID: <51452139-801a-8b69-793a-946334bef434@sony.com> (raw)
In-Reply-To: <20210503165522.6f1f2fc3@gandalf.local.home>

On 5/3/21 10:55 PM, Steven Rostedt wrote:
> On Mon, 03 May 2021 14:02:48 -0500
> ebiederm@xmission.com (Eric W. Biederman) wrote:
>
>>> However current traces is template based, and I assume it wont be
>>> popular to add new fields to the template, and exit reasons is not
>>> right for the other template use cases.
> trace events can always add fields, it's removing them that can cause
> problems (but even then, it's not that bad). The new libtracefs and
> libtraceevent make it trivial for tools to get the fields from trace events
> when needed.
>
>>> I still see a "new" task moving it to do_exit make trace name more
>>> correct?  Or is trace_task_do_exit better?  
> It is also trivial with the libraries to write a tool that can put together
> everything you want. We even are working on python bindings to connect to
> these libraries where you could write a python script to do this.

The bpftrace package are 163 MB install size and that is on
a system that already have python. Linux is very much used
on embedded system, having a shell is luxurious.


Trivial?

Concept

A eBpf program hook in to a tracepoint A & B and collect data.

A happens before B and send the collected data when B happen.

1 A is called:

2 C is created, C is destroyed.

3 B is called. How do I fetch C?

However I can make a ebpf that hooks in sched_process_free and
sched_process_exit use  the uapi version of bpf_get_current_task to pick up

oom_score_adj and exit_code.  However task definition is dependent on 71 ifdef's
not including object that is pointers that also might have build dependency
and some are there more than once.

I think kprobe will cause the same problem. It wont be that big deal if it
was a for kernel debugging. But this is for userspace and should not
have dependency on kernel internals.


> There is no need for a new tracepoint, especially if it makes it harder to
> improve the implementation of what is being traced.
It does not introduce any complex functionality, and with a other
mechanism i still believe you would need to reap the task somewhere.
But I guess it will be needed to add a exist status flag that is new,
but that is with or without a new tracepoint.

The python libs that uses this fetch the first item in the task_struct
and assume that it is thread_info. What could possible go wrong?

Is there a runtime linker in ebpf that resolves this by magic?

>
>> I really can't say, as I don't know much of anything about the tracing
>> infrastructure.  I would assume in most cases with a tracepoint in place
>> other kinds of tracing (like bpf programs) could come into play and read
>> out pieces of information that are not commonly wanted.
>>
>> All I really know something about is the exit code path, as I keep
>> slowly trying to clean it up.  I plan on ignoring any tracepoint that
>> makes that gets in the way.
> As you should.
>
> -- Steve


  reply	other threads:[~2021-05-04  8:02 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-30 14:22 [PATCH 0/2] tracing: Add trace for task_exit Peter Enderborg
2021-04-30 14:22 ` [PATCH 1/2] tracing: Add a " Peter Enderborg
2021-04-30 17:48   ` Eric W. Biederman
2021-05-01  9:29     ` Peter.Enderborg
2021-05-01 13:11       ` Steven Rostedt
2021-05-03 13:50         ` Mathieu Desnoyers
2021-05-03 14:48           ` Peter.Enderborg
2021-05-03 16:30             ` Eric W. Biederman
2021-05-03 18:04               ` Peter.Enderborg
2021-05-03 19:02                 ` Eric W. Biederman
2021-05-03 19:43                   ` Peter.Enderborg
2021-05-03 20:55                   ` Steven Rostedt
2021-05-04  8:00                     ` Peter.Enderborg [this message]
2021-05-04 13:18                       ` Steven Rostedt
2021-04-30 14:22 ` [PATCH 2/2] tracing: Align task.h to use __assing_str for strings Peter Enderborg

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=51452139-801a-8b69-793a-946334bef434@sony.com \
    --to=peter.enderborg@sony.com \
    --cc=akpm@linux-foundation.org \
    --cc=ast@kernel.org \
    --cc=christian.brauner@ubuntu.com \
    --cc=christophe.leroy@c-s.fr \
    --cc=dave@stgolabs.net \
    --cc=ebiederm@xmission.com \
    --cc=jannh@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=minchan@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=walken@google.com \
    /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.