projects/linux·commit 4aed2fd8

Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

4aed2fd8 · Linus Torvalds <[email protected]> · 2010-08-06 09:30:52 -07:00

* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (162 commits)
  tracing/kprobes: unregister_trace_probe needs to be called under mutex
  perf: expose event__process function
  perf events: Fix mmap offset determination
  perf, powerpc: fsl_emb: Restore setting perf_sample_data.period
  perf, powerpc: Convert the FSL driver to use local64_t
  perf tools: Don't keep unreferenced maps when unmaps are detected
  perf session: Invalidate last_match when removing threads from rb_tree
  perf session: Free the ref_reloc_sym memory at the right place
  x86,mmiotrace: Add support for tracing STOS instruction
  perf, sched migration: Librarize task states and event headers helpers
  perf, sched migration: Librarize the GUI class
  perf, sched migration: Make the GUI class client agnostic
  perf, sched migration: Make it vertically scrollable
  perf, sched migration: Parameterize cpu height and spacing
  perf, sched migration: Fix key bindings
  perf, sched migration: Ignore unhandled task states
  perf, sched migration: Handle ignored migrate out events
  perf: New migration tool overview
  tracing: Drop cpparg() macro
  perf: Use tracepoint_synchronize_unregister() to flush any pending tracepoint call
  ...

Fix up trivial conflicts in Makefile and drivers/cpufreq/cpufreq.c
Commit
4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9
Parents
3a3527b6 · fc9ea5a1

Merge commit. Changes below are compared with the first parent: 3a3527b6.

Changes

179 files changed · +5611 −4809

FileStatusAddDelContent
Documentation/ABI/testing/debugfs-kmemtracedeleted+0−71View before deletion
Documentation/kernel-parameters.txtmodified+2−0View file
Documentation/trace/ftrace-design.txtmodified+148−5View file
Documentation/trace/kmemtrace.txtdeleted+0−126View before deletion
Documentation/trace/kprobetrace.txtmodified+1−1View file
MAINTAINERSmodified+1−8View file
Makefilemodified+3−1View file
arch/Kconfigmodified+7−0View file
arch/alpha/include/asm/local64.hadded+1−0View file
arch/arm/include/asm/local64.hadded+1−0View file
arch/arm/kernel/perf_event.cmodified+9−9View file
arch/avr32/include/asm/local64.hadded+1−0View file
arch/blackfin/include/asm/local64.hadded+1−0View file
arch/cris/include/asm/local64.hadded+1−0View file
arch/frv/include/asm/local64.hadded+1−0View file
arch/frv/kernel/local64.hadded+1−0View file
arch/h8300/include/asm/local64.hadded+1−0View file
arch/ia64/include/asm/local64.hadded+1−0View file
arch/m32r/include/asm/local64.hadded+1−0View file
arch/m68k/include/asm/local64.hadded+1−0View file
arch/microblaze/include/asm/local64.hadded+1−0View file
arch/mips/include/asm/local64.hadded+1−0View file
arch/mn10300/include/asm/local64.hadded+1−0View file
arch/parisc/include/asm/local64.hadded+1−0View file
arch/powerpc/include/asm/local64.hadded+1−0View file
arch/powerpc/include/asm/perf_event.hmodified+12−0View file
arch/powerpc/kernel/misc.Smodified+0−26View file
arch/powerpc/kernel/perf_event.cmodified+21−20View file
arch/powerpc/kernel/perf_event_fsl_emb.cmodified+15−14View file
arch/s390/include/asm/local64.hadded+1−0View file
arch/score/include/asm/local64.hadded+1−0View file
arch/sh/include/asm/local64.hadded+1−0View file
arch/sh/kernel/perf_event.cmodified+3−3View file
arch/sparc/include/asm/local64.hadded+1−0View file
arch/sparc/include/asm/perf_event.hmodified+8−0View file
arch/sparc/kernel/helpers.Smodified+3−3View file
arch/sparc/kernel/perf_event.cmodified+13−12View file
arch/x86/Kconfigmodified+1−0View file
arch/x86/include/asm/hw_breakpoint.hmodified+1−1View file
arch/x86/include/asm/local64.hadded+1−0View file
arch/x86/include/asm/nmi.hmodified+2−0View file
arch/x86/include/asm/perf_event.hmodified+16−2View file
arch/x86/include/asm/perf_event_p4.hmodified+52−47View file
arch/x86/include/asm/stacktrace.hmodified+49−0View file
arch/x86/kernel/apic/Makefilemodified+6−1View file
arch/x86/kernel/apic/hw_nmi.cadded+107−0View file
arch/x86/kernel/apic/nmi.cmodified+0−7View file
arch/x86/kernel/cpu/perf_event.cmodified+25−37View file
arch/x86/kernel/cpu/perf_event_p4.cmodified+120−36View file
arch/x86/kernel/dumpstack.cmodified+0−1View file
arch/x86/kernel/dumpstack.hdeleted+0−56View before deletion
arch/x86/kernel/dumpstack_32.cmodified+0−2View file
arch/x86/kernel/dumpstack_64.cmodified+0−1View file
arch/x86/kernel/hw_breakpoint.cmodified+36−15View file
arch/x86/kernel/kprobes.cmodified+17−16View file
arch/x86/kernel/process_32.cmodified+4−0View file
arch/x86/kernel/process_64.cmodified+5−0View file
arch/x86/kernel/stacktrace.cmodified+16−15View file
arch/x86/kernel/traps.cmodified+7−0View file
arch/x86/mm/pf_in.cmodified+17−13View file
arch/x86/oprofile/nmi_int.cmodified+14−2View file
arch/xtensa/include/asm/local64.hadded+1−0View file
drivers/oprofile/event_buffer.cmodified+2−1View file
fs/exec.cmodified+1−0View file
include/asm-generic/local64.hadded+96−0View file
include/asm-generic/vmlinux.lds.hmodified+0−4View file
include/linux/ftrace.hmodified+5−0View file
include/linux/ftrace_event.hmodified+12−6View file
include/linux/kernel.hmodified+0−5View file
include/linux/kmemtrace.hdeleted+0−25View before deletion
include/linux/nmi.hmodified+13−0View file
include/linux/perf_event.hmodified+47−48View file
include/linux/sched.hmodified+4−20View file
include/linux/slab_def.hmodified+2−1View file
include/linux/slub_def.hmodified+2−1View file
include/linux/syscalls.hmodified+0−2View file
include/trace/boot.hdeleted+0−60View before deletion
include/trace/events/sched.hmodified+7−25View file
include/trace/events/timer.hmodified+32−48View file
include/trace/ftrace.hmodified+8−15View file
include/trace/syscall.hmodified+0−1View file
init/main.cmodified+10−19View file
kernel/Makefilemodified+1−1View file
kernel/hw_breakpoint.cmodified+41−37View file
kernel/perf_event.cmodified+234−224View file
kernel/sched.cmodified+3−3View file
kernel/softlockup.cdeleted+0−293View before deletion
kernel/sysctl.cmodified+33−22View file
kernel/timer.cmodified+0−1View file
kernel/trace/Kconfigmodified+0−68View file
kernel/trace/Makefilemodified+0−4View file
kernel/trace/ftrace.cmodified+2−3View file
kernel/trace/kmemtrace.cdeleted+0−529View before deletion
kernel/trace/ring_buffer.cmodified+9−31View file
kernel/trace/trace.cmodified+55−72View file
kernel/trace/trace.hmodified+6−84View file
kernel/trace/trace_boot.cdeleted+0−185View before deletion
kernel/trace/trace_clock.cmodified+2−3View file
kernel/trace/trace_entries.hmodified+0−94View file
kernel/trace/trace_event_perf.cmodified+6−21View file
kernel/trace/trace_events.cmodified+161−138View file
kernel/trace/trace_events_filter.cmodified+15−12View file
kernel/trace/trace_export.cmodified+1−7View file
kernel/trace/trace_functions.cmodified+3−3View file
kernel/trace/trace_functions_graph.cmodified+2−1View file
kernel/trace/trace_irqsoff.cmodified+3−0View file
kernel/trace/trace_kprobe.cmodified+296−87View file
kernel/trace/trace_ksym.cdeleted+0−508View before deletion
kernel/trace/trace_output.cmodified+0−69View file
kernel/trace/trace_sched_wakeup.cmodified+4−3View file
kernel/trace/trace_selftest.cmodified+0−87View file
kernel/trace/trace_stack.cmodified+3−3View file
kernel/trace/trace_syscalls.cmodified+4−3View file
kernel/trace/trace_sysprof.cdeleted+0−329View before deletion
kernel/watchdog.cadded+567−0View file
lib/Kconfig.debugmodified+20−15View file
mm/mmap.cmodified+5−1View file
mm/slab.cmodified+0−1View file
mm/slob.cmodified+3−1View file
mm/slub.cmodified+0−1View file
scripts/package/Makefilemodified+31−6View file
scripts/recordmcount.plmodified+1−1View file
tools/perf/.gitignoremodified+2−0View file
tools/perf/Documentation/perf-buildid-cache.txtmodified+4−4View file
tools/perf/Documentation/perf-probe.txtmodified+6−2View file
tools/perf/Documentation/perf-record.txtmodified+13−0View file
tools/perf/Documentation/perf-stat.txtmodified+7−0View file
tools/perf/Documentation/perf-top.txtmodified+5−3View file
tools/perf/MANIFESTadded+12−0View file
tools/perf/Makefilemodified+58−55View file
tools/perf/arch/sh/Makefileadded+4−0View file
tools/perf/arch/sh/util/dwarf-regs.cadded+55−0View file
tools/perf/builtin-annotate.cmodified+2−4View file
tools/perf/builtin-buildid-cache.cmodified+1−2View file
tools/perf/builtin-buildid-list.cmodified+1−3View file
tools/perf/builtin-diff.cmodified+1−8View file
tools/perf/builtin-probe.cmodified+2−1View file
tools/perf/builtin-record.cmodified+55−26View file
tools/perf/builtin-report.cmodified+1−26View file
tools/perf/builtin-stat.cmodified+10−4View file
tools/perf/builtin-top.cmodified+13−27View file
tools/perf/builtin-trace.cmodified+27−5View file
tools/perf/feature-tests.makadded+119−0View file
tools/perf/perf-archive.shmodified+15−5View file
tools/perf/perf.cmodified+2−0View file
tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace/Core.pymodified+30−0View file
tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace/SchedGui.pyadded+184−0View file
tools/perf/scripts/python/bin/sched-migration-recordadded+2−0View file
tools/perf/scripts/python/bin/sched-migration-reportadded+3−0View file
tools/perf/scripts/python/sched-migration.pyadded+461−0View file
tools/perf/util/build-id.cmodified+22−6View file
tools/perf/util/cache.hmodified+1−0View file
tools/perf/util/callchain.cmodified+1−1View file
tools/perf/util/callchain.hmodified+1−1View file
tools/perf/util/config.cmodified+63−1View file
tools/perf/util/cpumap.cmodified+56−1View file
tools/perf/util/cpumap.hmodified+1−1View file
tools/perf/util/debug.cmodified+4−6View file
tools/perf/util/event.cmodified+74−33View file
tools/perf/util/event.hmodified+4−2View file
tools/perf/util/header.cmodified+10−3View file
tools/perf/util/hist.cmodified+145−69View file
tools/perf/util/hist.hmodified+24−6View file
tools/perf/util/map.cmodified+85−31View file
tools/perf/util/map.hmodified+12−2View file
tools/perf/util/newt.cmodified+777−387View file
tools/perf/util/parse-events.cmodified+9−2View file
tools/perf/util/probe-event.cmodified+187−84View file
tools/perf/util/probe-event.hmodified+12−17View file
tools/perf/util/probe-finder.cmodified+190−58View file
tools/perf/util/probe-finder.hmodified+5−5View file
tools/perf/util/session.cmodified+39−23View file
tools/perf/util/sort.cmodified+32−8View file
tools/perf/util/sort.hmodified+17−5View file
tools/perf/util/symbol.cmodified+205−94View file
tools/perf/util/symbol.hmodified+13−5View file
tools/perf/util/thread.cmodified+7−0View file
tools/perf/util/thread.hmodified+2−0View file
tools/perf/util/util.hmodified+3−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/ABI/testing/debugfs-kmemtrace

View before deletion
diff --git a/Documentation/ABI/testing/debugfs-kmemtrace b/Documentation/ABI/testing/debugfs-kmemtrace
deleted file mode 100644
index 5e6a92a..0000000
--- a/Documentation/ABI/testing/debugfs-kmemtrace
+++ /dev/null
@@ -1,71 +0,0 @@
-What: /sys/kernel/debug/kmemtrace/
-Date: July 2008
-Contact: Eduard - Gabriel Munteanu <[email protected]>
-Description:
-
-In kmemtrace-enabled kernels, the following files are created:
-
-/sys/kernel/debug/kmemtrace/
- cpu<n> (0400) Per-CPU tracing data, see below. (binary)
- total_overruns (0400) Total number of bytes which were dropped from
- cpu<n> files because of full buffer condition,
- non-binary. (text)
- abi_version (0400) Kernel's kmemtrace ABI version. (text)
-
-Each per-CPU file should be read according to the relay interface. That is,
-the reader should set affinity to that specific CPU and, as currently done by
-the userspace application (though there are other methods), use poll() with
-an infinite timeout before every read(). Otherwise, erroneous data may be
-read. The binary data has the following _core_ format:
-
- Event ID (1 byte) Unsigned integer, one of:
- 0 - represents an allocation (KMEMTRACE_EVENT_ALLOC)
- 1 - represents a freeing of previously allocated memory
- (KMEMTRACE_EVENT_FREE)
- Type ID (1 byte) Unsigned integer, one of:
- 0 - this is a kmalloc() / kfree()
- 1 - this is a kmem_cache_alloc() / kmem_cache_free()
- 2 - this is a __get_free_pages() et al.
- Event size (2 bytes) Unsigned integer representing the
- size of this event. Used to extend
- kmemtrace. Discard the bytes you
- don't know about.
- Sequence number (4 bytes) Signed integer used to reorder data
- logged on SMP machines. Wraparound
- must be taken into account, although
- it is unlikely.
- Caller address (8 bytes) Return address to the caller.
- Pointer to mem (8 bytes) Pointer to target memory area. Can be
- NULL, but not all such calls might be
- recorded.
-
-In case of KMEMTRACE_EVENT_ALLOC events, the next fields follow:
-
- Requested bytes (8 bytes) Total number of requested bytes,
- unsigned, must not be zero.
- Allocated bytes (8 bytes) Total number of actually allocated
- bytes, unsigned, must not be lower
- than requested bytes.
- Requested flags (4 bytes) GFP flags supplied by the caller.
- Target CPU (4 bytes) Signed integer, valid for event id 1.
- If equal to -1, target CPU is the same
- as origin CPU, but the reverse might
- not be true.
-
-The data is made available in the same endianness the machine has.
-
-Other event ids and type ids may be defined and added. Other fields may be
-added by increasing event size, but see below for details.
-Every modification to the ABI, including new id definitions, are followed
-by bumping the ABI version by one.
-
-Adding new data to the packet (features) is done at the end of the mandatory
-data:
- Feature size (2 byte)
- Feature ID (1 byte)
- Feature data (Feature size - 3 bytes)
-
-
-Users:
- kmemtrace-user - git://repo.or.cz/kmemtrace-user.git
-

Documentation/kernel-parameters.txt

View file
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index f72ba72..f20c7ab 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1816,6 +1816,8 @@ and is between 256 and 4096 characters. It is defined in the file
nousb [USB] Disable the USB subsystem
+ nowatchdog [KNL] Disable the lockup detector.
+
nowb [ARM]
nox2apic [X86-64,APIC] Do not enable x2APIC mode.

Documentation/trace/ftrace-design.txt

View file
diff --git a/Documentation/trace/ftrace-design.txt b/Documentation/trace/ftrace-design.txt
index f1f81af..dc52bd4 100644
--- a/Documentation/trace/ftrace-design.txt
+++ b/Documentation/trace/ftrace-design.txt
@@ -13,6 +13,9 @@ Note that this focuses on architecture implementation details only. If you
want more explanation of a feature in terms of common code, review the common
ftrace.txt file.
+Ideally, everyone who wishes to retain performance while supporting tracing in
+their kernel should make it all the way to dynamic ftrace support.
+
Prerequisites
-------------
@@ -215,7 +218,7 @@ An arch may pass in a unique value (frame pointer) to both the entering and
exiting of a function. On exit, the value is compared and if it does not
match, then it will panic the kernel. This is largely a sanity check for bad
code generation with gcc. If gcc for your port sanely updates the frame
-pointer under different opitmization levels, then ignore this option.
+pointer under different optimization levels, then ignore this option.
However, adding support for it isn't terribly difficult. In your assembly code
that calls prepare_ftrace_return(), pass the frame pointer as the 3rd argument.
@@ -234,7 +237,7 @@ If you can't trace NMI functions, then skip this option.
HAVE_SYSCALL_TRACEPOINTS
----------------------
+------------------------
You need very few things to get the syscalls tracing in an arch.
@@ -250,12 +253,152 @@ You need very few things to get the syscalls tracing in an arch.
HAVE_FTRACE_MCOUNT_RECORD
-------------------------
-See scripts/recordmcount.pl for more info.
+See scripts/recordmcount.pl for more info. Just fill in the arch-specific
+details for how to locate the addresses of mcount call sites via objdump.
+This option doesn't make much sense without also implementing dynamic ftrace.
+
+HAVE_DYNAMIC_FTRACE
+-------------------
+
+You will first need HAVE_FTRACE_MCOUNT_RECORD and HAVE_FUNCTION_TRACER, so
+scroll your reader back up if you got over eager.
+
+Once those are out of the way, you will need to implement:
+ - asm/ftrace.h:
+ - MCOUNT_ADDR
+ - ftrace_call_adjust()
+ - struct dyn_arch_ftrace{}
+ - asm code:
+ - mcount() (new stub)
+ - ftrace_caller()
+ - ftrace_call()
+ - ftrace_stub()
+ - C code:
+ - ftrace_dyn_arch_init()
+ - ftrace_make_nop()
+ - ftrace_make_call()
+ - ftrace_update_ftrace_func()
+
+First you will need to fill out some arch details in your asm/ftrace.h.
+
+Define MCOUNT_ADDR as the address of your mcount symbol similar to:
+ #define MCOUNT_ADDR ((unsigned long)mcount)
+Since no one else will have a decl for that function, you will need to:
+ extern void mcount(void);
+
+You will also need the helper function ftrace_call_adjust(). Most people
+will be able to stub it out like so:
+ static inline unsigned long ftrace_call_adjust(unsigned long addr)
+ {
+ return addr;
+ }
<details to be filled>
+Lastly you will need the custom dyn_arch_ftrace structure. If you need
+some extra state when runtime patching arbitrary call sites, this is the
+place. For now though, create an empty struct:
+ struct dyn_arch_ftrace {
+ /* No extra data needed */
+ };
+
+With the header out of the way, we can fill out the assembly code. While we
+did already create a mcount() function earlier, dynamic ftrace only wants a
+stub function. This is because the mcount() will only be used during boot
+and then all references to it will be patched out never to return. Instead,
+the guts of the old mcount() will be used to create a new ftrace_caller()
+function. Because the two are hard to merge, it will most likely be a lot
+easier to have two separate definitions split up by #ifdefs. Same goes for
+the ftrace_stub() as that will now be inlined in ftrace_caller().
+
+Before we get confused anymore, let's check out some pseudo code so you can
+implement your own stuff in assembly:
-HAVE_DYNAMIC_FTRACE
----------------------
+void mcount(void)
+{
+ return;
+}
+
+void ftrace_caller(void)
+{
+ /* implement HAVE_FUNCTION_TRACE_MCOUNT_TEST if you desire */
+
+ /* save all state needed by the ABI (see paragraph above) */
+
+ unsigned long frompc = ...;
+ unsigned long selfpc = <return address> - MCOUNT_INSN_SIZE;
+
+ftrace_call:
+ ftrace_stub(frompc, selfpc);
+
+ /* restore all state needed by the ABI */
+
+ftrace_stub:
+ return;
+}
+
+This might look a little odd at first, but keep in mind that we will be runtime
+patching multiple things. First, only functions that we actually want to trace
+will be patched to call ftrace_caller(). Second, since we only have one tracer
+active at a time, we will patch the ftrace_caller() function itself to call the
+specific tracer in question. That is the point of the ftrace_call label.
+
+With that in mind, let's move on to the C code that will actually be doing the
+runtime patching. You'll need a little knowledge of your arch's opcodes in
+order to make it through the next section.
+
+Every arch has an init callback function. If you need to do something early on
+to initialize some state, this is the time to do that. Otherwise, this simple
+function below should be sufficient for most people:
+
+int __init ftrace_dyn_arch_init(void *data)
+{
+ /* return value is done indirectly via data */
+ *(unsigned long *)data = 0;
+
+ return 0;
+}
+
+There are two functions that are used to do runtime patching of arbitrary
+functions. The first is used to turn the mcount call site into a nop (which
+is what helps us retain runtime performance when not tracing). The second is
+used to turn the mcount call site into a call to an arbitrary location (but
+typically that is ftracer_caller()). See the general function definition in
+linux/ftrace.h for the functions:
+ ftrace_make_nop()
+ ftrace_make_call()
+The rec->ip value is the address of the mcount call site that was collected
+by the scripts/recordmcount.pl during build time.
+
+The last function is used to do runtime patching of the active tracer. This
+will be modifying the assembly code at the location of the ftrace_call symbol
+inside of the ftrace_caller() function. So you should have sufficient padding
+at that location to support the new function calls you'll be inserting. Some
+people will be using a "call" type instruction while others will be using a
+"branch" type instruction. Specifically, the function is:
+ ftrace_update_ftrace_func()
+
+
+HAVE_DYNAMIC_FTRACE + HAVE_FUNCTION_GRAPH_TRACER
+------------------------------------------------
+
+The function grapher needs a few tweaks in order to work with dynamic ftrace.
+Basically, you will need to:
+ - update:
+ - ftrace_caller()
+ - ftrace_graph_call()
+ - ftrace_graph_caller()
+ - implement:
+ - ftrace_enable_ftrace_graph_caller()
+ - ftrace_disable_ftrace_graph_caller()
<details to be filled>
+Quick notes:
+ - add a nop stub after the ftrace_call location named ftrace_graph_call;
+ stub needs to be large enough to support a call to ftrace_graph_caller()
+ - update ftrace_graph_caller() to work with being called by the new
+ ftrace_caller() since some semantics may have changed
+ - ftrace_enable_ftrace_graph_caller() will runtime patch the
+ ftrace_graph_call location with a call to ftrace_graph_caller()
+ - ftrace_disable_ftrace_graph_caller() will runtime patch the
+ ftrace_graph_call location with nops

Documentation/trace/kmemtrace.txt

View before deletion
diff --git a/Documentation/trace/kmemtrace.txt b/Documentation/trace/kmemtrace.txt
deleted file mode 100644
index 6308735..0000000
--- a/Documentation/trace/kmemtrace.txt
+++ /dev/null
@@ -1,126 +0,0 @@
- kmemtrace - Kernel Memory Tracer
-
- by Eduard - Gabriel Munteanu
-
-I. Introduction
-===============
-
-kmemtrace helps kernel developers figure out two things:
-1) how different allocators (SLAB, SLUB etc.) perform
-2) how kernel code allocates memory and how much
-
-To do this, we trace every allocation and export information to the userspace
-through the relay interface. We export things such as the number of requested
-bytes, the number of bytes actually allocated (i.e. including internal
-fragmentation), whether this is a slab allocation or a plain kmalloc() and so
-on.
-
-The actual analysis is performed by a userspace tool (see section III for
-details on where to get it from). It logs the data exported by the kernel,
-processes it and (as of writing this) can provide the following information:
-- the total amount of memory allocated and fragmentation per call-site
-- the amount of memory allocated and fragmentation per allocation
-- total memory allocated and fragmentation in the collected dataset
-- number of cross-CPU allocation and frees (makes sense in NUMA environments)
-
-Moreover, it can potentially find inconsistent and erroneous behavior in
-kernel code, such as using slab free functions on kmalloc'ed memory or
-allocating less memory than requested (but not truly failed allocations).
-
-kmemtrace also makes provisions for tracing on some arch and analysing the
-data on another.
-
-II. Design and goals
-====================
-
-kmemtrace was designed to handle rather large amounts of data. Thus, it uses
-the relay interface to export whatever is logged to userspace, which then
-stores it. Analysis and reporting is done asynchronously, that is, after the
-data is collected and stored. By design, it allows one to log and analyse
-on different machines and different arches.
-
-As of writing this, the ABI is not considered stable, though it might not
-change much. However, no guarantees are made about compatibility yet. When
-deemed stable, the ABI should still allow easy extension while maintaining
-backward compatibility. This is described further in Documentation/ABI.
-
-Summary of design goals:
- - allow logging and analysis to be done across different machines
- - be fast and anticipate usage in high-load environments (*)
- - be reasonably extensible
- - make it possible for GNU/Linux distributions to have kmemtrace
- included in their repositories
-
-(*) - one of the reasons Pekka Enberg's original userspace data analysis
- tool's code was rewritten from Perl to C (although this is more than a
- simple conversion)
-
-
-III. Quick usage guide
-======================
-
-1) Get a kernel that supports kmemtrace and build it accordingly (i.e. enable
-CONFIG_KMEMTRACE).
-
-2) Get the userspace tool and build it:
-$ git clone git://repo.or.cz/kmemtrace-user.git # current repository
-$ cd kmemtrace-user/
-$ ./autogen.sh
-$ ./configure
-$ make
-
-3) Boot the kmemtrace-enabled kernel if you haven't, preferably in the
-'single' runlevel (so that relay buffers don't fill up easily), and run
-kmemtrace:
-# '$' does not mean user, but root here.
-$ mount -t debugfs none /sys/kernel/debug
-$ mount -t proc none /proc
-$ cd path/to/kmemtrace-user/
-$ ./kmemtraced
-Wait a bit, then stop it with CTRL+C.
-$ cat /sys/kernel/debug/kmemtrace/total_overruns # Check if we didn't
- # overrun, should
- # be zero.
-$ (Optionally) [Run kmemtrace_check separately on each cpu[0-9]*.out file to
- check its correctness]
-$ ./kmemtrace-report
-
-Now you should have a nice and short summary of how the allocator performs.
-
-IV. FAQ and known issues
-========================
-
-Q: 'cat /sys/kernel/debug/kmemtrace/total_overruns' is non-zero, how do I fix
-this? Should I worry?
-A: If it's non-zero, this affects kmemtrace's accuracy, depending on how
-large the number is. You can fix it by supplying a higher
-'kmemtrace.subbufs=N' kernel parameter.
----
-
-Q: kmemtrace_check reports errors, how do I fix this? Should I worry?
-A: This is a bug and should be reported. It can occur for a variety of
-reasons:
- - possible bugs in relay code
- - possible misuse of relay by kmemtrace
- - timestamps being collected unorderly
-Or you may fix it yourself and send us a patch.
----
-
-Q: kmemtrace_report shows many errors, how do I fix this? Should I worry?
-A: This is a known issue and I'm working on it. These might be true errors
-in kernel code, which may have inconsistent behavior (e.g. allocating memory
-with kmem_cache_alloc() and freeing it with kfree()). Pekka Enberg pointed
-out this behavior may work with SLAB, but may fail with other allocators.
-
-It may also be due to lack of tracing in some unusual allocator functions.
-
-We don't want bug reports regarding this issue yet.
----
-
-V. See also
-===========
-
-Documentation/kernel-parameters.txt
-Documentation/ABI/testing/debugfs-kmemtrace
-

Documentation/trace/kprobetrace.txt

View file
diff --git a/Documentation/trace/kprobetrace.txt b/Documentation/trace/kprobetrace.txt
index ec94748..5f77d94 100644
--- a/Documentation/trace/kprobetrace.txt
+++ b/Documentation/trace/kprobetrace.txt
@@ -42,7 +42,7 @@ Synopsis of kprobe_events
+|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(**)
NAME=FETCHARG : Set NAME as the argument name of FETCHARG.
FETCHARG:TYPE : Set TYPE as the type of FETCHARG. Currently, basic types
- (u8/u16/u32/u64/s8/s16/s32/s64) are supported.
+ (u8/u16/u32/u64/s8/s16/s32/s64) and string are supported.
(*) only for return probe.
(**) this is useful for fetching a field of data structures.

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 11e34d5..100a3f5 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3403,13 +3403,6 @@ F: include/linux/kmemleak.h
F: mm/kmemleak.c
F: mm/kmemleak-test.c
-KMEMTRACE
-M: Eduard - Gabriel Munteanu <[email protected]>
-S: Maintained
-F: Documentation/trace/kmemtrace.txt
-F: include/linux/kmemtrace.h
-F: kernel/trace/kmemtrace.c
-
KPROBES
M: Ananth N Mavinakayanahalli <[email protected]>
M: Anil S Keshavamurthy <[email protected]>
@@ -5685,7 +5678,7 @@ TRACING
M: Steven Rostedt <[email protected]>
M: Frederic Weisbecker <[email protected]>
M: Ingo Molnar <[email protected]>
-T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git tracing/core
+T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git perf/core
S: Maintained
F: Documentation/trace/ftrace.txt
F: arch/*/*/*/ftrace.h

Makefile

View file
diff --git a/Makefile b/Makefile
index 66c94aa..7431c28 100644
--- a/Makefile
+++ b/Makefile
@@ -420,7 +420,7 @@ endif
no-dot-config-targets := clean mrproper distclean \
cscope TAGS tags help %docs check% coccicheck \
include/linux/version.h headers_% \
- kernelversion
+ kernelversion %src-pkg
config-targets := 0
mixed-targets := 0
@@ -1168,6 +1168,8 @@ distclean: mrproper
# rpm target kept for backward compatibility
package-dir := $(srctree)/scripts/package
+%src-pkg: FORCE
+ $(Q)$(MAKE) $(build)=$(package-dir) $@
%pkg: include/config/kernel.release FORCE
$(Q)$(MAKE) $(build)=$(package-dir) $@
rpm: include/config/kernel.release FORCE

arch/Kconfig

View file
diff --git a/arch/Kconfig b/arch/Kconfig
index acda512..4877a8c 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -151,4 +151,11 @@ config HAVE_MIXED_BREAKPOINTS_REGS
config HAVE_USER_RETURN_NOTIFIER
bool
+config HAVE_PERF_EVENTS_NMI
+ bool
+ help
+ System hardware can generate an NMI using the perf event
+ subsystem. Also has support for calculating CPU cycle events
+ to determine how many clock cycles in a given period.
+
source "kernel/gcov/Kconfig"

arch/alpha/include/asm/local64.h

View file
diff --git a/arch/alpha/include/asm/local64.h b/arch/alpha/include/asm/local64.h
new file mode 100644
index 0000000..36c93b5
--- /dev/null
+++ b/arch/alpha/include/asm/local64.h
@@ -0,0 +1 @@
+#include <asm-generic/local64.h>

arch/arm/include/asm/local64.h

View file
diff --git a/arch/arm/include/asm/local64.h b/arch/arm/include/asm/local64.h
new file mode 100644
index 0000000..36c93b5
--- /dev/null
+++ b/arch/arm/include/asm/local64.h
@@ -0,0 +1 @@
+#include <asm-generic/local64.h>

arch/arm/kernel/perf_event.c

View file
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index de12536..417c392 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -164,20 +164,20 @@ armpmu_event_set_period(struct perf_event *event,
struct hw_perf_event *hwc,
int idx)
{
- s64 left = atomic64_read(&hwc->period_left);
+ s64 left = local64_read(&hwc->period_left);
s64 period = hwc->sample_period;
int ret = 0;
if (unlikely(left <= -period)) {
left = period;
- atomic64_set(&hwc->period_left, left);
+ local64_set(&hwc->period_left, left);
hwc->last_period = period;
ret = 1;
}
if (unlikely(left <= 0)) {
left += period;
- atomic64_set(&hwc->period_left, left);
+ local64_set(&hwc->period_left, left);
hwc->last_period = period;
ret = 1;
}
@@ -185,7 +185,7 @@ armpmu_event_set_period(struct perf_event *event,
if (left > (s64)armpmu->max_period)
left = armpmu->max_period;
- atomic64_set(&hwc->prev_count, (u64)-left);
+ local64_set(&hwc->prev_count, (u64)-left);
armpmu->write_counter(idx, (u64)(-left) & 0xffffffff);
@@ -204,18 +204,18 @@ armpmu_event_update(struct perf_event *event,
u64 delta;
again:
- prev_raw_count = atomic64_read(&hwc->prev_count);
+ prev_raw_count = local64_read(&hwc->prev_count);
new_raw_count = armpmu->read_counter(idx);
- if (atomic64_cmpxchg(&hwc->prev_count, prev_raw_count,
+ if (local64_cmpxchg(&hwc->prev_count, prev_raw_count,
new_raw_count) != prev_raw_count)
goto again;
delta = (new_raw_count << shift) - (prev_raw_count << shift);
delta >>= shift;
- atomic64_add(delta, &event->count);
- atomic64_sub(delta, &hwc->period_left);
+ local64_add(delta, &event->count);
+ local64_sub(delta, &hwc->period_left);
return new_raw_count;
}
@@ -478,7 +478,7 @@ __hw_perf_event_init(struct perf_event *event)
if (!hwc->sample_period) {
hwc->sample_period = armpmu->max_period;
hwc->last_period = hwc->sample_period;
- atomic64_set(&hwc->period_left, hwc->sample_period);
+ local64_set(&hwc->period_left, hwc->sample_period);
}
err = 0;

arch/avr32/include/asm/local64.h

View file
diff --git a/arch/avr32/include/asm/local64.h b/arch/avr32/include/asm/local64.h
new file mode 100644
index 0000000..36c93b5
--- /dev/null
+++ b/arch/avr32/include/asm/local64.h
@@ -0,0 +1 @@
+#include <asm-generic/local64.h>

arch/blackfin/include/asm/local64.h

View file
diff --git a/arch/blackfin/include/asm/local64.h b/arch/blackfin/include/asm/local64.h
new file mode 100644
index 0000000..36c93b5
--- /dev/null
+++ b/arch/blackfin/include/asm/local64.h
@@ -0,0 +1 @@
+#include <asm-generic/local64.h>

arch/cris/include/asm/local64.h

View file
diff --git a/arch/cris/include/asm/local64.h b/arch/cris/include/asm/local64.h
new file mode 100644
index 0000000..36c93b5
--- /dev/null
+++ b/arch/cris/include/asm/local64.h
@@ -0,0 +1 @@
+#include <asm-generic/local64.h>

arch/frv/include/asm/local64.h

View file
diff --git a/arch/frv/include/asm/local64.h b/arch/frv/include/asm/local64.h
new file mode 100644
index 0000000..36c93b5
--- /dev/null
+++ b/arch/frv/include/asm/local64.h
@@ -0,0 +1 @@
+#include <asm-generic/local64.h>

arch/frv/kernel/local64.h

View file
diff --git a/arch/frv/kernel/local64.h b/arch/frv/kernel/local64.h

This diff is incomplete. Download the complete patch.

arch/h8300/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/ia64/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/m32r/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/m68k/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/microblaze/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/mips/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/mn10300/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/parisc/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/include/asm/perf_event.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/misc.S

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/perf_event.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kernel/perf_event_fsl_emb.c

View file

This diff is incomplete. Download the complete patch.

arch/s390/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/score/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/sh/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/sh/kernel/perf_event.c

View file

This diff is incomplete. Download the complete patch.

arch/sparc/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/sparc/include/asm/perf_event.h

View file

This diff is incomplete. Download the complete patch.

arch/sparc/kernel/helpers.S

View file

This diff is incomplete. Download the complete patch.

arch/sparc/kernel/perf_event.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/hw_breakpoint.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/nmi.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/perf_event.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/perf_event_p4.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/stacktrace.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/apic/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/apic/hw_nmi.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/apic/nmi.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/cpu/perf_event.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/cpu/perf_event_p4.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/dumpstack.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/dumpstack.h

View before deletion

This diff is incomplete. Download the complete patch.

arch/x86/kernel/dumpstack_32.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/dumpstack_64.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/hw_breakpoint.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/kprobes.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/process_32.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/process_64.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/stacktrace.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/traps.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/mm/pf_in.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/oprofile/nmi_int.c

View file

This diff is incomplete. Download the complete patch.

arch/xtensa/include/asm/local64.h

View file

This diff is incomplete. Download the complete patch.

drivers/oprofile/event_buffer.c

View file

This diff is incomplete. Download the complete patch.

fs/exec.c

View file

This diff is incomplete. Download the complete patch.

include/asm-generic/local64.h

View file

This diff is incomplete. Download the complete patch.

include/asm-generic/vmlinux.lds.h

View file

This diff is incomplete. Download the complete patch.

include/linux/ftrace.h

View file

This diff is incomplete. Download the complete patch.

include/linux/ftrace_event.h

View file

This diff is incomplete. Download the complete patch.

include/linux/kernel.h

View file

This diff is incomplete. Download the complete patch.

include/linux/kmemtrace.h

View before deletion

This diff is incomplete. Download the complete patch.

include/linux/nmi.h

View file

This diff is incomplete. Download the complete patch.

include/linux/perf_event.h

View file

This diff is incomplete. Download the complete patch.

include/linux/sched.h

View file

This diff is incomplete. Download the complete patch.

include/linux/slab_def.h

View file

This diff is incomplete. Download the complete patch.

include/linux/slub_def.h

View file

This diff is incomplete. Download the complete patch.

include/linux/syscalls.h

View file

This diff is incomplete. Download the complete patch.

include/trace/boot.h

View before deletion

This diff is incomplete. Download the complete patch.

include/trace/events/sched.h

View file

This diff is incomplete. Download the complete patch.

include/trace/events/timer.h

View file

This diff is incomplete. Download the complete patch.

include/trace/ftrace.h

View file

This diff is incomplete. Download the complete patch.

include/trace/syscall.h

View file

This diff is incomplete. Download the complete patch.

init/main.c

View file

This diff is incomplete. Download the complete patch.

kernel/Makefile

View file

This diff is incomplete. Download the complete patch.

kernel/hw_breakpoint.c

View file

This diff is incomplete. Download the complete patch.

kernel/perf_event.c

View file

This diff is incomplete. Download the complete patch.

kernel/sched.c

View file

This diff is incomplete. Download the complete patch.

kernel/softlockup.c

View before deletion

This diff is incomplete. Download the complete patch.

kernel/sysctl.c

View file

This diff is incomplete. Download the complete patch.

kernel/timer.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/Kconfig

View file

This diff is incomplete. Download the complete patch.

kernel/trace/Makefile

View file

This diff is incomplete. Download the complete patch.

kernel/trace/ftrace.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/kmemtrace.c

View before deletion

This diff is incomplete. Download the complete patch.

kernel/trace/ring_buffer.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace.h

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_boot.c

View before deletion

This diff is incomplete. Download the complete patch.

kernel/trace/trace_clock.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_entries.h

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_event_perf.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_events.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_events_filter.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_export.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_functions.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_functions_graph.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_irqsoff.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_kprobe.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_ksym.c

View before deletion

This diff is incomplete. Download the complete patch.

kernel/trace/trace_output.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_sched_wakeup.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_selftest.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_stack.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_syscalls.c

View file

This diff is incomplete. Download the complete patch.

kernel/trace/trace_sysprof.c

View before deletion

This diff is incomplete. Download the complete patch.

kernel/watchdog.c

View file

This diff is incomplete. Download the complete patch.

lib/Kconfig.debug

View file

This diff is incomplete. Download the complete patch.

mm/mmap.c

View file

This diff is incomplete. Download the complete patch.

mm/slab.c

View file

This diff is incomplete. Download the complete patch.

mm/slob.c

View file

This diff is incomplete. Download the complete patch.

mm/slub.c

View file

This diff is incomplete. Download the complete patch.

scripts/package/Makefile

View file

This diff is incomplete. Download the complete patch.

scripts/recordmcount.pl

View file

This diff is incomplete. Download the complete patch.

tools/perf/.gitignore

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-buildid-cache.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-probe.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-record.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-stat.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/Documentation/perf-top.txt

View file

This diff is incomplete. Download the complete patch.

tools/perf/MANIFEST

View file

This diff is incomplete. Download the complete patch.

tools/perf/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/sh/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/perf/arch/sh/util/dwarf-regs.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-annotate.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-buildid-cache.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-buildid-list.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-diff.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-probe.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-record.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-report.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-stat.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-top.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/builtin-trace.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/feature-tests.mak

View file

This diff is incomplete. Download the complete patch.

tools/perf/perf-archive.sh

View file

This diff is incomplete. Download the complete patch.

tools/perf/perf.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace/Core.py

View file

This diff is incomplete. Download the complete patch.

tools/perf/scripts/python/Perf-Trace-Util/lib/Perf/Trace/SchedGui.py

View file

This diff is incomplete. Download the complete patch.

tools/perf/scripts/python/bin/sched-migration-record

View file

This diff is incomplete. Download the complete patch.

tools/perf/scripts/python/bin/sched-migration-report

View file

This diff is incomplete. Download the complete patch.

tools/perf/scripts/python/sched-migration.py

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/build-id.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cache.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/callchain.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/callchain.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/config.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cpumap.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/cpumap.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/debug.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/event.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/event.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/header.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/hist.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/hist.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/map.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/map.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/newt.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/parse-events.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/probe-event.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/probe-event.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/probe-finder.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/probe-finder.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/session.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/sort.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/sort.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/symbol.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/symbol.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread.c

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/thread.h

View file

This diff is incomplete. Download the complete patch.

tools/perf/util/util.h

View file

This diff is incomplete. Download the complete patch.