[packages/lttng-modules] - fix build with latest kernels, rel 2
baggins
baggins at pld-linux.org
Tue May 20 21:05:34 CEST 2014
commit e0ccd78a799f396403582d19daf6a9bdbcbf6e57
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Tue May 20 21:04:39 2014 +0200
- fix build with latest kernels, rel 2
This patches fixes build problem introduced by:
[PATCH 3.4 3/9] blktrace: fix accounting of partially completed requests
block-update-2.patch | 53 +++++++++++++++++++++++++++++++++
block-update.patch | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++
lttng-modules.spec | 6 +++-
3 files changed, 142 insertions(+), 1 deletion(-)
---
diff --git a/lttng-modules.spec b/lttng-modules.spec
index 4abfcaa..e879ed8 100644
--- a/lttng-modules.spec
+++ b/lttng-modules.spec
@@ -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}
diff --git a/block-update-2.patch b/block-update-2.patch
new file mode 100644
index 0000000..85861dc
--- /dev/null
+++ b/block-update-2.patch
@@ -0,0 +1,53 @@
+From cf0b616277b7be6950243bc6cdad172af073ff0a Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers at 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 at 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 at 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
index 0000000..1a8f1f3
--- /dev/null
+++ b/block-update.patch
@@ -0,0 +1,84 @@
+From 1c53e689434a6bdd7dc3f54c07bfb72750d1d24c Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers at 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 at 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
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/lttng-modules.git/commitdiff/e0ccd78a799f396403582d19daf6a9bdbcbf6e57
More information about the pld-cvs-commit
mailing list