Re: "blktrace: fix accounting ..." breaks lttng API in -stable trees

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 03.05.2014 20:38, schrieb Mathieu Desnoyers:
----- Original Message -----
From: "Ben Hutchings" <ben@xxxxxxxxxxxxxxx>
To: "Dirk Behme" <dirk.behme@xxxxxxxxx>
Cc: "Kamal Mostafa" <kamal@xxxxxxxxxxxxx>, "gregkh" <gregkh@xxxxxxxxxxxxxxxxxxx>, "Mathieu Desnoyers"
<mathieu.desnoyers@xxxxxxxxxxxx>, "stable" <stable@xxxxxxxxxxxxxxx>, "Luis Henriques"
<luis.henriques@xxxxxxxxxxxxx>, "Jiri Slaby" <jslaby@xxxxxxx>, "Roman Pen" <r.peniaev@xxxxxxxxx>, "Steven Rostedt"
<rostedt@xxxxxxxxxxx>, "Frederic Weisbecker" <fweisbec@xxxxxxxxx>, "Ingo Molnar" <mingo@xxxxxxxxxx>, "Jens Axboe"
<axboe@xxxxxx>
Sent: Saturday, May 3, 2014 2:33:56 PM
Subject: Re: "blktrace: fix accounting ..." breaks lttng API in -stable trees

On Sat, 2014-05-03 at 20:08 +0200, Dirk Behme wrote:
Am 03.05.2014 18:43, schrieb Ben Hutchings:
On Sat, 2014-05-03 at 18:35 +0200, Dirk Behme wrote:
Am 02.05.2014 20:09, schrieb Kamal Mostafa:
On Fri, 2014-05-02 at 13:30 -0400, gregkh wrote:
On Fri, May 02, 2014 at 10:07:33AM -0700, Kamal Mostafa wrote:
Dirk Behme points out that this "Cc: stable" commit breaks the
lttng-modules userspace API when applied to stable kernels.  Stable
versions 3.2, 3.8, 3.11, and 3.13 (at least) have all queued it:

           af5040da01ef980670b3741b3e10733ee3e33566
           blktrace: fix accounting of partially completed requests


On Thu, 2014-05-01 at 10:28 +0200, Dirk Behme wrote:
[...] might break the build of the user space lttng-modules
(lttng-probe-block.c) due the the API change of
trace_block_rq_complete().

[...] On the other hand, looking into the lttng-modules git
http://git.lttng.org/?p=lttng-modules.git;a=commitdiff;h=1c53e689434a6bdd7dc3f54c07bfb72750d1d24c
looks like this is the necessary user space adaption to the kernel
change? So this looks like that lttng-modules expects a
KERNEL_VERSION
= (3,15,0) to have this commit?


My inclination is that we probably need to revert/drop "af5040d
blktrace: fix accounting..." from the stable kernels to unbreak the
userspace API.

Then you will run into this issue with 3.15, when it is released.

No, I think "#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))" in the
lttng-modules commit referenced above guards against that.  Apparently,
lttng-modules expects to see the new API in >= 3.15 and the old API in
the stable kernels.

I'm not in the position to judge if it's a lttng or a kernel community
issue ;)

So just for my understanding:

Having

#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))

in lttng-modules commit

http://git.lttng.org/?p=lttng-modules.git;a=commitdiff;h=1c53e689434a6bdd7dc3f54c07bfb72750d1d24c

does mean that we don't have a lttng-modules version which will build
against the -stable kernels (3.2.58, 3,8.13.22 etc) with the back
ported commit [1], atm?
[...]

I don't understand why lttng-modules has its own definitions of
tracepoints.  However, I suspect that it doesn't use anything beyond the
event structure definition, which has *not* changed, making that commit
a no-op.

Someone who cares should actually experiment with using old
lttng-modules with blktrace eventsf rom a patched kernel.

Not sure if this helps, but using -stable kernel 3.2.58 and recent
lttng-modules.git:
[...]
    CC [M]  lttng-modules.git/probes/lttng-probe-block.o
[...]
Error: Conflicting types for »trace_block_rq_complete«
In file included from lttng-modules.git/probes/lttng-probe-block.c:31:0:
include/trace/events/block.h:123:1: Note: Previous definition of
»trace_block_rq_complete« was here
make[3]: *** [lttng-modules.git/probes/lttng-probe-block.o] Error 1
[...]

So it's rebuilding the OOT module that fails, not trying to run already
existing userland.  That's just tough; module API changes on a stable
branch are allowed and have happened many times.  (Distributions tend to
care a bit more about this.)

I'm currently going back starting from 3.2.xx stable kernels onward to
add the missing ifdefs in LTTng to follow the module API changes within
those stable branches. Indeed, LTTng being an OOT module will adapt to
those upstream changes. I'll push the fixes into LTTng master and
stable-2.4 branches.

Many thanks!

It would be nice if you could cover the stable branches done by the Ubuntu team

http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=summary

too. Esp. I'm talking about linux-3.8.y.

Thanks

Dirk

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]