public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Theodore Ts'o" <tytso@mit.edu>
To: lsf-pc@lists.linux-foundation.org
Cc: Linux Filesystem Development List <linux-fsdevel@vger.kernel.org>,
	bpf@vger.kernel.org
Subject: [LSF/MM/BPF TOPIC] time to reconsider tracepoints in the vfs?
Date: Thu, 16 Jan 2025 07:49:49 -0500	[thread overview]
Message-ID: <20250116124949.GA2446417@mit.edu> (raw)

Historically, we have avoided adding tracepoints to the VFS because of
concerns that tracepoints would be considered a userspace-level
interface, and would therefore potentially constrain our ability to
improve an interface which has been extremely performance critical.

I'd like to discuss whether in 2025, it's time to reconsider our
reticence in adding tracepoints in the VFS layer.  First, while there
has been a single incident of a tracepoint being used by programs that
were distributed far and wide (powertop) such that we had to revert a
change to a tracepoint that broke it --- that was ***14** years ago,
in 2011.  Across multiple other subsystems, many of
which have added an extensive number of tracepoints, there has been
only a single problem in over a decade, so I'd like to suggest that
this concern may have not have been as serious as we had first
thought.

In practice, most tracepoints are used by system administrators and
they have to deal with enough changes that break backwards
compatibility (e.g., bash 3 ->bash 4, bash 4 -> bash 5, python 2.7 ->
python 3, etc.) that the ones who really care end up using an
enterprise distribution, which goes to extreme length to maintain the
stable ABI nonsense.  Maintaining tracepoints shouldn't be a big deal
for them.

Secondly, we've had a very long time to let the dentry interface
mature, and so (a) the fundamental architecture of the dcache hasn't
been changing as much in the past few years, and (b) we should have
enough understanding of the interface to understand where we could put
tracepoints (e.g., close to the syscall interface) which would make it
much less likely that there would be any need to make
backwards-incompatible changes to tracepoints.

The benefits of this would be to make it much easier for users,
developers, and kernel developers to use BPF to probe file
system-related activities.  Today, people who want to do these sorts
of things need to use fs-specific tracepoints (for example, ext4 has a
very large number of tracepoints which can be used for this purpose)
but this locks users into a single file system and makes it harder for
them to switch to a different file system, or if they want to use
different file systems for different use cases.

I'd like to propose that we experiment with adding tracepoints in
early 2025, so that at the end of the year the year-end 2025 LTS
kernels will have tracepoints that we are confident will be fit for
purpose for BPF users.

Thanks,

					- Ted

             reply	other threads:[~2025-01-16 12:50 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-16 12:49 Theodore Ts'o [this message]
2025-01-16 16:53 ` [LSF/MM/BPF TOPIC] time to reconsider tracepoints in the vfs? Al Viro
2025-01-16 17:29   ` [Lsf-pc] " Jan Kara
2025-01-16 17:20 ` Jan Kara
2025-01-20 15:43   ` Christian Brauner
2025-01-20 17:15     ` Jan Kara
2025-01-16 21:18 ` Dave Chinner
2025-01-16 21:43   ` Andrii Nakryiko
2025-01-17  2:20     ` Al Viro
2025-01-17 18:33       ` Andrii Nakryiko
2025-01-20 15:42     ` Christian Brauner
2025-01-18  3:07   ` Daniel Xu
2025-01-18  3:37     ` Al Viro

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=20250116124949.GA2446417@mit.edu \
    --to=tytso@mit.edu \
    --cc=bpf@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=lsf-pc@lists.linux-foundation.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox