Skip to content

perfmon: introduction

[email protected] lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest24 patches 105 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/24perfmon: generic headersinclude/linux/perfmon.h include/linux/perfmon_kern.h include/linux/perfmon_pmu.h+468 -04 replies
2/24perfmon: base codeinclude/linux/sched.h perfmon/perfmon_attach.c perfmon/perfmon_ctx.c +4 more+646 -012 replies
3/24perfmon: context switchinclude/linux/perfmon_kern.h perfmon/perfmon_ctxsw.c+259 -00 replies
4/24perfmon: interrupt handlinginclude/linux/perfmon_kern.h perfmon/perfmon_intr.c+297 -00 replies
5/24perfmon: X86 generic code (x86)arch/x86/include/asm/Kbuild arch/x86/include/asm/perfmon.h arch/x86/include/asm/perfmon_kern.h +3 more+1115 -041 replies
6/24perfmon: generic x86 definitions (x86)arch/x86/include/asm/irq_vectors.h arch/x86/include/asm/thread_info.h+11 -27 replies
7/24perfmon: OProfile hooks (x86)arch/x86/oprofile/nmi_int.c include/linux/perfmon_kern.h perfmon/perfmon_res.c+105 -10 replies
8/24perfmon: X86 64-bit hooks (x86)arch/x86/kernel/entry_64.S arch/x86/kernel/irqinit_64.c arch/x86/kernel/process_64.c +1 more+27 -10 replies
9/24perfmon: X86 32-bit hooks (x86)arch/x86/include/asm/mach-default/entry_arch.h arch/x86/kernel/entry_32.S arch/x86/kernel/process_32.c +1 more+20 -10 replies
10/24perfmon: PMU mappingperfmon/perfmon_pmu.c perfmon/perfmon_priv.h+268 -00 replies
11/24perfmon: sysfs interfaceperfmon/perfmon_init.c perfmon/perfmon_pmu.c perfmon/perfmon_priv.h +2 more+386 -00 replies
12/24perfmon: read and write registersinclude/linux/perfmon.h perfmon/perfmon_priv.h perfmon/perfmon_rw.c+470 -00 replies
13/24perfmon: start/stop monitoringperfmon/perfmon_activate.c perfmon/perfmon_priv.h+139 -00 replies
14/24perfmon: attach and detach sessionperfmon/perfmon_attach.c perfmon/perfmon_priv.h+254 -00 replies
15/24perfmon: context creationinclude/linux/perfmon.h perfmon/perfmon_ctx.c perfmon/perfmon_file.c +1 more+463 -01 reply
16/24perfmon: non-implemented perfmon syscallskernel/sys_ni.c+7 -00 replies
17/24perfmon: X86 64-bit system calls support (x86)arch/x86/include/asm/unistd_64.h+10 -12 replies
18/24perfmon: X86 x86-64 32-bit syscall entries (x86)arch/x86/ia32/ia32entry.S+5 -00 replies
19/24perfmon: X86 32-bit system calls support (x86)arch/x86/include/asm/unistd_32.h arch/x86/kernel/syscall_table_32.S+10 -00 replies
20/24perfmon: system calls interfaceinclude/linux/perfmon.h include/linux/syscalls.h perfmon/perfmon_syscalls.c+763 -021 replies
21/24perfmon: Intel architectural PMU support (x86)arch/x86/perfmon/Kconfig arch/x86/perfmon/Makefile arch/x86/perfmon/perfmon_intel_arch.c+636 -05 replies
22/24perfmon: AMD64 processor support (x86)arch/x86/perfmon/Kconfig arch/x86/perfmon/Makefile arch/x86/perfmon/perfmon_amd64.c+493 -11 reply
23/24perfmon: kernel documentationDocumentation/ABI/testing/sysfs-perfmon Documentation/ABI/testing/sysfs-perfmon-pmu Documentation/perfmon.txt+296 -07 replies
24/24perfmon: MakefilesMakefile arch/x86/Kconfig arch/x86/Makefile +1 more+17 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [patch 00/24] perfmon: introduction

[Repost with the correct cc: list]

Hello,

This series of patches implements the perfmon interface which provides access to the hardware performance counters of modern processors. In particular, this version supports per-thread counting for all AMD64 processors, and recent Intel processors with architectural PMU (Core Duo, Core 2, Atom, and Core i7).

It does not supersede Oprofile in this first implementation. Oprofile and perfmon can be compiled in the same kernel, but only one can have an active session at a time.

This implementation takes into account the various comments received from previous reviews on LKML. This is a much simplified version compared to the fully featured version maintained as a GIT tree on kernel.org.

This new version, named perfmon3, uses only 5 system calls (instead of 12). Each call was carefully designed to allow for future extensions.

Full documentation is available in Documentation/perfmon.txt and is provided by one of the patches.

Once this basic set of perfmon functionalities is upstream, we will build on it and add other features such as support for sampling, event set multiplexing and other processor architectures.

Updated versions of libpfm and pfmon able to support both perfmon2 and perfmon3 are available in the CVS repository on the perfmon web site, check
out: http://perfmon2.sf.net.

The patch series is against 2.6.28-rc6.

Please consider adding this patch series for 2.6.29 and send me any comments you may have on the code.

Thanks to all the people who have contributed to this effort.

S.Eranian