Re: [lttng-dev] Perf ABI (was: Re: [PATCH 09/11] sched: export task_prio to GPL modules)

Mathieu Desnoyers
2012-01-12T16:28:00Z

* Steven Rostedt (rostedt@goodmis.org) wrote:
> On Thu, 2012-01-12 at 10:39 -0500, Mathieu Desnoyers wrote:
>
> > pipe()/pipe2()
> > dup()/dup2()/dup3()
> > umount()/umount2()
> > mmap()/mmap2()
> > madvise()/madvise1()
> > eventfd()/eventfd2()
> >
> > Those look very much like major version numbers to me. And these are
> > entirely compatible with your statement above about using -ENOSYS to
> > detect if the major version number is implemented or not.
>
> That's a stretch in calling version numbers. All but the madvise case
> above are how many parameters it takes, not really a "version" number.
>
> It's adding a new syscall, not updating a version and then deprecating
> the old one. As I believe all the above are still supported.
>
> >
> > If your only concern is that the major version number should be part of
> > the ABI name (as in the examples above), that can be arranged.
>
> > >
> > > We've done this without version numbers. Just look at all the udev
> > > changes.
> >
> > Are you seriously refering to udev as an example of how to handle
> > changes, or as one of the worse ABI breakage mess that happened in the
> > Linux kernel history ? My own experience as a Linux users (in the
> > era around 2.6.12 kernels if my memory serves me right) lead me to think
> > it's the latter. And because udev is part of the runtime support, that
> > indeed led to non-bootable systems and lots of frustrated users.
>
> Yeah, I know it sucked, as I got burned by it too. But having "version"
> numbers wouldn't have helped at all. In fact, it should have kept both
> ways working much longer, or at least had the new udev support both.
>
> What udev did is more like what you want to do than what I did with
> trace-cmd.

OK. Then how can trace-cmd support the LTTng features ?

Thanks,

Mathieu

--
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.