[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