Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

perf (Linux)

From Wikipedia, the free encyclopedia
Performance analyzing tool in Linux
perf
Repositoryhttps://github.com/torvalds/linux/tree/master/tools/perf
Written inC
Operating systemLinux kernel
TypePerformance monitor and testing
LicenseGNU GPL
Websiteperf.wiki.kernel.org/index.php/Main_Page

perf (sometimes calledperf_events[1] orperf tools, originallyPerformance Counters for Linux,PCL)[2] is aperformance analyzing tool inLinux, available fromLinux kernel version 2.6.31 in 2009.[3]Userspace controlling utility, namedperf, is accessed from thecommand line and provides a number ofsubcommands; it is capable of statistical profiling of the entire system (both kernel anduserland code).

It supportshardware performance counters,tracepoints, software performance counters (e.g. hrtimer), and dynamic probes (for example,kprobes or uprobes).[4] In 2012, twoIBM engineers recognized perf (along withOProfile) as one of the two most commonly usedperformance counter profiling tools on Linux.[5]

Implementation

[edit]

The interface between the perf utility and the kernel consists of only onesyscall and is done via afile descriptor and a mapped memory region.[6] UnlikeLTTng or older versions ofoprofile, no servicedaemons are needed, as most functionality is integrated into the kernel. The perf utility dumps raw data from the mapped buffer to disk when the buffer becomes filled up. According to R. Vitillo (LBNL), profiling performed by perf involves a very low overhead.[6]

As of 2010[update], architectures that provide support for hardware counters includex86,PowerPC64,UltraSPARC (III andIV),ARM (v5, v6, v7,Cortex-A8 and-A9),Alpha EV56 andSuperH.[4] Usage of Last Branch Records,[7] abranch tracing implementation available inIntel CPUs sincePentium 4, is available as a patch.[6] Since version 3.14 of theLinux kernel mainline, released on 31 March 2014, perf also supportsrunning average power limit (RAPL) for power consumption measurements, which is available as a feature of certain Intel CPUs.[8][9][10]

Perf is natively supported in many popular Linux distributions, includingRed Hat Enterprise Linux (since its version 6 released in 2010)[11] andDebian in thelinux-tools-common package (sinceDebian 6.0 (Squeeze) released in 2011).[12]

Subcommands

[edit]

perf is used with several subcommands:

  • stat: measure total event count for single program or for system for some time
  • top:top-like dynamic view of hottest functions
  • record: measure and save sampling data for single program[13]
  • report: analyze file generated by perf record; can generate flat, or graph profile.[13]
  • annotate: annotate sources or assembly
  • sched: tracing/measuring of scheduler actions and latencies[14]
  • list: list available events

Criticism

[edit]

The documentation of perf is not very detailed (as of 2014); for example, it does not document most events or explain their aliases (often external tools are used to get names and codes of events[15]).[16] Perf tools also cannot profile based on true wall-clock time,[16] something that has been addressed by the addition of off-CPU profiling.

Security

[edit]

The perf subsystem of Linux kernels from 2.6.37 up to 3.8.8 and RHEL6 kernel 2.6.32 contained a security vulnerability (CVE-2013-2094), which was exploited to gain root privileges by a local user.[17][18] The problem was due to an incorrect type being used (32-bit int instead of 64-bit) in the event_id verification code path.[19]

See also

[edit]

References

[edit]
  1. ^Vince Weaver,The Unofficial Linux Perf Events Web-Page
  2. ^Linux perf event Features and Overhead // 2013 FastPath Workshop, Vince Weaver
  3. ^Jake Edge,Perfcounters added to the mainline, LWN July 1, 2009, "perfcounters being included into the mainline during the recently completed 2.6.31 merge window"
  4. ^abArnaldo Carvalho de Melo,The New Linux ’perf’ tools, presentation from Linux Kongress, September, 2010
  5. ^A. Zanella, R. Arnold.Evaluate performance for Linux on POWER. Analyze performance using Linux tools, 12 Jun 2012 // IBM DeveloperWorks Technical library
  6. ^abcRoberto A. Vitillo (LBNL).PERFORMANCE TOOLS DEVELOPMENTS, 16 June 2011, presentation from "Future computing in particle physics" conference
  7. ^Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 3B: System Programming Guide, Part 2. Intel. June 2009. p. 19-2 vol. 3.
  8. ^Jake Edge (2014-04-09)."Lots of new perf features".LWN.net. Retrieved2014-04-22.
  9. ^Jacob Pan (2013-04-02)."RAPL (Running Average Power Limit) driver".LWN.net. Retrieved2014-04-22.
  10. ^"kernel/git/torvalds/linux.git - Linux kernel source tree". Git.kernel.org. 2014-01-20. Retrieved2014-03-31.
  11. ^6.4. Performance Counters for Linux (PCL) Tools and perf // RHEL Developer Guide
  12. ^"Debian - Details of package linux-tools-2.6.32 in squeeze". Packages.debian.org. Retrieved2014-03-31.
  13. ^abUrs Fässlerperf file formatArchived 2012-12-14 at theWayback Machine,CERN openlab, 2011
  14. ^Ingo Molnar,'perf sched': Utility to capture, measure and analyze scheduler latencies and behavior, 17 Sep 2009
  15. ^How to monitor the full range of CPU performance events // Bojan Nikolic, 2012
  16. ^abRobert Haas (PostgreSQL),perf: the good, the bad, the ugly // 6 June 2012
  17. ^Michael Larabel (2013-05-15)."New Linux Kernel Vulnerability Exploited". Phoronix.
  18. ^corbet (2013-05-15)."Local root vulnerability in the kernel". LWN.
  19. ^Joe Damato (2013-05-20)."A closer look at a recent privilege escalation bug in Linux (CVE-2013-2094)". Archived fromthe original on 2019-07-24. Retrieved2013-07-18.

External links

[edit]
Organization
Kernel
Support
People
Technical
Debugging
Startup
ABIs
APIs
Kernel
System Call
Interface
In-kernel
Userspace
Daemons,
File systems
Wrapper
libraries
Components
Variants
Virtualization
Adoption
Range
of use
Adopters
Linux kernel
Controversies
Distributions
Organizations
Adoption
Media
Security
certifications
Retrieved from "https://en.wikipedia.org/w/index.php?title=Perf_(Linux)&oldid=1321248090"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp