Patches contributed by Eötvös Lorand University
commit 867f7fb3ebb831970847b179e7df5a9ab10da16d
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Nov 11 11:18:14 2008 +0100
tracing, x86: function return tracer, fix assembly constraints
fix:
arch/x86/kernel/ftrace.c: Assembler messages:
arch/x86/kernel/ftrace.c:140: Error: missing ')'
arch/x86/kernel/ftrace.c:140: Error: junk `(%ebp))' after expression
arch/x86/kernel/ftrace.c:141: Error: missing ')'
arch/x86/kernel/ftrace.c:141: Error: junk `(%ebp))' after expression
the [parent_replaced] is used in an =rm fashion, so that constraint
is correct in isolation - but [parent_old] aliases register %0 and uses
it in an addressing mode that is only valid with registers - so change
the constraint from =rm to =r.
This fixes the build failure.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index d68033bba223..9b2325a4d53c 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -151,7 +151,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
" .long 2b, 3b\n"
".previous\n"
- : [parent_replaced] "=rm" (parent), [old] "=r" (old),
+ : [parent_replaced] "=r" (parent), [old] "=r" (old),
[faulted] "=r" (faulted)
: [parent_old] "0" (parent), [return_hooker] "r" (return_hooker)
: "memory"
commit f1c4be5edad3756212cbbbeab39428fe90c27109
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Nov 11 10:22:36 2008 +0100
tracing, x86: clean up FUNCTION_RET_TRACER Kconfig
Impact: cleanup
move FUNCTION_RET_TRACER to the X86 select section, where we have all the
other options.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index ca91e50bdb10..0de793cf2144 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -11,7 +11,6 @@ config 64BIT
config X86_32
def_bool !64BIT
- select HAVE_FUNCTION_RET_TRACER
config X86_64
def_bool 64BIT
@@ -30,6 +29,7 @@ config X86
select HAVE_FTRACE_MCOUNT_RECORD
select HAVE_DYNAMIC_FTRACE
select HAVE_FUNCTION_TRACER
+ select HAVE_FUNCTION_RET_TRACER if X86_32
select HAVE_FUNCTION_TRACE_MCOUNT_TEST
select HAVE_KVM if ((X86_32 && !X86_VOYAGER && !X86_VISWS && !X86_NUMAQ) || X86_64)
select HAVE_ARCH_KGDB if !X86_VOYAGER
commit d844222a54c33a960755b44b934cd1b01b05dceb
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Nov 11 09:58:36 2008 +0100
Merge branches 'tracing/ftrace' and 'tracing/urgent' into tracing/core
commit e0cb4ebcd9e5b4ddd8216c20f54445c91b1fa4b9
Merge: a309720c876d 45b86a96f17c
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Nov 11 09:40:18 2008 +0100
Merge branch 'tracing/urgent' into tracing/ftrace
Conflicts:
kernel/trace/trace.c
diff --cc kernel/trace/trace.c
index f147f198b9a6,697eda36b86a..0c22fe2d43a7
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@@ -2835,7 -2676,8 +2835,7 @@@ tracing_entries_write(struct file *filp
{
unsigned long val;
char buf[64];
- int ret;
+ int ret, cpu;
- struct trace_array *tr = filp->private_data;
if (cnt >= sizeof(buf))
return -EINVAL;
@@@ -2855,8 -2697,21 +2855,16 @@@
mutex_lock(&trace_types_lock);
- if (tr->ctrl) {
- cnt = -EBUSY;
- pr_info("ftrace: please disable tracing"
- " before modifying buffer size\n");
- goto out;
- }
+ tracing_stop();
+ /* disable all cpu buffers */
+ for_each_tracing_cpu(cpu) {
+ if (global_trace.data[cpu])
+ atomic_inc(&global_trace.data[cpu]->disabled);
+ if (max_tr.data[cpu])
+ atomic_inc(&max_tr.data[cpu]->disabled);
+ }
+
if (val != global_trace.entries) {
ret = ring_buffer_resize(global_trace.buffer, val);
if (ret < 0) {
@@@ -2888,7 -2743,13 +2896,14 @@@
if (tracing_disabled)
cnt = -ENOMEM;
out:
+ for_each_tracing_cpu(cpu) {
+ if (global_trace.data[cpu])
+ atomic_dec(&global_trace.data[cpu]->disabled);
+ if (max_tr.data[cpu])
+ atomic_dec(&max_tr.data[cpu]->disabled);
+ }
+
+ tracing_start();
max_tr.entries = global_trace.entries;
mutex_unlock(&trace_types_lock);
commit 45b86a96f17cb2900f291129b0e67287400e45b2
Merge: 072ba49838b4 4143c5cb3633
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Nov 11 09:16:20 2008 +0100
Merge branch 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent
commit ae1e9130bfb9ad55eb97ec3fb17a122b7a118f98
Author: Ingo Molnar <mingo@elte.hu>
Date: Tue Nov 11 09:05:16 2008 +0100
sched: rename SCHED_NO_NO_OMIT_FRAME_POINTER => SCHED_OMIT_FRAME_POINTER
Impact: cleanup, change .config option name
We had this ugly config name for a long time for hysteric raisons.
Rename it to a saner name.
We still cannot get rid of it completely, until /proc/<pid>/stack
usage replaces WCHAN usage for good.
We'll be able to do that in the v2.6.29/v2.6.30 timeframe.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 27eec71429b0..59d12788b60c 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -99,7 +99,7 @@ config GENERIC_IOMAP
bool
default y
-config SCHED_NO_NO_OMIT_FRAME_POINTER
+config SCHED_OMIT_FRAME_POINTER
bool
default y
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index dbaed4a63815..29047d5c259a 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -273,7 +273,7 @@ config GENERIC_CALIBRATE_DELAY
bool
default y
-config SCHED_NO_NO_OMIT_FRAME_POINTER
+config SCHED_OMIT_FRAME_POINTER
bool
default y
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index f4af967a6b30..a5255e7c79e0 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -653,7 +653,7 @@ config GENERIC_CMOS_UPDATE
bool
default y
-config SCHED_NO_NO_OMIT_FRAME_POINTER
+config SCHED_OMIT_FRAME_POINTER
bool
default y
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 525c13a4de93..adb23ea1c1ef 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -141,7 +141,7 @@ config GENERIC_NVRAM
bool
default y if PPC32
-config SCHED_NO_NO_OMIT_FRAME_POINTER
+config SCHED_OMIT_FRAME_POINTER
bool
default y
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 1d5550d19b66..74db682ec1ce 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -364,7 +364,7 @@ config X86_RDC321X
as R-8610-(G).
If you don't have one of these chips, you should say N here.
-config SCHED_NO_NO_OMIT_FRAME_POINTER
+config SCHED_OMIT_FRAME_POINTER
def_bool y
prompt "Single-depth WCHAN output"
depends on X86
diff --git a/include/asm-m32r/system.h b/include/asm-m32r/system.h
index 70a57c8c002b..c980f5ba8de7 100644
--- a/include/asm-m32r/system.h
+++ b/include/asm-m32r/system.h
@@ -23,7 +23,7 @@
*/
#if defined(CONFIG_FRAME_POINTER) || \
- !defined(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER)
+ !defined(CONFIG_SCHED_OMIT_FRAME_POINTER)
#define M32R_PUSH_FP " push fp\n"
#define M32R_POP_FP " pop fp\n"
#else
diff --git a/kernel/Makefile b/kernel/Makefile
index e1af03972148..46e67a398495 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -91,7 +91,7 @@ obj-$(CONFIG_FUNCTION_TRACER) += trace/
obj-$(CONFIG_TRACING) += trace/
obj-$(CONFIG_SMP) += sched_cpupri.o
-ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y)
+ifneq ($(CONFIG_SCHED_OMIT_FRAME_POINTER),y)
# According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
# needed for x86 only. Why this used to be enabled for all architectures is beyond
# me. I suspect most platforms don't need this, but until we know that for sure
commit 4ecd33d930591d41fe356160593a9076467b961c
Merge: 7d5a78cd98c3 f7160c757361
Author: Ingo Molnar <mingo@elte.hu>
Date: Mon Nov 10 09:16:27 2008 +0100
Merge commit 'v2.6.28-rc4' into x86/apic
commit a5a64498c194c82ecad3a2d67cff6231cda8d3dd
Merge: bb93d802ae5c f7160c757361
Author: Ingo Molnar <mingo@elte.hu>
Date: Mon Nov 10 09:10:44 2008 +0100
Merge commit 'v2.6.28-rc4' into timers/rtc
Conflicts:
drivers/rtc/rtc-cmos.c
commit 87135d92b4ae73208c53242f3cfec5b20b772cb3
Merge: 4fcc50abdffb f7160c757361
Author: Ingo Molnar <mingo@elte.hu>
Date: Mon Nov 10 08:41:38 2008 +0100
Merge commit 'v2.6.28-rc4' into x86/cleanups
commit f131e2436ddbac2527bb2d6297a823aae4b024f8
Author: Ingo Molnar <mingo@elte.hu>
Date: Sat Nov 8 09:57:40 2008 +0100
irq: fix typo
Impact: build fix
fix build failure on UP.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 948a22a2c013..435861284e4c 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -159,7 +159,7 @@ int irq_select_affinity_usr(unsigned int irq)
}
#else
-static inline int do_select_irq_affinity(int irq, struct irq_desc *desc)
+static inline int do_irq_select_affinity(int irq, struct irq_desc *desc)
{
return 0;
}