Skip to content

perfmon3: introduction

[email protected] lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest24 patches 10 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/24perfmon3: generic headersinclude/linux/perfmon.h include/linux/perfmon_kern.h include/linux/perfmon_pmu.h+470 -00 replies
2/24perfmon3: base codeinclude/linux/sched.h perfmon/perfmon_attach.c perfmon/perfmon_ctx.c +4 more+646 -00 replies
3/24perfmon3: context switchinclude/linux/perfmon_kern.h perfmon/perfmon_ctxsw.c+259 -00 replies
4/24perfmon3: interrupt handlinginclude/linux/perfmon_kern.h perfmon/perfmon_intr.c+297 -00 replies
5/24perfmon3: X86 generic codearch/x86/perfmon/Kconfig arch/x86/perfmon/Makefile arch/x86/perfmon/perfmon.c +3 more+1053 -00 replies
6/24perfmon3: generic x86 definitionsinclude/asm-x86/irq_vectors.h include/asm-x86/thread_info.h+11 -20 replies
7/24perfmon3: X86 OProfile hooksarch/x86/oprofile/nmi_int.c include/linux/perfmon_kern.h perfmon/perfmon_res.c+105 -10 replies
8/24perfmon3: X86 64-bit hooksarch/x86/kernel/entry_64.S arch/x86/kernel/irqinit_64.c arch/x86/kernel/process_64.c +1 more+27 -10 replies
9/24perfmon3: X86 32-bit hooksarch/x86/kernel/apic_32.c arch/x86/kernel/entry_32.S arch/x86/kernel/process_32.c +2 more+24 -10 replies
10/24perfmon3: PMU mappingperfmon/perfmon_pmu.c perfmon/perfmon_priv.h+268 -00 replies
11/24perfmon3: sysfs interfaceperfmon/perfmon_init.c perfmon/perfmon_pmu.c perfmon/perfmon_priv.h +2 more+386 -00 replies
12/24perfmon3: read and write registersinclude/linux/perfmon.h perfmon/perfmon_priv.h perfmon/perfmon_rw.c+470 -00 replies
13/24perfmon3: start/stop monitoringperfmon/perfmon_activate.c perfmon/perfmon_priv.h+139 -00 replies
14/24perfmon3: attach and detach sessionperfmon/perfmon_attach.c perfmon/perfmon_priv.h+255 -00 replies
15/24perfmon3: context creationinclude/linux/perfmon.h perfmon/perfmon_ctx.c perfmon/perfmon_file.c +1 more+463 -00 replies
16/24perfmon3: non-implemented perfmon syscallskernel/sys_ni.c+7 -00 replies
17/24perfmon3: X86 64-bit system calls supportinclude/asm-x86/unistd_64.h+10 -10 replies
18/24perfmon3: X86 x86-64 32-bit syscall entriesarch/x86/ia32/ia32entry.S+5 -00 replies
19/24perfmon3: X86 32-bit system calls supportarch/x86/kernel/syscall_table_32.S include/asm-x86/unistd_32.h+10 -00 replies
20/24perfmon3: system calls interfaceinclude/linux/perfmon.h perfmon/perfmon_syscalls.c+752 -00 replies
21/24perfmon3: Intel architectural PMU supportarch/x86/perfmon/Kconfig arch/x86/perfmon/Makefile arch/x86/perfmon/perfmon_intel_arch.c+636 -00 replies
22/24perfmon3: AMD64 processor supportarch/x86/perfmon/Kconfig arch/x86/perfmon/Makefile arch/x86/perfmon/perfmon_amd64.c+493 -10 replies
23/24perfmon3: kernel documentationDocumentation/ABI/testing/sysfs-perfmon Documentation/ABI/testing/sysfs-perfmon-pmu Documentation/perfmon.txt+296 -02 replies
24/24perfmon3: 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] perfmon3: introduction

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).

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 separate 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 multi-architecture.

I will be releasing updated versions of libpfm and pfmon which can work with this new API while continuing to work with the v2.x versions.

The patch series is against 2.6.27.

Please consider adding this patch series for 2.6.28.

Thanks to all the people who have contributed to this new release.

S.Eranian