public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: "Ted Ts'o" <tytso@mit.edu>, Ingo Molnar <mingo@elte.hu>,
	Greg KH <greg@kroah.com>,
	devel@driverdev.osuosl.org, Peter Zijlstra <peterz@infradead.org>,
	linux-kernel@vger.kernel.org, lttng-dev@lists.lttng.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Steven Rostedt <rostedt@goodmis.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: Re: Perf ABI (was: Re: [lttng-dev] [PATCH 09/11] sched: export task_prio to GPL modules)
Date: Fri, 23 Dec 2011 13:16:41 -0500	[thread overview]
Message-ID: <20111223181641.GA12681@Krystal> (raw)
In-Reply-To: <20111223172155.GA14117@thunk.org>

Hi Ted,

* Ted Ts'o (tytso@mit.edu) wrote:
> On Fri, Dec 23, 2011 at 11:46:29AM -0500, Mathieu Desnoyers wrote:
> > - It's doing so without even needing it: Perf is using an ABI versioning
> >   scheme designed for filesystems, when it is not in fact driven by the
> >   same constraints.
> 
> Well, there are *some* constraints.  I've been assured that despite
> the fact that the perf client is in the kernel sources (something
> which I still think is a bad idea, since it's leading to other bad
> choices like kvm-tool wanting to be bundled with kernel sources), that
> it is *not* a license to jerk the format around wildly --- that people
> will have installed userspace binaries that shouldn't randomly break
> they boot a new kernel.
> 
> So I'm *glad* that Perf is using an ABI versioning scheme that accepts
> the same restraints as file systems.  It means we don't randomly break
> userspace tools.
> 
> So Mathieu, if you think it is the current standards of backwards
> compatibility are too rigid, what level of tool breakage do you think
> is acceptable?  It's not just about the backwards compatibility of the
> trace files, it's also about compatibility of userspace utilities.
> 
> For example, systemtap, where you had to recompile from source at
> each kernel revision, and pray it would still build goes too far in
> the other direction, wouldn't you agree?  What is the correct level of
> kernel developer annoyance you think is appropriate to inflict on
> ourselves?

I completely agree that systemtap did not have the right level of
compatibility towards changes. It clearly does not make sense to require
the tools to be updated whenever the kernel version and instrumentation
changes. What makes sense to me, though, is to allow breakage when a
newly introduced tracer feature requires the ABI to break.

What I currently see as a tradeoff sweet-spot between compatibility
burden and ability to innovate is to split the ABI and handle
compatibility as follows:

- ABIs to control the tracer
  - Versioned, ideally always incrementally adding features, but still
    keeping room for major changes if needed. We should expect very,
    very seldom breakages on this front. This requires update of tracer
    control tools when the ABI is broken.

- ABIs to transport tracing data
  - Versioned, can and should change when a feature or transport
    performance enhancement require to break compatibility. This
    requires update of trace data consumer tools when compability is
    broken.

(note that ABI to control the tracer and ABI to transport data could
share the same version numbering if the control tools and transport
tools happen to reside in the same user-level packages)

- The trace data format
  - Both versioned _and_ self-described.
  Self-description of the event/field layout allows the same tools to
  understand traces gathered on different kernel versions, on different
  architectures, with different tracer configurations.
  Versioning on top of the self-described trace format allows changes
  to what the trace self-description can express.

So the breakages would happen only when required by tracer tool
capability enhancements, not randomly when a kernel instrumentation
source happens to change.

Best regards,

Mathieu

P.S.: my next replies will be slightly delayed, due to Christmas
holidays.

> 
> Regards,
> 
> 
> 						- Ted

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com

  reply	other threads:[~2011-12-23 18:16 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1322775683-8741-1-git-send-email-mathieu.desnoyers@efficios.com>
2011-12-01 21:41 ` [PATCH 01/11] mm: export vmalloc_sync_all symbol to GPL modules Mathieu Desnoyers
2011-12-01 21:57   ` Christoph Hellwig
2011-12-01 22:13     ` Greg KH
2011-12-01 22:19       ` Mathieu Desnoyers
2011-12-01 22:41         ` Greg KH
2011-12-01 22:28       ` Christoph Hellwig
2011-12-01 23:00         ` Greg KH
2011-12-01 21:41 ` [PATCH 03/11] fs/splice: export splice_to_pipe " Mathieu Desnoyers
2011-12-02  7:19   ` Jens Axboe
2011-12-02 12:32     ` Mathieu Desnoyers
2011-12-01 21:41 ` [PATCH 09/11] sched: export task_prio " Mathieu Desnoyers
2011-12-01 21:56   ` Peter Zijlstra
2011-12-01 22:04     ` Mathieu Desnoyers
2011-12-01 22:10       ` Peter Zijlstra
2011-12-01 22:15         ` Mathieu Desnoyers
2011-12-01 22:36           ` Mathieu Desnoyers
2011-12-01 23:05             ` Peter Zijlstra
2011-12-02 13:51               ` Mathieu Desnoyers
2011-12-01 23:06           ` Peter Zijlstra
2011-12-01 23:18             ` Greg KH
2011-12-01 23:47               ` Mathieu Desnoyers
2011-12-01 22:14     ` Greg KH
2011-12-01 22:20       ` Mathieu Desnoyers
2011-12-01 23:07       ` Peter Zijlstra
2011-12-01 23:17         ` Greg KH
2011-12-05 14:17           ` Ingo Molnar
2011-12-06 21:44             ` Greg KH
2011-12-08  5:23               ` Ingo Molnar
2011-12-08 23:27                 ` Greg KH
2011-12-19 10:49                   ` Ingo Molnar
2011-12-19 15:30                     ` [lttng-dev] " Mathieu Desnoyers
2011-12-20 11:08                       ` Ingo Molnar
2011-12-20 21:46                         ` Frank Rowand
2011-12-23 10:51                           ` Ingo Molnar
2011-12-21 18:47                         ` Aaron Spear
2011-12-21 18:58                           ` Christoph Hellwig
2011-12-23 16:46                         ` Perf ABI (was: Re: [lttng-dev] [PATCH 09/11] sched: export task_prio to GPL modules) Mathieu Desnoyers
2011-12-23 17:21                           ` Ted Ts'o
2011-12-23 18:16                             ` Mathieu Desnoyers [this message]
2011-12-25 17:46                               ` Ted Ts'o
2012-01-12 14:09                                 ` Mathieu Desnoyers
2012-01-12 14:54                                   ` Steven Rostedt
2012-01-12 15:39                                     ` [lttng-dev] Perf ABI (was: " Mathieu Desnoyers
2012-01-12 15:53                                       ` Steven Rostedt
2012-01-12 15:59                                         ` Steven Rostedt
2012-01-12 16:27                                         ` Mathieu Desnoyers
2012-01-12 16:34                                           ` Steven Rostedt
2012-01-12 20:00                                       ` Greg KH
2012-01-16  8:55                                         ` Ingo Molnar
2011-12-07 22:57             ` [PATCH 09/11] sched: export task_prio to GPL modules Mathieu Desnoyers
2011-12-08  5:40               ` Ingo Molnar

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=20111223181641.GA12681@Krystal \
    --to=mathieu.desnoyers@efficios.com \
    --cc=acme@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=devel@driverdev.osuosl.org \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lttng-dev@lists.lttng.org \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@mit.edu \
    /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