From: Ingo Molnar Date: Wed, 1 Apr 2009 19:54:19 +0000 (+0200) Subject: Merge branch 'tracing/core-v2' into tracing-for-linus X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=8302294f43250dc337108c51882a6007f2b1e2e0;p=linux-2.6-omap-h63xx.git Merge branch 'tracing/core-v2' into tracing-for-linus Conflicts: include/linux/slub_def.h lib/Kconfig.debug mm/slob.c mm/slub.c --- 8302294f43250dc337108c51882a6007f2b1e2e0 diff --cc arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c index 23da96e57b1,5e40f54171e..05209b5cc6c --- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c +++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c @@@ -33,15 -33,12 +33,15 @@@ #include #include #include - #include + #include #include +#include +#include +#include + #include -#include #include #include #include diff --cc include/asm-generic/vmlinux.lds.h index a654d724d3b,d3bc3c86df6..7fa660fd449 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@@ -80,13 -104,11 +104,16 @@@ 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)); \ diff --cc include/linux/string.h index 8852739f36d,27ac31784ad..3c877d68637 --- a/include/linux/string.h +++ b/include/linux/string.h @@@ -10,9 -10,9 +10,10 @@@ #include /* for inline */ #include /* for size_t */ #include /* for NULL */ + #include extern char *strndup_user(const char __user *, long); +extern void *memdup_user(const void __user *, size_t); /* * Include machine specific inline routines diff --cc mm/slob.c index 7a3411524da,596152926a8..4dd6516447f --- a/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) @@@ -485,11 -477,15 +488,15 @@@ 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);