]> err.no Git - linux-2.6/commitdiff
Merge branch 'auto-ftrace-next' into tracing/for-linus
authorIngo Molnar <mingo@elte.hu>
Mon, 14 Jul 2008 14:11:52 +0000 (16:11 +0200)
committerIngo Molnar <mingo@elte.hu>
Mon, 14 Jul 2008 14:11:52 +0000 (16:11 +0200)
Conflicts:

arch/x86/kernel/entry_32.S
arch/x86/kernel/process_32.c
arch/x86/kernel/process_64.c
arch/x86/lib/Makefile
include/asm-x86/irqflags.h
kernel/Makefile
kernel/sched.c

Signed-off-by: Ingo Molnar <mingo@elte.hu>
26 files changed:
1  2 
Makefile
arch/x86/Kconfig
arch/x86/Kconfig.debug
arch/x86/kernel/Makefile
arch/x86/kernel/entry_32.S
arch/x86/kernel/entry_64.S
arch/x86/kernel/machine_kexec_32.c
arch/x86/kernel/machine_kexec_64.c
arch/x86/kernel/process_32.c
arch/x86/kernel/process_64.c
arch/x86/kernel/vsyscall_64.c
arch/x86/kernel/x8664_ksyms_64.c
arch/x86/lib/Makefile
arch/x86/mm/Makefile
arch/x86/mm/fault.c
arch/x86/mm/init_32.c
arch/x86/mm/init_64.c
arch/x86/mm/ioremap.c
arch/x86/mm/pageattr.c
include/asm-x86/irqflags.h
include/linux/linkage.h
include/linux/sched.h
kernel/Makefile
kernel/printk.c
kernel/sched.c
kernel/sysctl.c

diff --cc Makefile
Simple merge
Simple merge
Simple merge
index 55ff016e9f694f61d5dc143675797860a4f4de3d,5ff67208d4ae51c5c57ef531f0d7bc8b76b3025d..5112c84f542164e37a74ed9785451d127cd8da95
@@@ -54,9 -60,10 +61,10 @@@ obj-$(CONFIG_X86_32_SMP)    += smpcommon.
  obj-$(CONFIG_X86_64_SMP)      += tsc_sync.o smpcommon.o
  obj-$(CONFIG_X86_TRAMPOLINE)  += trampoline_$(BITS).o
  obj-$(CONFIG_X86_MPPARSE)     += mpparse.o
 -obj-$(CONFIG_X86_LOCAL_APIC)  += apic_$(BITS).o nmi_$(BITS).o
 +obj-$(CONFIG_X86_LOCAL_APIC)  += apic_$(BITS).o nmi.o
  obj-$(CONFIG_X86_IO_APIC)     += io_apic_$(BITS).o
  obj-$(CONFIG_X86_REBOOTFIXUPS)        += reboot_fixups_32.o
+ obj-$(CONFIG_DYNAMIC_FTRACE)  += ftrace.o
  obj-$(CONFIG_KEXEC)           += machine_kexec_$(BITS).o
  obj-$(CONFIG_KEXEC)           += relocate_kernel_$(BITS).o crash.o
  obj-$(CONFIG_CRASH_DUMP)      += crash_dump_$(BITS).o
index cfe28a715434762352df73207da0fe422c76e713,95e6bbe3665e1c240daa0400618a7d00c63af5a3..6bc07f0f1202eeb1eaac0b55064acad7f355371a
@@@ -51,7 -51,8 +51,8 @@@
  #include <asm/percpu.h>
  #include <asm/dwarf2.h>
  #include <asm/processor-flags.h>
 -#include "irq_vectors.h"
+ #include <asm/ftrace.h>
 +#include <asm/irq_vectors.h>
  
  /*
   * We use macros for low-level operations which need to be overridden
Simple merge
Simple merge
Simple merge
index 9a139f6c9df30fa2c304e96da89b99fd62b78a8d,347a7aba8b1637612e098edd0921825df8a66b51..0c3927accb0054b71c7de9eb828a93559232737e
@@@ -142,7 -185,10 +142,10 @@@ void cpu_idle(void
  
                        local_irq_disable();
                        __get_cpu_var(irq_stat).idle_timestamp = jiffies;
 -                      idle();
+                       /* Don't trace irqs off for idle */
+                       stop_critical_timings();
 +                      pm_idle();
+                       start_critical_timings();
                }
                tick_nohz_restart_sched_tick();
                preempt_enable_no_resched();
index db5eb963e4df2e7d573012f96bc3696eff6b52ca,ea090e6cfe396fc4afc0d8b5c76ba6e4734f9a6f..a8e53626ac9aaf5fc8290908aaf42552556a1b11
@@@ -134,7 -165,10 +134,10 @@@ void cpu_idle(void
                         */
                        local_irq_disable();
                        enter_idle();
 -                      idle();
+                       /* Don't trace irqs off for idle */
+                       stop_critical_timings();
 +                      pm_idle();
+                       start_critical_timings();
                        /* In many cases the interrupt that ended idle
                           has already called exit_idle. But some idle
                           loops can be woken up without interrupt. */
Simple merge
Simple merge
index 83226e0a7ce4e331aa1aac3277b1d6301bf025f8,84aa2883fe153fba9094169cef5f447bb79f2bd0..aa3fa4119424205ba297e1af4ce4100ba5514baf
@@@ -4,8 -4,9 +4,9 @@@
  
  obj-$(CONFIG_SMP) := msr-on-cpu.o
  
 -lib-y := delay_$(BITS).o
 +lib-y := delay.o
+ lib-y += thunk_$(BITS).o
 -lib-y += usercopy_$(BITS).o getuser_$(BITS).o putuser_$(BITS).o
 +lib-y += usercopy_$(BITS).o getuser.o putuser.o
  lib-y += memcpy_$(BITS).o
  
  ifeq ($(CONFIG_X86_32),y)
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 17e7a1701c97be5c6a734e25e2add35347bb96b5,24d71b1eb18905e5d746b6e751a19b03cde44aa5..424acb48cd61baf681f7d71fb6b4ad56e1cfc3ee
@@@ -190,8 -169,16 +190,6 @@@ static inline void trace_hardirqs_fixup
  #else
  
  #ifdef CONFIG_X86_64
- #define ARCH_TRACE_IRQS_ON            call trace_hardirqs_on_thunk
- #define ARCH_TRACE_IRQS_OFF           call trace_hardirqs_off_thunk
 -/*
 - * Currently paravirt can't handle swapgs nicely when we
 - * don't have a stack we can rely on (such as a user space
 - * stack).  So we either find a way around these or just fault
 - * and emulate if a guest tries to call swapgs directly.
 - *
 - * Either way, this is a good way to document that we don't
 - * have a reliable stack. x86_64 only.
 - */
 -#define SWAPGS_UNSAFE_STACK   swapgs
  #define ARCH_LOCKDEP_SYS_EXIT         call lockdep_sys_exit_thunk
  #define ARCH_LOCKDEP_SYS_EXIT_IRQ     \
        TRACE_IRQS_ON; \
index 9fd1f859021b5018baffdb440261379dab4a55b3,14f329c64ba8ee54cf2c4166d09272167c836bd7..56ba37394656c7f211eaebdadf5481eda844acca
@@@ -1,9 -1,10 +1,11 @@@
  #ifndef _LINUX_LINKAGE_H
  #define _LINUX_LINKAGE_H
  
 +#include <linux/compiler.h>
  #include <asm/linkage.h>
  
+ #define notrace __attribute__((no_instrument_function))
  #ifdef __cplusplus
  #define CPP_ASMLINKAGE extern "C"
  #else
Simple merge
diff --cc kernel/Makefile
index 6c55301112e064cf7b95795c899897739a6cfe14,480976275d98d40bff28d04d675fb663f358b253..f6328e16dfdde5749b05279e503f2172a2831544
@@@ -69,7 -81,8 +81,9 @@@ obj-$(CONFIG_TASK_DELAY_ACCT) += delaya
  obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o
  obj-$(CONFIG_MARKERS) += marker.o
  obj-$(CONFIG_LATENCYTOP) += latencytop.o
+ obj-$(CONFIG_FTRACE) += trace/
+ obj-$(CONFIG_TRACING) += trace/
 +obj-$(CONFIG_SMP) += sched_cpupri.o
  
  ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y)
  # According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
diff --cc kernel/printk.c
Simple merge
diff --cc kernel/sched.c
index 591d5e7f757ad7438e9696bd3735f4b098dfda92,42899dce837d6f27a5f90db3d2037c2ff0a05489..c74b0d23c7525c1db91d73c5ebab56931bccae4a
@@@ -2448,8 -2299,11 +2470,11 @@@ void wake_up_new_task(struct task_struc
                 * management (if any):
                 */
                p->sched_class->task_new(rq, p);
 -              inc_nr_running(p, rq);
 +              inc_nr_running(rq);
        }
+       trace_mark(kernel_sched_wakeup_new,
+               "pid %d state %ld ## rq %p task %p rq->curr %p",
+               p->pid, p->state, rq, p, rq->curr);
        check_preempt_curr(rq, p);
  #ifdef CONFIG_SMP
        if (p->sched_class->task_wake_up)
diff --cc kernel/sysctl.c
Simple merge