public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: Stephane Eranian <eranian@frankl.hpl.hp.com>
To: linux-ia64@vger.kernel.org
Subject: [Linux-ia64] summary of perfmon changes in 2.4.18/2.5.3
Date: Thu, 28 Feb 2002 01:28:59 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590701905195@msgid-missing> (raw)

Hi,

Here is a short summary of the changes you will find in the perfmon 
code with kernel version 2.4.18 and also 2.5.3 or higher.

--------------------------------------------------------------------
IMPORTANT: This version is not compatible with the previous version
of perfmon. All the applications must be updated, recompiling won't
be enough.
--------------------------------------------------------------------

	- full 64-birt interface for counters: you don't get notifications
	  unless the 64-bit value of the counter overflows, even if the
	  underlying PMU uses narrower counters. The user only programs
	  64-bit values.

	- the perfmonctl() system call has dropped the flags argument.

	- the command specific argument (3rd parameters) is using a different
	  struct for each command (when needed). The union has been been
	  dropped to allow better portability across versions.

	- support for sampling on any events, not just the the Itanium
	  EAR/BTB.

	- possibility to indicate a set of PMD registers to reset when a 
	  counter overflows.

	- the two sampling values have been clarified: long_reset and short_reset.

	- lots of code cleanups. Minimal CPU-model specific code. We are
	  almost ready for McKinley.

	- added interface to program the debug registers for performance 
	  monitoring when support by the PMU (PFM_WRITE_DBRS, PFM_WRITE_IBRS). 
	  On Itanium this is used to implement code & data address range 
	  restrictions.

	- added support for system wide monitoring for both UP and SMP
	  systems. SMP is obtained via process pinning to keep the kernel
	  code as simple as possible. The pinning interface is part of
	  the perfmon interface until the kernel provides a better solution.

	- lots of performance improvments for the context swich code for
	  per-process monitoring < 2% overhead with four counters.

	- for per-process monitoring the kernel now enforces the use of
	  user monitors (pmc.pm=0).

	- for system-wide monitoring the kernel now enforces the use of
	  privileged monitors (pmc.pm=1).

	- introduction of PFM_PROTECT_CONTEXT command to forbid access to
	  the context by a process that is not its creator. This is useful
	  for per-process sessions on unmodified (possible malicious) binaries.

There were a lot of smaller changes which are not captured here. So please
refer to the source code for more information or E-mail me. 

Version 1.0 of the pfmon package has support for this new interface and the
libpfm library and pfmon tool do provide the additional feature, such
as address range restriction on Itanium and system wide monitoring.
The pfmon package now includes a wide range of example demonstrating 
how the interface can be used to collect counts and sampling traces.
You can download this package from:

		ftp://ftp.hpl.hp.com/pub/linux-ia64/pfmon-1.0.tar.gz

I will publish a detailed document describing the perfmon interface in the
coming weeks.

Enjoy,

+--------------------------------------------------------------------+
| Ste'phane ERANIAN                       | Email eranian@hpl.hp.com |
| Hewlett-Packard Laboratories            |                          |
| 1501, Page Mill Road MS 1U-15           |                          |
| Palo  Alto, CA 94303-096                |                          |
| USA                                     |                          |
| Tel : (650) 857-7174                    |                          |
| Fax : (650) 857-5548                    |                          |
+--------------------------------------------------------------------+


                 reply	other threads:[~2002-02-28  1:28 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-ia64-105590701905195@msgid-missing \
    --to=eranian@frankl.hpl.hp.com \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox