]> git.pld-linux.org Git - packages/lttng-modules.git/commitdiff
- fix build with latest kernels, rel 2 auto/th/lttng-modules-2.4.1-2
authorJan Rękorajski <baggins@pld-linux.org>
Tue, 20 May 2014 19:04:39 +0000 (21:04 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Tue, 20 May 2014 19:04:39 +0000 (21:04 +0200)
This patches fixes build problem introduced by:

[PATCH 3.4 3/9] blktrace: fix accounting of partially completed requests

block-update-2.patch [new file with mode: 0644]
block-update.patch [new file with mode: 0644]
lttng-modules.spec

diff --git a/block-update-2.patch b/block-update-2.patch
new file mode 100644 (file)
index 0000000..85861dc
--- /dev/null
@@ -0,0 +1,53 @@
+From cf0b616277b7be6950243bc6cdad172af073ff0a Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Date: Sat, 3 May 2014 15:07:42 -0400
+Subject: [PATCH] Fix: blktrace instrumentation for v3.2.58+ stable branch
+
+Starting with Linux kernel v3.2.58 within the v3.2 Linux stable branch:
+
+commit 5b85afa68e4f56c27f1d5c6f49e5257bce6448e6
+Author: Roman Pen <r.peniaev@gmail.com>
+Date:   Tue Mar 4 23:13:10 2014 +0900
+
+    blktrace: fix accounting of partially completed requests
+
+    commit af5040da01ef980670b3741b3e10733ee3e33566 upstream.
+
+The module API for a block layer tracepoint changes. Fix the associated
+build failure.
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ instrumentation/events/lttng-module/block.h |    3 ++-
+ probes/lttng-probe-block.c                  |    1 +
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/instrumentation/events/lttng-module/block.h b/instrumentation/events/lttng-module/block.h
+index 2af4fb3..5ea557d 100644
+--- a/instrumentation/events/lttng-module/block.h
++++ b/instrumentation/events/lttng-module/block.h
+@@ -221,7 +221,8 @@ DEFINE_EVENT(block_rq_with_error, block_rq_requeue,
+       TP_ARGS(q, rq)
+ )
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)     \
++      || LTTNG_KERNEL_RANGE(3,2,58, 3,3,0) || LTTNG_KERNEL_RANGE(3,4,91, 3,5,0))
+ /**
+  * block_rq_complete - block IO operation completed by device driver
+diff --git a/probes/lttng-probe-block.c b/probes/lttng-probe-block.c
+index 27f2142..d363d4d 100644
+--- a/probes/lttng-probe-block.c
++++ b/probes/lttng-probe-block.c
+@@ -23,6 +23,7 @@
+ #include <linux/module.h>
+ #include <linux/blktrace_api.h>
+ #include "../lttng-tracer.h"
++#include "../lttng-kernel-version.h"
+ /*
+  * Create the tracepoint static inlines from the kernel to validate that our
+-- 
+1.7.10.4
+
diff --git a/block-update.patch b/block-update.patch
new file mode 100644 (file)
index 0000000..1a8f1f3
--- /dev/null
@@ -0,0 +1,84 @@
+From 1c53e689434a6bdd7dc3f54c07bfb72750d1d24c Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Date: Tue, 15 Apr 2014 11:13:16 -0400
+Subject: [PATCH] Fix: update block instrumentation to 3.15 kernel
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ instrumentation/events/lttng-module/block.h |   53 +++++++++++++++++++++++++++
+ 1 file changed, 53 insertions(+)
+
+diff --git a/instrumentation/events/lttng-module/block.h b/instrumentation/events/lttng-module/block.h
+index 8d26797..2af4fb3 100644
+--- a/instrumentation/events/lttng-module/block.h
++++ b/instrumentation/events/lttng-module/block.h
+@@ -221,6 +221,57 @@ DEFINE_EVENT(block_rq_with_error, block_rq_requeue,
+       TP_ARGS(q, rq)
+ )
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0))
++
++/**
++ * block_rq_complete - block IO operation completed by device driver
++ * @q: queue containing the block operation request
++ * @rq: block operations request
++ * @nr_bytes: number of completed bytes
++ *
++ * The block_rq_complete tracepoint event indicates that some portion
++ * of operation request has been completed by the device driver.  If
++ * the @rq->bio is %NULL, then there is absolutely no additional work to
++ * do for the request. If @rq->bio is non-NULL then there is
++ * additional work required to complete the request.
++ */
++TRACE_EVENT(block_rq_complete,
++
++      TP_PROTO(struct request_queue *q, struct request *rq,
++               unsigned int nr_bytes),
++
++      TP_ARGS(q, rq, nr_bytes),
++
++      TP_STRUCT__entry(
++              __field(  dev_t,        dev                     )
++              __field(  sector_t,     sector                  )
++              __field(  unsigned int, nr_sector               )
++              __field(  int,          errors                  )
++              __field(  unsigned int, rwbs                    )
++              __dynamic_array_hex( unsigned char,     cmd,
++                      (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
++                              rq->cmd_len : 0)
++      ),
++
++      TP_fast_assign(
++              tp_assign(dev, rq->rq_disk ? disk_devt(rq->rq_disk) : 0)
++              tp_assign(sector, blk_rq_pos(rq))
++              tp_assign(nr_sector, nr_bytes >> 9)
++              tp_assign(errors, rq->errors)
++              blk_fill_rwbs(rwbs, rq->cmd_flags, nr_bytes)
++              tp_memcpy_dyn(cmd, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
++                                      rq->cmd : NULL)
++      ),
++
++      TP_printk("%d,%d %s (%s) %llu + %u [%d]",
++                MAJOR(__entry->dev), MINOR(__entry->dev),
++                __entry->rwbs, __get_str(cmd),
++                (unsigned long long)__entry->sector,
++                __entry->nr_sector, __entry->errors)
++)
++
++#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
++
+ /**
+  * block_rq_complete - block IO operation completed by device driver
+  * @q: queue containing the block operation request
+@@ -239,6 +290,8 @@ DEFINE_EVENT(block_rq_with_error, block_rq_complete,
+       TP_ARGS(q, rq)
+ )
++#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,0)) */
++
+ DECLARE_EVENT_CLASS(block_rq,
+       TP_PROTO(struct request_queue *q, struct request *rq),
+-- 
+1.7.10.4
+
index 4abfcaa8550b688464c20e2f7143920e84f7fafa..e879ed8acd277e6bcbf5b8f1c75981802c06b6df 100644 (file)
@@ -20,7 +20,7 @@ exit 1
 %define                kpkg    %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%kernel_pkg ; done)
 %define                bkpkg   %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%build_kernel_pkg ; done)
 
-%define                rel     1
+%define                rel     2
 %define                pname   lttng-modules
 Summary:       LTTng 2.x kernel modules
 Summary(pl.UTF-8):     Moduły jądra LTTng 2.x
@@ -31,6 +31,8 @@ License:      GPL v2
 Group:         Base/Kernel
 Source0:       http://lttng.org/files/lttng-modules/%{pname}-%{version}.tar.bz2
 # Source0-md5: 5d778f0de7a5d01e544b6f8357046472
+Patch0:                block-update.patch
+Patch1:                block-update-2.patch
 URL:           http://lttng.org/
 %if %{with dist_kernel}
 BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.38
@@ -100,6 +102,8 @@ p=`pwd`\
 
 %prep
 %setup -q -n %{pname}-%{version}
+%patch0 -p1
+%patch1 -p1
 
 %build
 %{expand:%bkpkg}
This page took 0.047673 seconds and 4 git commands to generate.