[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