Merge branch 'tracing/core-v2' into tracing-for-linus
Ingo Molnar [Wed, 1 Apr 2009 19:54:19 +0000 (21:54 +0200)]
Conflicts:
include/linux/slub_def.h
lib/Kconfig.debug
mm/slob.c
mm/slub.c

33 files changed:
1  2 
Documentation/kernel-parameters.txt
Documentation/sysrq.txt
MAINTAINERS
arch/Kconfig
arch/ia64/kernel/Makefile
arch/x86/Kconfig
arch/x86/include/asm/cacheflush.h
arch/x86/kernel/Makefile
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c
arch/x86/kernel/kprobes.c
arch/x86/kernel/process.c
arch/x86/kernel/ptrace.c
arch/x86/kvm/Kconfig
drivers/char/sysrq.c
fs/partitions/check.c
include/asm-generic/vmlinux.lds.h
include/linux/interrupt.h
include/linux/kernel.h
include/linux/sched.h
include/linux/slub_def.h
include/linux/string.h
init/Kconfig
init/main.c
kernel/irq/handle.c
kernel/lockdep.c
kernel/module.c
kernel/relay.c
kernel/sched.c
kernel/sched_clock.c
kernel/workqueue.c
lib/Kconfig
mm/slob.c
mm/slub.c

Simple merge
Simple merge
diff --cc MAINTAINERS
Simple merge
diff --cc arch/Kconfig
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
  #include <linux/cpufreq.h>
  #include <linux/compiler.h>
  #include <linux/dmi.h>
- #include <linux/ftrace.h>
+ #include <trace/power.h>
  
  #include <linux/acpi.h>
 +#include <linux/io.h>
 +#include <linux/delay.h>
 +#include <linux/uaccess.h>
 +
  #include <acpi/processor.h>
  
 -#include <asm/io.h>
  #include <asm/msr.h>
  #include <asm/processor.h>
  #include <asm/cpufeature.h>
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
        VMLINUX_SYMBOL(__start___tracepoints) = .;                      \
        *(__tracepoints)                                                \
        VMLINUX_SYMBOL(__stop___tracepoints) = .;                       \
 +      /* implement dynamic printk debug */                            \
 +      . = ALIGN(8);                                                   \
 +      VMLINUX_SYMBOL(__start___verbose) = .;                          \
 +      *(__verbose)                                                    \
 +      VMLINUX_SYMBOL(__stop___verbose) = .;                           \
        LIKELY_PROFILE()                                                \
-       BRANCH_PROFILE()
+       BRANCH_PROFILE()                                                \
+       TRACE_PRINTKS()                                                 \
+       FTRACE_EVENTS()                                                 \
+       TRACE_SYSCALLS()
  
  #define RO_DATA(align)                                                        \
        . = ALIGN((align));                                             \
Simple merge
Simple merge
Simple merge
Simple merge
  #include <linux/compiler.h>   /* for inline */
  #include <linux/types.h>      /* for size_t */
  #include <linux/stddef.h>     /* for NULL */
+ #include <stdarg.h>
  
  extern char *strndup_user(const char __user *, long);
 +extern void *memdup_user(const void __user *, size_t);
  
  /*
   * Include machine specific inline routines
diff --cc init/Kconfig
Simple merge
diff --cc init/main.c
Simple merge
Simple merge
Simple merge
diff --cc kernel/module.c
Simple merge
diff --cc kernel/relay.c
Simple merge
diff --cc kernel/sched.c
Simple merge
Simple merge
Simple merge
diff --cc lib/Kconfig
Simple merge
diff --cc mm/slob.c
+++ b/mm/slob.c
@@@ -474,8 -464,9 +475,9 @@@ void *__kmalloc_node(size_t size, gfp_
  {
        unsigned int *m;
        int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
+       void *ret;
  
 -      lockdep_trace_alloc(flags);
 +      lockdep_trace_alloc(gfp);
  
        if (size < PAGE_SIZE - align) {
                if (!size)
                if (!m)
                        return NULL;
                *m = size;
-               return (void *)m + align;
+               ret = (void *)m + align;
+               kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_KMALLOC,
+                                         _RET_IP_, ret,
+                                         size, size + align, gfp, node);
        } else {
-               void *ret;
+               unsigned int order = get_order(size);
  
 -              ret = slob_new_page(gfp | __GFP_COMP, order, node);
 +              ret = slob_new_pages(gfp | __GFP_COMP, get_order(size), node);
                if (ret) {
                        struct page *page;
                        page = virt_to_page(ret);
@@@ -583,10 -586,19 +597,19 @@@ void *kmem_cache_alloc_node(struct kmem
  {
        void *b;
  
-       if (c->size < PAGE_SIZE)
+       if (c->size < PAGE_SIZE) {
                b = slob_alloc(c->size, flags, c->align, node);
-       else
+               kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_CACHE,
+                                         _RET_IP_, b, c->size,
+                                         SLOB_UNITS(c->size) * SLOB_UNIT,
+                                         flags, node);
+       } else {
 -              b = slob_new_page(flags, get_order(c->size), node);
 +              b = slob_new_pages(flags, get_order(c->size), node);
+               kmemtrace_mark_alloc_node(KMEMTRACE_TYPE_CACHE,
+                                         _RET_IP_, b, c->size,
+                                         PAGE_SIZE << get_order(c->size),
+                                         flags, node);
+       }
  
        if (c->ctor)
                c->ctor(b);
diff --cc mm/slub.c
Simple merge