[packages/lttng-modules] - up to 2.6.0

baggins baggins at pld-linux.org
Wed Jan 28 07:50:39 CET 2015


commit 59b72c38790e49cbabbb8abd1718a59836ce1249
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Wed Jan 28 07:50:27 2015 +0100

    - up to 2.6.0

 linux-3.17.patch   | 242 -----------------------------------------------------
 linux-3.18.patch   |  66 ---------------
 lttng-modules.spec |  10 +--
 3 files changed, 3 insertions(+), 315 deletions(-)
---
diff --git a/lttng-modules.spec b/lttng-modules.spec
index 423b244..f3fba44 100644
--- a/lttng-modules.spec
+++ b/lttng-modules.spec
@@ -6,20 +6,18 @@
 # nothing to be placed to debuginfo package
 %define		_enable_debug_packages	0
 
-%define		rel	2
+%define		rel	1
 %define		pname	lttng-modules
 Summary:	LTTng 2.x kernel modules
 Summary(pl.UTF-8):	Moduły jądra LTTng 2.x
 Name:		%{pname}%{_alt_kernel}
-Version:	2.5.2
+Version:	2.6.0
 Release:	%{rel}@%{_kernel_ver_str}
 License:	GPL v2
 Group:		Base/Kernel
 Source0:	http://lttng.org/files/lttng-modules/%{pname}-%{version}.tar.bz2
-# Source0-md5:	74d2fd161fdbf3426c6af5a36a774d4a
+# Source0-md5:	a058ab037daaca293a54934d7b9f9c98
 Patch0:		build.patch
-Patch1:		linux-3.17.patch
-Patch2:		linux-3.18.patch
 URL:		http://lttng.org/
 %{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:2.6.38}
 %{?with_allprobes:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-source >= 3:2.6.38}}
@@ -87,8 +85,6 @@ p=`pwd`\
 %prep
 %setup -q -n %{pname}-%{version}
 %patch0 -p1
-%patch1 -p1
-%patch2 -p1
 
 %build
 %{expand:%build_kernel_packages}
diff --git a/linux-3.17.patch b/linux-3.17.patch
deleted file mode 100644
index cb1baf0..0000000
--- a/linux-3.17.patch
+++ /dev/null
@@ -1,242 +0,0 @@
-commit 458c2022e992c057bd21d02e4c77bcc7d4d6cd6c
-Author: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
-Date:   Thu Aug 21 11:15:50 2014 -0400
-
-    Update kvm instrumentation: compile on 3.17-rc1
-    
-    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
-
-diff --git a/instrumentation/events/lttng-module/arch/x86/kvm/trace.h b/instrumentation/events/lttng-module/arch/x86/kvm/trace.h
-index 2354884..3c299c5 100644
---- a/instrumentation/events/lttng-module/arch/x86/kvm/trace.h
-+++ b/instrumentation/events/lttng-module/arch/x86/kvm/trace.h
-@@ -724,7 +724,7 @@ TRACE_EVENT(kvm_emulate_insn,
- 		tp_memcpy(insn,
- 		       vcpu->arch.emulate_ctxt.decode.fetch.data,
- 		       15)
--#else
-+#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0))
- 		tp_assign(rip, vcpu->arch.emulate_ctxt.fetch.start)
- 		tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
- 		tp_assign(len, vcpu->arch.emulate_ctxt._eip
-@@ -732,6 +732,16 @@ TRACE_EVENT(kvm_emulate_insn,
- 		tp_memcpy(insn,
- 		       vcpu->arch.emulate_ctxt.fetch.data,
- 		       15)
-+#else
-+		tp_assign(rip, vcpu->arch.emulate_ctxt._eip -
-+			(vcpu->arch.emulate_ctxt.fetch.ptr -
-+				vcpu->arch.emulate_ctxt.fetch.data))
-+		tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS))
-+		tp_assign(len, vcpu->arch.emulate_ctxt.fetch.ptr -
-+			vcpu->arch.emulate_ctxt.fetch.data)
-+		tp_memcpy(insn,
-+		       vcpu->arch.emulate_ctxt.fetch.data,
-+		       15)
- #endif
- 		tp_assign(flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode))
- 		tp_assign(failed, failed)
-commit b07252070edd244987bf160c1ee488d4796bb3a3
-Author: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
-Date:   Sun Jul 13 13:20:57 2014 -0400
-
-    Use 3.17 ktime_get_mono_fast_ns() new API
-    
-    The new ktime_get_mono_fast_ns() API introduced in kernel 3.17 allows
-    tracing NMI handlers.
-    
-    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
-    Cc: Thomas Gleixner <tglx at linutronix.de>
-
-diff --git a/Makefile b/Makefile
-index aa4835d..eeffdfe 100644
---- a/Makefile
-+++ b/Makefile
-@@ -35,7 +35,7 @@ lttng-tracer-objs :=  lttng-events.o lttng-abi.o \
- 			lttng-context-vtid.o lttng-context-ppid.o \
- 			lttng-context-vppid.o lttng-calibrate.o \
- 			lttng-context-hostname.o wrapper/random.o \
--			probes/lttng.o
-+			probes/lttng.o wrapper/trace-clock.o
- 
- obj-m += lttng-statedump.o
- lttng-statedump-objs := lttng-statedump-impl.o wrapper/irqdesc.o \
-diff --git a/wrapper/trace-clock.c b/wrapper/trace-clock.c
-new file mode 100644
-index 0000000..1b7a217
---- /dev/null
-+++ b/wrapper/trace-clock.c
-@@ -0,0 +1,29 @@
-+/*
-+ * wrapper/trace-clock.c
-+ *
-+ * Contains LTTng trace clock mapping to LTTng trace clock or mainline monotonic
-+ * clock. This wrapper depends on CONFIG_HIGH_RES_TIMERS=y.
-+ *
-+ * Copyright (C) 2011-2012 Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; only
-+ * version 2.1 of the License.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+ */
-+
-+#include "trace-clock.h"
-+
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0))
-+DEFINE_PER_CPU(local_t, lttng_last_tsc);
-+EXPORT_PER_CPU_SYMBOL(lttng_last_tsc);
-+#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,16,0)) */
-diff --git a/wrapper/trace-clock.h b/wrapper/trace-clock.h
-index 9c0c806..b145b82 100644
---- a/wrapper/trace-clock.h
-+++ b/wrapper/trace-clock.h
-@@ -32,7 +32,9 @@
- #include <linux/ktime.h>
- #include <linux/time.h>
- #include <linux/hrtimer.h>
-+#include <linux/percpu.h>
- #include <linux/version.h>
-+#include <asm/local.h>
- #include "../lttng-kernel-version.h"
- #include "random.h"
- 
-@@ -40,6 +42,88 @@
- #error "Linux kernels 3.10 and 3.11 introduce a deadlock in the timekeeping subsystem. Fixed by commit 7bd36014460f793c19e7d6c94dab67b0afcfcb7f \"timekeeping: Fix HRTICK related deadlock from ntp lock changes\" in Linux."
- #endif
- 
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0))
-+
-+DECLARE_PER_CPU(local_t, lttng_last_tsc);
-+
-+#if (BITS_PER_LONG == 32)
-+/*
-+ * Fixup "src_now" using the 32 LSB from "last". We need to handle overflow and
-+ * underflow of the 32nd bit. "last" can be above, below or equal to the 32 LSB
-+ * of "src_now".
-+ */
-+static inline u64 trace_clock_fixup(u64 src_now, u32 last)
-+{
-+	u64 now;
-+
-+	now = src_now & 0xFFFFFFFF00000000ULL;
-+	now |= (u64) last;
-+	/* Detect overflow or underflow between now and last. */
-+	if ((src_now & 0x80000000U) && !(last & 0x80000000U)) {
-+		/*
-+		 * If 32nd bit transitions from 1 to 0, and we move forward in
-+		 * time from "now" to "last", then we have an overflow.
-+		 */
-+		if (((s32) now - (s32) last) < 0)
-+			now += 0x0000000100000000ULL;
-+	} else if (!(src_now & 0x80000000U) && (last & 0x80000000U)) {
-+		/*
-+		 * If 32nd bit transitions from 0 to 1, and we move backward in
-+		 * time from "now" to "last", then we have an underflow.
-+		 */
-+		if (((s32) now - (s32) last) > 0)
-+			now -= 0x0000000100000000ULL;
-+	}
-+	return now;
-+}
-+#else /* #if (BITS_PER_LONG == 32) */
-+/*
-+ * The fixup is pretty easy on 64-bit architectures: "last" is a 64-bit
-+ * value, so we can use last directly as current time.
-+ */
-+static inline u64 trace_clock_fixup(u64 src_now, u64 last)
-+{
-+	return last;
-+}
-+#endif /* #else #if (BITS_PER_LONG == 32) */
-+
-+/*
-+ * Always called with preemption disabled. Can be interrupted.
-+ */
-+static inline u64 trace_clock_monotonic_wrapper(void)
-+{
-+	u64 now;
-+	unsigned long last, result;
-+	local_t *last_tsc;
-+
-+	/* Use fast nmi-safe monotonic clock provided by the Linux kernel. */
-+	last_tsc = &__get_cpu_var(lttng_last_tsc);
-+	last = local_read(last_tsc);
-+	/*
-+	 * Read "last" before "now". It is not strictly required, but it ensures
-+	 * that an interrupt coming in won't artificially trigger a case where
-+	 * "now" < "last". This kind of situation should only happen if the
-+	 * mono_fast time source goes slightly backwards.
-+	 */
-+	barrier();
-+	now = ktime_get_mono_fast_ns();
-+	if (((long) now - (long) last) < 0)
-+		now = trace_clock_fixup(now, last);
-+	result = local_cmpxchg(last_tsc, last, (unsigned long) now);
-+	if (result == last) {
-+		/* Update done. */
-+		return now;
-+	} else {
-+		/*
-+		 * Update not done, due to concurrent update. We can use
-+		 * "result", since it has been sampled concurrently with our
-+		 * time read, so it should not be far from "now".
-+		 */
-+		return trace_clock_fixup(now, result);
-+	}
-+}
-+
-+#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)) */
- static inline u64 trace_clock_monotonic_wrapper(void)
- {
- 	ktime_t ktime;
-@@ -54,6 +138,7 @@ static inline u64 trace_clock_monotonic_wrapper(void)
- 	ktime = ktime_get();
- 	return ktime_to_ns(ktime);
- }
-+#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)) */
- 
- static inline u32 trace_clock_read32(void)
- {
-@@ -75,23 +160,19 @@ static inline int trace_clock_uuid(char *uuid)
- 	return wrapper_get_bootid(uuid);
- }
- 
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0))
- static inline int get_trace_clock(void)
- {
--	/*
--	 * LTTng: Using mainline kernel monotonic clock. NMIs will not be
--	 * traced, and expect significant performance degradation compared to
--	 * the LTTng trace clocks. Integration of the LTTng 0.x trace clocks
--	 * into LTTng 2.0 is planned in a near future.
--	 */
--	printk(KERN_WARNING "LTTng: Using mainline kernel monotonic clock.\n");
--	printk(KERN_WARNING "  * NMIs will not be traced,\n");
--	printk(KERN_WARNING "  * expect significant performance degradation compared to the\n");
--	printk(KERN_WARNING "    LTTng trace clocks.\n");
--	printk(KERN_WARNING "Integration of the LTTng 0.x trace clocks into LTTng 2.0 is planned\n");
--	printk(KERN_WARNING "in a near future.\n");
--
-+	printk(KERN_WARNING "LTTng: Using mainline kernel monotonic fast clock, which is NMI-safe.\n");
-+	return 0;
-+}
-+#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)) */
-+static inline int get_trace_clock(void)
-+{
-+	printk(KERN_WARNING "LTTng: Using mainline kernel monotonic clock. NMIs will not be traced.\n");
- 	return 0;
- }
-+#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,17,0)) */
- 
- static inline void put_trace_clock(void)
- {
diff --git a/linux-3.18.patch b/linux-3.18.patch
deleted file mode 100644
index f187fbe..0000000
--- a/linux-3.18.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-Since kernel commit 8a9522d2fe compilation fails as kvm_age_page
-tracepoint had its signature changed, so update it accordingly.
-
-Tested pointing to kernels:
-    git reset --hard v3.17; make init/version.o
-    git reset --hard v3.18-rc1; make init/version.o
-
-Signed-off-by: Andr? Goddard Rosa <andre.goddard at gmail.com>
----
- instrumentation/events/lttng-module/kvm.h | 29 +++++++++++++++++++++++++++++
- 1 file changed, 29 insertions(+)
- mode change 100644 => 100755 instrumentation/events/lttng-module/kvm.h
-
-diff --git a/instrumentation/events/lttng-module/kvm.h b/instrumentation/events/lttng-module/kvm.h
-old mode 100644
-new mode 100755
-index c0d42e2..4f95095
---- a/instrumentation/events/lttng-module/kvm.h
-+++ b/instrumentation/events/lttng-module/kvm.h
-@@ -232,6 +232,34 @@ LTTNG_TRACEPOINT_EVENT(kvm_fpu,
- 	TP_printk("%s", __print_symbolic(__entry->load, kvm_fpu_load_symbol))
- )
- 
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,18,0))
-+
-+TRACE_EVENT(kvm_age_page,
-+	TP_PROTO(ulong gfn, int level, struct kvm_memory_slot *slot, int ref),
-+	TP_ARGS(gfn, level, slot, ref),
-+
-+	TP_STRUCT__entry(
-+		__field(        u64,    hva             )
-+		__field(        u64,    gfn             )
-+		__field(        u8,     level           )
-+		__field(        u8,     referenced      )
-+	),
-+
-+	TP_fast_assign(
-+		tp_assign(gfn, gfn)
-+		tp_assign(level, level)
-+		tp_assign(hva, ((gfn - slot->base_gfn) <<
-+			PAGE_SHIFT) + slot->userspace_addr)
-+		tp_assign(referenced, ref)
-+	),
-+
-+	TP_printk("hva %llx gfn %llx level %u %s",
-+		__entry->hva, __entry->gfn, __entry->level,
-+		__entry->referenced ? "YOUNG" : "OLD")
-+)
-+
-+#else
-+
- TRACE_EVENT(kvm_age_page,
- 	TP_PROTO(ulong hva, struct kvm_memory_slot *slot, int ref),
- 	TP_ARGS(hva, slot, ref),
-@@ -254,6 +282,7 @@ LTTNG_TRACEPOINT_EVENT(kvm_age_page,
- 		  __entry->referenced ? "YOUNG" : "OLD")
- )
- #endif
-+#endif
- 
- #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
- 
--- 
-2.1.3
-
-
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/lttng-modules.git/commitdiff/59b72c38790e49cbabbb8abd1718a59836ce1249



More information about the pld-cvs-commit mailing list