|
Packit |
577717 |
$Id: CHANGES,v 1.142.2.72 2010/11/07 19:48:14 mikpe Exp $
|
|
Packit |
577717 |
|
|
Packit |
577717 |
CHANGES
|
|
Packit |
577717 |
=======
|
|
Packit |
577717 |
|
|
Packit |
577717 |
[High-level changes in reverse chronological order. Detailed
|
|
Packit |
577717 |
driver changes are in linux/drivers/perfctr/RELEASE-NOTES.]
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.42, 2010-11-07
|
|
Packit |
577717 |
- Classify Westmere processors as Westmere not Nehalem.
|
|
Packit |
577717 |
- Update update-kernel to install arch-specific header files
|
|
Packit |
577717 |
in arch/$arch/include/asm/ for newer kernels. Also make
|
|
Packit |
577717 |
update-kernel --test trace file installation steps.
|
|
Packit |
577717 |
- Update usr.src/Makefile to use the LD make variable rather
|
|
Packit |
577717 |
than plain 'ld' if set. Useful for cross-compilation and
|
|
Packit |
577717 |
builds with non-default target options.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.18-194.17.4.el5 (RHEL5).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.41, 2010-06-08
|
|
Packit |
577717 |
- Extend examples/perfex/ to allow users to set up values for
|
|
Packit |
577717 |
the OFFCORE_RSP MSRs on Nehalem-based processors.
|
|
Packit |
577717 |
- Add driver support for OFFCORE_RSP MSRs on Nehalem-based processors.
|
|
Packit |
577717 |
- Recognise more Nehalem-based processors (models 30, 37).
|
|
Packit |
577717 |
- Renamed PERFCTR_X86_INTEL_COREI7 symbolic CPU/PMU type constant
|
|
Packit |
577717 |
to PERFCTR_X86_INTEL_NHLM, since it denotes the entire Nehalem
|
|
Packit |
577717 |
family not just the (original) Core i7. The old constant is
|
|
Packit |
577717 |
also defined for now, to not break source code compatibility.
|
|
Packit |
577717 |
- Correct Core i7 event setup in examples/global/ to actually
|
|
Packit |
577717 |
work. It was rejected by the driver due to a copy-paste error.
|
|
Packit |
577717 |
- Rewrite the missing event list message in `perfex -l/-L' to
|
|
Packit |
577717 |
indicate that this is a user-space library omission, not an
|
|
Packit |
577717 |
issue with the driver or the hardware.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.18-194.3.1.el5, 2.6.18-194.el5,
|
|
Packit |
577717 |
2.6.18-164.15.1.el5 (RHEL5).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.40, 2010-01-30
|
|
Packit |
577717 |
- Preliminary support for Intel Xeon 7500 (Nehalem-based) processors.
|
|
Packit |
577717 |
- Preliminary support for Intel i7-980X Gulftown processors.
|
|
Packit |
577717 |
- Added support for AMD Family 11h processors (compatible with fam 10h).
|
|
Packit |
577717 |
- Updated kernel support: 2.6.32, 2.6.31, 2.6.18-164.11.1.el5 and
|
|
Packit |
577717 |
2.6.18-164.el5 (RHEL5), 2.6.9-89.0.19.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.39, 2009-06-11
|
|
Packit |
577717 |
- Updated driver's AMD multicore detection code to actually work.
|
|
Packit |
577717 |
Tested on Istanbul and Shanghai Opterons.
|
|
Packit |
577717 |
- Updated driver to allow per-thread counting of Northbridge events
|
|
Packit |
577717 |
on multicore AMD processors. Since the NB is shared between cores,
|
|
Packit |
577717 |
threads counting NB events will be forced via their CPU affinity
|
|
Packit |
577717 |
mask to core0 of the available processors. On early K8 RevE processors
|
|
Packit |
577717 |
NB events remain limited to global-mode counting, due to an erratum.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.30, 2.6.29, 2.6.18-128.1.10.el5 (RHEL5),
|
|
Packit |
577717 |
2.6.18-92.1.26.el5 (RHEL5), 2.6.9-89.EL (RHEL4), 2.6.9-78.0.22.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.38, 2009-01-23
|
|
Packit |
577717 |
- Added rvperfctr_iresume() procedure to the user-space library.
|
|
Packit |
577717 |
This allows a monitor process to resume overflow counters in a
|
|
Packit |
577717 |
target process after the target has received an overflow signal.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.29-rc2, 2.6.28, 2.6.18-128.el5
|
|
Packit |
577717 |
(RHEL5.3), 2.6.9-78.0.13.EL (RHEL4).
|
|
Packit |
577717 |
- Removed support for 2.4 kernels. 2.4 kernels have effectively
|
|
Packit |
577717 |
been unsupported since early 2007, this change makes it official
|
|
Packit |
577717 |
by removing all 2.4-specific files and #ifdefs.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.37, 2008-11-30
|
|
Packit |
577717 |
- Preliminary support for Intel Core i7 (Nehalem) processors
|
|
Packit |
577717 |
(family 6 model 26). They are currently treated like Core 2s
|
|
Packit |
577717 |
but with four general-purpose counters, and with different
|
|
Packit |
577717 |
events and a new symbolic CPU type. The AnyThread evntsel flag
|
|
Packit |
577717 |
and "uncore" event monitoring are not yet supported.
|
|
Packit |
577717 |
- Updated x86 driver to recognise Xeon 7400 (family 6 model 29)
|
|
Packit |
577717 |
as a member of the Core 2 family.
|
|
Packit |
577717 |
- Extended x86 driver's CPU initialisation on Intel Core 2 and
|
|
Packit |
577717 |
newer CPUs to work around vtune leaving the performance monitor
|
|
Packit |
577717 |
unit in a "very" disabled state. Thanks to Mark Krentel for
|
|
Packit |
577717 |
reporting the problem and for facilitating tests that allowed
|
|
Packit |
577717 |
the cause of the problem to be identified.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.28-rc6, 2.6.18-120.el5 (RHEL5.3 beta),
|
|
Packit |
577717 |
2.6.18-92.1.18.el5 (RHEL5), 2.6.9-78.0.8.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.36, 2008-10-19
|
|
Packit |
577717 |
- Fixed a driver error which caused Intel Family 6 Model 23
|
|
Packit |
577717 |
processors to crash kernels with general protection faults
|
|
Packit |
577717 |
if the fixed-function counters ran in interrupt-on-overflow
|
|
Packit |
577717 |
mode. Older Intel Family 6 Model 15 processors tolerate the
|
|
Packit |
577717 |
error which is why it was not detected before. Thanks to
|
|
Packit |
577717 |
Mark Krentel for reporting the problem and for facilitating
|
|
Packit |
577717 |
tests that allowed the cause of the problem to be identified.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.27, 2.6.26, 2.6.18-92.1.13.el5
|
|
Packit |
577717 |
(RHEL5), 2.6.9-78.0.5.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.35, 2008-06-30
|
|
Packit |
577717 |
- Preliminary support for Intel Atom processors added.
|
|
Packit |
577717 |
These processors are very poorly documented, but they are
|
|
Packit |
577717 |
known to be family 6 model 28, and to support Intel's
|
|
Packit |
577717 |
"architectural performance monitor". Current models seem
|
|
Packit |
577717 |
to have two general-purpose counters, one fixed-function
|
|
Packit |
577717 |
counter, and to support the seven architectural events.
|
|
Packit |
577717 |
Thanks to Steve Blackburn for running tests on his Atom.
|
|
Packit |
577717 |
- Updated x86 driver to recognise the Celeron model 16h
|
|
Packit |
577717 |
as a member of the Core2 family.
|
|
Packit |
577717 |
- Corrected an error in the x86 driver's control validation
|
|
Packit |
577717 |
procedure. The error was introduced in perfctr-2.6.29 when
|
|
Packit |
577717 |
support for the Core2's fixed-function counters was added.
|
|
Packit |
577717 |
The error made the driver accept some invalid controls
|
|
Packit |
577717 |
(on Core2 processors only), which could result in kernel
|
|
Packit |
577717 |
hangs due to exceptions from invalid register accesses.
|
|
Packit |
577717 |
Thanks to Anton Ertl for reporting the initial problem.
|
|
Packit |
577717 |
- Updated README to add Atom and AMD Family 10h to list of
|
|
Packit |
577717 |
supported processors.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.26-rc8, 2.6.18-92.1.6.el5 (RHEL5),
|
|
Packit |
577717 |
2.6.18-92.1.1.el5 (RHEL5), 2.6.9-67.0.20.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.35-pre1, 2008-06-23
|
|
Packit |
577717 |
- Added optional close-on-exec feature for per-process perfctrs.
|
|
Packit |
577717 |
To enable it, set control.flags |= VPERFCTR_CONTROL_CLOEXEC
|
|
Packit |
577717 |
in a struct vperfctr_control object before passing it to
|
|
Packit |
577717 |
vperfctr_control(). If the flag is set when a thread executes
|
|
Packit |
577717 |
an execve() system call, then its perfctr state is detached
|
|
Packit |
577717 |
from the thread as if a call to vperfctr_unlink() had occurred.
|
|
Packit |
577717 |
If the flag is clear then the state survives execve() just like
|
|
Packit |
577717 |
it always did before.
|
|
Packit |
577717 |
- The vperfctr_open() library function now sets close-on-exec
|
|
Packit |
577717 |
on the file descriptor embedded in the returned vperfctr handle.
|
|
Packit |
577717 |
- Removed library support for the ancient /proc/<pid>/perfctr
|
|
Packit |
577717 |
kernel interface which hasn't worked since perfctr-2.6.0.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.34, 2008-05-29
|
|
Packit |
577717 |
- Updated kernel support: 2.6.26-rc4, 2.6.18-92.el5 (RHEL5U2),
|
|
Packit |
577717 |
2.6.18-53.1.21.el5 (RHEL5), 2.6.16.42-0.12 (SuSE).
|
|
Packit |
577717 |
- Corrected the kernel driver's version number: perfctr-2.6.33
|
|
Packit |
577717 |
forgot to increment it.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.33, 2008-05-18
|
|
Packit |
577717 |
- x86: The support for Intel Family 6 Model 23 processors added in
|
|
Packit |
577717 |
perfctr-2.6.32 was incomplete, causing overflow interrupts to not
|
|
Packit |
577717 |
work properly on those processors. This has been fixed. (Thanks
|
|
Packit |
577717 |
to Mark Krentel for reporting the issue and testing patches.)
|
|
Packit |
577717 |
- Updated kernel support: 2.6.26-rc2, 2.6.18-53.1.19.el5 (RHEL5),
|
|
Packit |
577717 |
2.6.9-67.0.15.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.32, 2008-04-20
|
|
Packit |
577717 |
- Library: add experimental vperfctr_open_mode(mode) procedure.
|
|
Packit |
577717 |
The plain vperfctr_open() always opens the perfctr state in
|
|
Packit |
577717 |
O_CREAT|O_EXCL mode, which means that it will fail if the
|
|
Packit |
577717 |
invoking thread already has a perfctr state. The mode parameter
|
|
Packit |
577717 |
to vperfctr_open_mode() can be used to avoid this behaviour:
|
|
Packit |
577717 |
with mode == 0 no state will be created and a handle to the
|
|
Packit |
577717 |
thread's existing state (if any) is returned; to select the
|
|
Packit |
577717 |
current behaviour pass mode == VPERFCTR_OPEN_CREAT_EXCL to
|
|
Packit |
577717 |
vperfctr_open_mode(). For example:
|
|
Packit |
577717 |
|
|
Packit |
577717 |
the_state_is_shared = 0;
|
|
Packit |
577717 |
vperfctr = vperfctr_open_mode(VPERFCTR_OPEN_CREAT_EXCL);
|
|
Packit |
577717 |
if (vperfctr == NULL && errno == EEXIST) {
|
|
Packit |
577717 |
// error out due to the resource conflict, or:
|
|
Packit |
577717 |
vperfctr = vperfctr_open_mode(0);
|
|
Packit |
577717 |
the_state_is_shared = 1;
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
...
|
|
Packit |
577717 |
|
|
Packit |
577717 |
The purpose of this API extension is to hopefully allow PAPI
|
|
Packit |
577717 |
to handle some use cases that currently cause it to error out.
|
|
Packit |
577717 |
- Fix 'make install' to select the correct file to install
|
|
Packit |
577717 |
as <asm/perfctr.h>. Fixes regression caused by i386/x86_64
|
|
Packit |
577717 |
arch unification in perfctr-2.6.30. ppc32 also needed fixing.
|
|
Packit |
577717 |
- x86: Recognize Intel Family 6 Model 23 as Core2.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.25, 2.6.18-53.1.14.el5 (RHEL5),
|
|
Packit |
577717 |
2.6.9-67.0.7.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.31, 2008-01-26
|
|
Packit |
577717 |
- x86: Barcelona (AMD Family 10h) updates:
|
|
Packit |
577717 |
* Correct CPU type constant to read FAM10H with trailing H.
|
|
Packit |
577717 |
The old spelling also remains, for now.
|
|
Packit |
577717 |
* Barcelona event selectors are 64-bit, not 32-bit as in K8.
|
|
Packit |
577717 |
Add evntsel_high[] array to struct perfctr_cpu_control to
|
|
Packit |
577717 |
allow passing high 32 bits of evntsels to the driver.
|
|
Packit |
577717 |
This array overlaps the p4 control sub-struct. (Uses a GCC
|
|
Packit |
577717 |
anonymous union, to avoid source-incompatible changes.)
|
|
Packit |
577717 |
Currently only some Northbridge events need the high bits.
|
|
Packit |
577717 |
* Update driver to accept and check high evntsel bits on
|
|
Packit |
577717 |
Barcelona, and to maintain all 64 evntsel bits in PMU
|
|
Packit |
577717 |
context switches.
|
|
Packit |
577717 |
* Update examples/perfex/ to indicate how to also set up
|
|
Packit |
577717 |
the high 32 evntsel bits for Barcelona (run perfex -h).
|
|
Packit |
577717 |
- Minor coding style (mostly obsolete whitespace style) fixes.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.24, 2.6.18-53.1.6.el5 (RHEL5),
|
|
Packit |
577717 |
2.6.9-67.0.1.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.30, 2007-10-28
|
|
Packit |
577717 |
- Kernel 2.6.24-rc1 replaced the previously separate i386
|
|
Packit |
577717 |
and x86_64 source code directories with new shared x86
|
|
Packit |
577717 |
directories. Updated the linux/include/ hierarchy and the
|
|
Packit |
577717 |
update-kernel script to handle new and old source layouts.
|
|
Packit |
577717 |
- Several driver updates to handle kernel 2.6.24-rc1 changes
|
|
Packit |
577717 |
on both x86 and ppc32.
|
|
Packit |
577717 |
- Fixed a problem which could break RHEL5 kernel builds in
|
|
Packit |
577717 |
some configurations.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.24-rc1, 2.6.23, 2.6.18-8.1.14.el5
|
|
Packit |
577717 |
(RHEL5), and 2.6.9-55.0.6.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.29, 2007-10-07
|
|
Packit |
577717 |
- Added support for the fixed-function counters in Intel Core 2
|
|
Packit |
577717 |
processors. To user-space they look like ordinary P6 counters,
|
|
Packit |
577717 |
except their PMC numbers are 0x40000000..0x40000002, and their
|
|
Packit |
577717 |
evntsels only need Enable, INT, and CPL fields set.
|
|
Packit |
577717 |
- Preliminary support for AMD Family 10h processors.
|
|
Packit |
577717 |
Currently only events that do not need to use the high 32 bits
|
|
Packit |
577717 |
of the event select control registers are expected to work.
|
|
Packit |
577717 |
- Fixed driver compilation warnings caused by perfctr needing
|
|
Packit |
577717 |
its own definitions of macros/constants that may or may not
|
|
Packit |
577717 |
be defined in the specific kernel version used.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.23-rc9, 2.6.5-7.276 (SuSE).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.28, 2007-07-18
|
|
Packit |
577717 |
- Fixed path to udev rules file (/etc/udev.d/ -> /etc/udev/).
|
|
Packit |
577717 |
- Updated to handle changes in the 2.6.22 kernel on ppc32.
|
|
Packit |
577717 |
- Updated to handle changes in the 2.6.22 kernel on x86.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.22, 2.6.21, 2.6.18-8.1.8.el5 (RHEL5),
|
|
Packit |
577717 |
2.6.9-55.0.2.EL (RHEL4), and 2.6.9-55.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.27, 2007-04-09
|
|
Packit |
577717 |
- Updated INSTALL with instructions for making /dev/perfctr
|
|
Packit |
577717 |
creation and perfctr module autoloading work with udev.
|
|
Packit |
577717 |
These instructions are known to work on Fedora Core 4.
|
|
Packit |
577717 |
Also updated the rpm package accordingly.
|
|
Packit |
577717 |
- Updated for the RHEL5 2.6.18-8.1.1.el5 kernel. This kernel
|
|
Packit |
577717 |
removed a ptrace-related function that is used for perfctr's
|
|
Packit |
577717 |
remote-control API. For now, remote-control is disabled in
|
|
Packit |
577717 |
the RHEL5 kernel, but everything else should work.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.21-rc6, 2.6.18.2-34 (SuSE),
|
|
Packit |
577717 |
2.6.9-42.0.10.EL (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.26, 2007-02-11
|
|
Packit |
577717 |
- My old @csd.uu.se email address no longer works. Updated
|
|
Packit |
577717 |
documentation and kernel messages to show my @it.uu.se address.
|
|
Packit |
577717 |
- Added driver support for ARM/XScale processors. Overflow
|
|
Packit |
577717 |
interrupts are not yet supported, in part due to conflicts
|
|
Packit |
577717 |
with Intel's ixp400_eth driver. Plain event counting works.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.20, 2.6.19, 2.6.9-42.0.8.EL (RHEL4),
|
|
Packit |
577717 |
2.4.34, 2.4.21-47.0.1.EL (RHEL3), 2.6.16.21 (SLES10).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.25, 2006-10-15
|
|
Packit |
577717 |
- The Intel Core 2 processors are substantially different from
|
|
Packit |
577717 |
the old Core processors. Core 2 processors are now mapped to a
|
|
Packit |
577717 |
new cpu_type PERFCTR_X86_INTEL_CORE2, and must be programmed
|
|
Packit |
577717 |
so that every EVNTSEL used has its Enable flag set. This is
|
|
Packit |
577717 |
consistent with Intel's documentation and observations made by
|
|
Packit |
577717 |
others on later steppings of the Core 2. Early steppings may
|
|
Packit |
577717 |
be more P6-like (master Enable in EVNTSEL0), but as long as a
|
|
Packit |
577717 |
control setup includes EVNTSEL0 it should work on any stepping.
|
|
Packit |
577717 |
- Major x86 driver updates for changes in kernel 2.6.19-rc1.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.19-rc2, 2.6.18, 2.6.9-42.0.3.EL (RHEL4),
|
|
Packit |
577717 |
and 2.4.34-pre4.
|
|
Packit |
577717 |
- Fixed perfex -l/-L to handle unavailability of event set data
|
|
Packit |
577717 |
gracefully and not signal an error in those cases.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.24, 2006-09-17
|
|
Packit |
577717 |
- Fixed a driver linkage failure in 64-bit x86 kernels when
|
|
Packit |
577717 |
CONFIG_PERFCTR_INIT_TESTS was enabled, caused by an omission
|
|
Packit |
577717 |
in the perfctr-2.6.23 changes to support Intel Core 2 CPUs.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.18-rc7, 2.6.9-42.0.2.EL (RHEL4),
|
|
Packit |
577717 |
and 2.4.34-pre2.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.23, 2006-08-20
|
|
Packit |
577717 |
- Intel Core 2 fixes: detect Core2 processors (Model 15) and
|
|
Packit |
577717 |
allow them to be used in 64-bit builds.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.18-rc4, 2.6.17, 2.6.9-34.0.2.EL (RHEL4),
|
|
Packit |
577717 |
2.4.33, 2.4.34-pre1, and 2.4.21-47.EL (RHEL3).
|
|
Packit |
577717 |
- The update-kernel script is now able to automatically identify
|
|
Packit |
577717 |
SuSE Linux kernel versions. A SuSE kernel MUST be configured
|
|
Packit |
577717 |
(".config" exists) for the identification to work.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.22, 2006-06-02
|
|
Packit |
577717 |
- Preliminary support for Intel Core (family 6 model 14) processors.
|
|
Packit |
577717 |
- A serious error in the x86 driver's code to identify hyper-threads
|
|
Packit |
577717 |
was fixed. The driver logic is correct but it used a kernel function
|
|
Packit |
577717 |
which does not provide the required behaviour in 64-bit kernels or
|
|
Packit |
577717 |
older 32-bit kernels. As a result bogus data could be input to the
|
|
Packit |
577717 |
hyper-thread detection code, leading to various failures.
|
|
Packit |
577717 |
- A change in the 2.6.16 32-bit x86 kernel caused a compilation error
|
|
Packit |
577717 |
when CONFIG_PERFCTR_INIT_TESTS was enabled. Fixed this.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.9-34.0.1 (RHEL4), 2.6.17-rc5, and
|
|
Packit |
577717 |
2.4.33-pre3.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.21, 2006-04-03
|
|
Packit |
577717 |
- Updated kernel support: 2.4.21-40.EL (RHEL3), 2.6.16, and
|
|
Packit |
577717 |
2.6.17-rc1.
|
|
Packit |
577717 |
- Updates for internal changes in kernels 2.6.16 and 2.6.17-rc1.
|
|
Packit |
577717 |
- Corrected a mistake in perfctr-2.6.20 which caused compilation
|
|
Packit |
577717 |
errors with RHEL3 kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.20, 2006-03-12
|
|
Packit |
577717 |
- Updated kernel support: 2.6.9-34 (RHEL4), 2.6.16-rc6, and
|
|
Packit |
577717 |
2.4.33-pre2.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.19, 2006-01-22
|
|
Packit |
577717 |
- Updated ppc32 driver for ppc32/ppc64 kernel merging changes
|
|
Packit |
577717 |
in the 2.6.16-rc1 kernel. The driver now dynamically claims
|
|
Packit |
577717 |
and release the hardware, allowing it to coexist with other
|
|
Packit |
577717 |
PMU drivers such as oprofile.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.16-rc1, 2.6.9-22.0.2 (RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.18, 2006-01-03
|
|
Packit |
577717 |
- Added perfctr_get_info() library API procedure, which allows
|
|
Packit |
577717 |
users to acquire information about the system without needing
|
|
Packit |
577717 |
a handle to an open perfctr (per-process or global) state.
|
|
Packit |
577717 |
- Rearranged structure marshalling descriptor declarations to
|
|
Packit |
577717 |
increase code sharing for all supported architectures.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.15, 2.6.14, 2.6.9-22.0.1 (RHEL4),
|
|
Packit |
577717 |
2.6.5-7.201 (SuSE), 2.4.33-pre1, 2.4.32.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.17, 2005-10-02
|
|
Packit |
577717 |
- The x86 kernel driver has been updated to work correctly
|
|
Packit |
577717 |
on dual-core P4 processors. Previous versions would fail
|
|
Packit |
577717 |
during CPU detection (on HT DC P4s) or would erroneously
|
|
Packit |
577717 |
restrict access for one of the cores (non-HT DC P4s).
|
|
Packit |
577717 |
- Updated kernel support: 2.4.21-37.EL (RHEL3), 2.4.32-rc1,
|
|
Packit |
577717 |
and 2.6.14-rc3.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.16, 2005-09-04
|
|
Packit |
577717 |
- The ppc32 driver will now compile in kernels that lack Open
|
|
Packit |
577717 |
Firmware support, which is needed for some embedded systems.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.9-11.EL (RHEL4), 2.4.21-32.0.1.EL
|
|
Packit |
577717 |
(RHEL3), 2.6.12, 2.6.13, 2.4.31, and 2.4.32-pre3.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.15, 2005-05-06
|
|
Packit |
577717 |
- Preliminary code in the x86/x86-64 low-level driver to detect
|
|
Packit |
577717 |
multicore AMD K8 processors, and to prevent resource conflicts
|
|
Packit |
577717 |
and an erratum related to northbridge events. On multicore K8s,
|
|
Packit |
577717 |
northbridge events are only allowed when using the global-mode
|
|
Packit |
577717 |
counters API.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.9-5.0.5.EL (RHEL4), 2.4.21-27.0.4.EL
|
|
Packit |
577717 |
(RHEL3), 2.4.31-pre1, and 2.6.12-rc3.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.14, 2005-04-09
|
|
Packit |
577717 |
- Changed vperfctr_open() so that if the thread already has
|
|
Packit |
577717 |
an attached perfctr state, then the call fails with EEXIST.
|
|
Packit |
577717 |
This allows self-monitoring code to detect if it is under
|
|
Packit |
577717 |
the control of an external monitoring agent, before it
|
|
Packit |
577717 |
changes the counters' control setup.
|
|
Packit |
577717 |
- Reverted the workaround in perfctr-2.6.13 for the problem
|
|
Packit |
577717 |
that gcc-4.0 snapshots broke the x86/x86-64 low-level driver,
|
|
Packit |
577717 |
as recent gcc-4.0 prereleases seem to work correctly.
|
|
Packit |
577717 |
- Updated kernel support: 2.4.30, 2.6.12-rc2, and 2.6.9-5.0.3
|
|
Packit |
577717 |
(RHEL4).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.13, 2005-02-13
|
|
Packit |
577717 |
- Changed the global-mode counters to allow user-space to
|
|
Packit |
577717 |
disable the in-kernel sampling timer and to move the sampling
|
|
Packit |
577717 |
points into the read system calls. This may improve sampling
|
|
Packit |
577717 |
precision in some scenarios.
|
|
Packit |
577717 |
- gcc-4.0 snapshots broke the x86/x86-64 low-level driver.
|
|
Packit |
577717 |
Changed the driver to prevent those problems.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.11-rc4, 2.4.30-pre1, and
|
|
Packit |
577717 |
2.4.21-27.0.2 (RHEL3).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.12, 2004-12-19
|
|
Packit |
577717 |
- PPC32 driver updated to be more robust in its detection of
|
|
Packit |
577717 |
timebase and core clock frequencies. Some information sources
|
|
Packit |
577717 |
can give wrong values for those frequencies, so the driver
|
|
Packit |
577717 |
now tries other more reliable methods first.
|
|
Packit |
577717 |
- On x86/x86-64, perfctr_event_codes.h now includes P4 events.
|
|
Packit |
577717 |
- On x86-64 libraries will now be installed in PREFIX/lib64/,
|
|
Packit |
577717 |
as per current standards, unless overridden by LIBDIR.
|
|
Packit |
577717 |
- Perfex had a bug in which it interpreted all numbers as hex,
|
|
Packit |
577717 |
even those without "0x" prefixes. Perfex now emits warnings
|
|
Packit |
577717 |
for ambiguous numbers. To silence the warnings, (a) prefix
|
|
Packit |
577717 |
hex numbers with "0x" (preferred), or (b) use the "-d" option
|
|
Packit |
577717 |
to enable decimal numbers, which requires "0x" prefixes on
|
|
Packit |
577717 |
hex numbers, or (c) use the "-x" option to force all numbers
|
|
Packit |
577717 |
to be interpreted as hex (deprecated). The "-d" option should
|
|
Packit |
577717 |
be the default, but unfortunately that would break user-level
|
|
Packit |
577717 |
scripts that assumed that "0x"-less numbers are still hex.
|
|
Packit |
577717 |
- Changes in examples/signal/ to handle glibc-2.3.3 on PPC32.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.11, 2004-11-14
|
|
Packit |
577717 |
- Workarounds for a hardware quirk on x86 and x86-64, where
|
|
Packit |
577717 |
interrupts can be delivered some time after the counters have
|
|
Packit |
577717 |
been stopped. Due to scheduling, an interrupt could be taken
|
|
Packit |
577717 |
in the context of an unrelated process, which would prematurely
|
|
Packit |
577717 |
terminate interrupt reporting for the original process.
|
|
Packit |
577717 |
- Fixed a bug in the x86 and x86-64 kernels where the context-switch
|
|
Packit |
577717 |
path suspended the previous process' performance counters too late.
|
|
Packit |
577717 |
This could allow an overflow interrupt to be taken in the context
|
|
Packit |
577717 |
of an unrelated process, with effects similar to the hardware quirk
|
|
Packit |
577717 |
described above.
|
|
Packit |
577717 |
- PPC32 updates: Enable overflow interrupts on all G4 processors
|
|
Packit |
577717 |
starting with the 7410 Rev 1.3, and all IBM G3 processors starting
|
|
Packit |
577717 |
with the 750FX DD2.3. Add support for MPC7447A and MPC7448.
|
|
Packit |
577717 |
- Removed patches for obsolete kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.10.3, 2004-10-24
|
|
Packit |
577717 |
- Driver modifications to handle two significant changes in
|
|
Packit |
577717 |
the 2.6.10-rc1 kernel.
|
|
Packit |
577717 |
- PPC32: added MPC7447A and MPC7448 support.
|
|
Packit |
577717 |
- Cleanups to bring the driver closer to the development version.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.10.2, 2004-10-19
|
|
Packit |
577717 |
- Updated kernel support: 2.6.9, 2.4.28-pre4.
|
|
Packit |
577717 |
- Corrected the PPC32 driver's handling of MMCR0 changes due
|
|
Packit |
577717 |
to use of the FCECE or TRIGGER control flags.
|
|
Packit |
577717 |
- Fixed a synchronisation error in the interface between
|
|
Packit |
577717 |
the per-process counters driver and the low-level drivers.
|
|
Packit |
577717 |
The error triggered warnings in DEBUG_SPINLOCK_SLEEP-
|
|
Packit |
577717 |
enabled kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.10.1, 2004-09-18
|
|
Packit |
577717 |
- Fixed a problem causing an incomplete "wrapper" file to be
|
|
Packit |
577717 |
installed as /usr/include/asm/perfctr.h on x86_64 systems.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.10, 2004-09-14
|
|
Packit |
577717 |
- Eliminated a potential kernel crash on P4 model 3 Prescott
|
|
Packit |
577717 |
processors, due to the driver initialising two control
|
|
Packit |
577717 |
registers that have been removed from P4M3. The P4M3 Nocona
|
|
Packit |
577717 |
does not appear to have been affected by this error.
|
|
Packit |
577717 |
- Fixed install procedure to not fail to install the shared
|
|
Packit |
577717 |
library's symbolic links when updating an older installation.
|
|
Packit |
577717 |
- Updated kernel support: 2.4.21-20 (RHEL3), 2.4.28-pre3, 2.6.9-rc2.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.10-pre1, 2004-08-03
|
|
Packit |
577717 |
- x86-64 now uses the same driver and data structures as x86.
|
|
Packit |
577717 |
Intel's 64-bit P4 Xeon should work in the x86-64 kernel.
|
|
Packit |
577717 |
x86-64 application-level data structures have changed.
|
|
Packit |
577717 |
- Updated library and example applications to include P4
|
|
Packit |
577717 |
support on x86-64.
|
|
Packit |
577717 |
- Fixed update-kernel script to use 'head' in a POSIX
|
|
Packit |
577717 |
compliant way.
|
|
Packit |
577717 |
- Added kernel support for the Model 13 Pentium-M.
|
|
Packit |
577717 |
- Many code cleanups in the x86 driver.
|
|
Packit |
577717 |
- Event 0x76 is now officially CPU_CLK_UNHALTED on AMD64.
|
|
Packit |
577717 |
- Updated kernel support: 2.4.27-rc4.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.9, 2004-07-27
|
|
Packit |
577717 |
- Updated kernel support: 2.4.27-rc3, 2.6.7, 2.6.8-rc2,
|
|
Packit |
577717 |
2.4.21-15.0.3 (RHEL3), 2.6.5-7.95 (SuSE).
|
|
Packit |
577717 |
- x86: enforce -fno-unit-at-a-time with gcc-3.4, to prevent
|
|
Packit |
577717 |
kernel crashes due to stack overflow in 2.6 kernels < 2.6.6.
|
|
Packit |
577717 |
- x86: do sync_core() before rdtsc() in the internal micro-
|
|
Packit |
577717 |
benchmarking code, to avoid bogus data on K8 processors.
|
|
Packit |
577717 |
- x86: prevent stray WRMSR at driver init time, which could
|
|
Packit |
577717 |
disable the NMI watchdog or Oprofile.
|
|
Packit |
577717 |
- x86: prevent inlining from breaking code backpatching mechanism.
|
|
Packit |
577717 |
- x86: fix CONFIG_X86_LOCAL_APIC=n linkage error in init tests.
|
|
Packit |
577717 |
- PPC32: fix to allow 7400/7410 to specify MMCR2[THRESHMULT].
|
|
Packit |
577717 |
- PPC32: add support for generic processors using only the
|
|
Packit |
577717 |
timebase register for high-resolution time measurements.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.8, 2004-05-29
|
|
Packit |
577717 |
- Added support for the IBM PowerPC 750GX processor.
|
|
Packit |
577717 |
- Updated kernel support: 2.4.27-pre3, 2.6.7-rc1, 2.6.7-rc1-mm1,
|
|
Packit |
577717 |
2.4.21-15.EL (RHEL3), 2.6.5-1.358 (FC2).
|
|
Packit |
577717 |
- Fixed an error in the 2.4.21-193 SuSE kernel patch file which
|
|
Packit |
577717 |
broke compilation on x86-64.
|
|
Packit |
577717 |
- Perfctr and Oprofile can now coexist safely in newer kernels,
|
|
Packit |
577717 |
thanks to changes in kernel 2.6.6. Backported support for
|
|
Packit |
577717 |
those changes from perfctr-2.7.1.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.7, 2004-05-04
|
|
Packit |
577717 |
- Merged several x86_64-specific driver files with their x86
|
|
Packit |
577717 |
counterparts, reducing the amount of duplicated code.
|
|
Packit |
577717 |
- Added textual descriptions to the library's P6 event sets.
|
|
Packit |
577717 |
From Bryan O'Sullivan.
|
|
Packit |
577717 |
- Changed examples/signal/signal to count retired instructions
|
|
Packit |
577717 |
instead of retired micro-operations on AMD K7. Needed to avoid
|
|
Packit |
577717 |
a loop with the same instruction overflowing indefinitely.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.6-rc3, 2.4.27-pre1, 2.4.22-1.2188.nptl
|
|
Packit |
577717 |
(FC1), 2.4.21-9.0.1 (RHEL3), 2.4.20-31.9 (RH9).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.6, 2004-02-21
|
|
Packit |
577717 |
- Pentium-M has an undocumented local APIC quirk which can stop
|
|
Packit |
577717 |
perfctr interrupt delivery. Added workaround to prevent this.
|
|
Packit |
577717 |
- Fixed a bug in x86-64's perfctr interrupt entry code in 2.4 kernels.
|
|
Packit |
577717 |
Luckily, the bug turned out to be harmless (a bogus "rip" value was
|
|
Packit |
577717 |
retrieved, but never used by the higher-level interrupt handler).
|
|
Packit |
577717 |
- Added support for Pentium 4 Model 3 processors, which have slight
|
|
Packit |
577717 |
event set changes from earlier models.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.3, 2.4.25, 2.4.22-1.2174.nptl (FC1),
|
|
Packit |
577717 |
2.4.20-30.9 (RH9), and 2.4.21-193 (SuSE). Removed support for some
|
|
Packit |
577717 |
obsolete FC1 and RH update kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.5, 2004-01-26
|
|
Packit |
577717 |
- Relaxed and corrected control checks on Pentium 4:
|
|
Packit |
577717 |
* Allow ESCR.CPL_T1 to be non-zero when using global-mode
|
|
Packit |
577717 |
counters on HT processors.
|
|
Packit |
577717 |
* Don't require ESCR.CPL_T0 to be non-zero. CPL_T0==0b00
|
|
Packit |
577717 |
is safe and potentially useful (global counters on HT).
|
|
Packit |
577717 |
* Require CCCR.ACTIVE_THREAD==0b11 on non-HT processors, as
|
|
Packit |
577717 |
documented in the IA32 Volume 3 manual. Old non-HT P4s
|
|
Packit |
577717 |
seem to work Ok for all four values, but this is neither
|
|
Packit |
577717 |
guaranteed nor useful.
|
|
Packit |
577717 |
- Per-process counters driver updated for filp->f_mapping
|
|
Packit |
577717 |
change in 2.6.2-rc kernels.
|
|
Packit |
577717 |
- Support 2.4.21-9.EL (RHEL3) and 2.4.22-1.2149.nptl (FC1) kernels.
|
|
Packit |
577717 |
- Library updates for PowerPC:
|
|
Packit |
577717 |
* Added cpu_type constants for struct perfctr_info.
|
|
Packit |
577717 |
* Decode PVR and define perfctr_info.cpu_type accordingly.
|
|
Packit |
577717 |
* Added event set descriptions for 604/604e/750.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.4, 2004-01-12
|
|
Packit |
577717 |
- Added support for PowerPC 604/7xx/74xx processors.
|
|
Packit |
577717 |
* Overflow interrupts are not yet supported due to a hardware
|
|
Packit |
577717 |
erratum affecting many 7xx and early 74xx processors.
|
|
Packit |
577717 |
* The user-space components support PowerPC, but CPU detection
|
|
Packit |
577717 |
and event set descriptions are not yet implemented.
|
|
Packit |
577717 |
* Supported in 2.6.1 and 2.4.23 and newer 2.4 kernels.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.1, 2.4.25-pre4, 2.4.22-1.2140.nptl
|
|
Packit |
577717 |
(FC1 update), 2.4.21-4.0.2.EL (RHEL update), and 2.4.20-28.x
|
|
Packit |
577717 |
(RH 7.x/8.0/9 update).
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.3-pl1, 2004-01-01
|
|
Packit |
577717 |
- Updated kernel support: 2.6.1-rc1, 2.4.24-pre3,
|
|
Packit |
577717 |
2.4.22-1.2135.nptl (FC1 update), 2.4.21-6.EL (RHEL Taroon
|
|
Packit |
577717 |
beta update), and 2.4.20-27.x (RH 7.x/8.0/9 update).
|
|
Packit |
577717 |
- Moved the x86 performance counter interrupt handler code
|
|
Packit |
577717 |
from the driver source to the kernel, via the patch kit.
|
|
Packit |
577717 |
Needed to cope with changes in RedHat's 2.4.21-6.EL kernel.
|
|
Packit |
577717 |
This change only affects 2.4.21 and later 2.4 kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.3, 2003-12-21
|
|
Packit |
577717 |
- Fixed a bug where a read of the global-mode counters could
|
|
Packit |
577717 |
fail with EOVERFLOW due to an incorrect structure descriptor.
|
|
Packit |
577717 |
The bug only existed in perfctr-2.6.2.
|
|
Packit |
577717 |
(Thanks to Pavel Machek for reporting this problem.)
|
|
Packit |
577717 |
- AMD64 IA32 emulation code cleaned up for kernel 2.4.23.
|
|
Packit |
577717 |
- Updated kernel support: 2.6.0, 2.4.24-pre1, 2.4.23,
|
|
Packit |
577717 |
2.4.22-1.2129.nptl (FC1 update), 2.4.21-1.1931.2.393.ent
|
|
Packit |
577717 |
(RHEL Taroon beta), and 2.4.20-24 (RH 7.x/8/9 update).
|
|
Packit |
577717 |
- User-space package rpm spec file fixes:
|
|
Packit |
577717 |
* Don't remove /dev/perfctr on package uninstall.
|
|
Packit |
577717 |
* Don't add alias to /etc/modules.conf if it's already there.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.2, 2003-11-23
|
|
Packit |
577717 |
- libperfctr.so is now installed with proper versioning.
|
|
Packit |
577717 |
- ABI control and info structures padded to accommodate some
|
|
Packit |
577717 |
extensions without breaking application/library binary
|
|
Packit |
577717 |
compatibility. ABI version incremented to '5'.
|
|
Packit |
577717 |
- Driver checks that only P4 models <= 2 use IQ_ESCR0/1.
|
|
Packit |
577717 |
- Added support for Fedora Core 1's 2.4.22-1.2115.nptl kernel.
|
|
Packit |
577717 |
- Driver compile fix for AMD64 in SMP 2.6 kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.1, 2003-10-05
|
|
Packit |
577717 |
- Opening a process' virtual perfctrs is now done via
|
|
Packit |
577717 |
/dev/perfctr instead of /proc/<pid>/perfctr. This is needed
|
|
Packit |
577717 |
due to the changed semantics for /proc/self and /proc/<pid>/
|
|
Packit |
577717 |
in kernel 2.6.0-test6. User-space is not affected since the
|
|
Packit |
577717 |
perfctr-2.6 API and user-space library was prepared for
|
|
Packit |
577717 |
this access method change.
|
|
Packit |
577717 |
User-space code monitoring other processes should use
|
|
Packit |
577717 |
gettid() to identify tasks in 2.6 kernels, since getpid()
|
|
Packit |
577717 |
does the wrong thing for process threads.
|
|
Packit |
577717 |
- Driver cleanups from obsoleting 2.4.15 and older kernels.
|
|
Packit |
577717 |
- Made examples/global/global.c more robust.
|
|
Packit |
577717 |
- Simplified usage with 2.6 kernels: it's no longer necessary
|
|
Packit |
577717 |
to add an 'alias' declaration in /etc/modprobe.conf.
|
|
Packit |
577717 |
- Added support for AMD K8 Revision C processors.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.0, 2003-09-08
|
|
Packit |
577717 |
- The driver now kills a process' performance counters if the
|
|
Packit |
577717 |
process migrates to a forbidden CPU. This ensures that unsafe
|
|
Packit |
577717 |
changes to a process' CPU affinity mask don't break the driver,
|
|
Packit |
577717 |
the hardware state, or other processes. (This is an issue on
|
|
Packit |
577717 |
hyper-threaded P4s only.)
|
|
Packit |
577717 |
- A bug fix in perfctr-2.6.0-pre3 broke compiling the driver
|
|
Packit |
577717 |
non-modular in modular 2.4 kernels. Corrected that problem.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.0-pre5, 2003-08-31
|
|
Packit |
577717 |
- Disabled driver debug code which could printk() in the kernel's
|
|
Packit |
577717 |
context-switch path, as that is disallowed.
|
|
Packit |
577717 |
- 2.4.16 is now the oldest supported kernel.
|
|
Packit |
577717 |
- Compilation fixes for driver's ia32 emulation code on x86-64.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.0-pre4, 2003-08-19
|
|
Packit |
577717 |
- Kernel/user-space API switched to a new "sparse marshalling"
|
|
Packit |
577717 |
mechanism, which supports x86 application code on x86-64,
|
|
Packit |
577717 |
and API struct extensions w/o breaking binary compatibility.
|
|
Packit |
577717 |
- Prepared the library for the future non-/proc/pid/perfctr API.
|
|
Packit |
577717 |
- Fixed a bug in the per-process perfctr creation code. The
|
|
Packit |
577717 |
remote-control interface was racy in preemptible kernels.
|
|
Packit |
577717 |
- Fixed a bug in the process exit code for preemptible kernels.
|
|
Packit |
577717 |
- Changes to handle 2.6 kernels with the cpumask_t patch (-mm, -osdl):
|
|
Packit |
577717 |
* Driver converted to use cpumask_t API, with compatibility wrapper
|
|
Packit |
577717 |
for cpumask_t-free kernels.
|
|
Packit |
577717 |
* API change: removed the cpus and cpus_forbidden sets from the
|
|
Packit |
577717 |
perfctr_info struct, added new data type and commands for retrieving
|
|
Packit |
577717 |
these sets. (cpumask_t values cannot be exported as-is since their
|
|
Packit |
577717 |
sizes depend on kernel configuration, and the type definition uses
|
|
Packit |
577717 |
'long' which breaks 32/64-bit binary compatibility.)
|
|
Packit |
577717 |
* Updated library and example programs for the API change.
|
|
Packit |
577717 |
- Fixed a dependency bug in the library Makefile.
|
|
Packit |
577717 |
- Added support for VIA C3 Antaur/Nehemiah processors.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.0-pre3, 2003-08-03
|
|
Packit |
577717 |
- Replaced 'long' by 'int' in the API structures to eliminate
|
|
Packit |
577717 |
unnecessary ABI incompatibilities between x86 and x86-64.
|
|
Packit |
577717 |
- Simplified global-mode perfctrs API: the write-control and
|
|
Packit |
577717 |
read-state commands now operate on a single CPU instead of on
|
|
Packit |
577717 |
a set of CPUs. Added a new start command to start the counters.
|
|
Packit |
577717 |
- Added thin library wrappers for per-process perfctr kernel calls.
|
|
Packit |
577717 |
Cleaned up examples/perfex and the library itself.
|
|
Packit |
577717 |
- Removed the requirement that CCCR.ACTIVE_THREAD == 3 on P4.
|
|
Packit |
577717 |
- Extended cascading should now work on Pentium 4 Model 2 processors.
|
|
Packit |
577717 |
- Fixed a bug where the perfctr module's refcount could be zero with
|
|
Packit |
577717 |
code still running in the module. This could race with rmmod in
|
|
Packit |
577717 |
preemptive kernels, and in theory also in SMP kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.0-pre2, 2003-07-13
|
|
Packit |
577717 |
- Per-process perfctrs API fixes: control data is retrieved using
|
|
Packit |
577717 |
new READ_CONTROL operation, mmap()ed state no longer exposes the
|
|
Packit |
577717 |
control data, the SAMPLE operation is renamed to READ_SUM and
|
|
Packit |
577717 |
now updates a given user-space buffer, non-write operations are
|
|
Packit |
577717 |
permitted on dead perfctrs.
|
|
Packit |
577717 |
Retrieving control explicitly makes the user-visible mmap()ed
|
|
Packit |
577717 |
state binary compatible between x86 and x86-64. The other changes
|
|
Packit |
577717 |
simplify the user-space library and allow perfex to replace raw
|
|
Packit |
577717 |
mmap() accesses with higher-level operations.
|
|
Packit |
577717 |
- Driver cleanups, including eliminating many #ifdefs and
|
|
Packit |
577717 |
removing some unnecessary P4-specific driver procedures.
|
|
Packit |
577717 |
- Fixes for macro redefinition warnings in the 2.4.22-pre3 kernel.
|
|
Packit |
577717 |
- Perfctr library RPM spec file updates from Bryan O'Sullivan.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.6.0-pre1, 2003-07-02
|
|
Packit |
577717 |
- Rearranged the data structure holding the counter state to
|
|
Packit |
577717 |
reduce the number of caches lines needed to be touched at key
|
|
Packit |
577717 |
operations. The new representation is also binary compatible
|
|
Packit |
577717 |
between x86 and x86-64, which matters since user-space mmaps() it.
|
|
Packit |
577717 |
- Added RPM spec file for the library. (From Bryan O'Sullivan).
|
|
Packit |
577717 |
- Patch kit updated for kernels 2.4.22-pre2 and 2.5.73.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.5.5, 2003-06-15
|
|
Packit |
577717 |
- Updates for driver model changes in kernel 2.5.71.
|
|
Packit |
577717 |
- Minor updates to the library's event descriptions for Pentium 4.
|
|
Packit |
577717 |
- Now supports SuSE's 2.4.19.SuSE-206 kernel for SLES 8 users.
|
|
Packit |
577717 |
Autodetection of SuSE kernel versions is not yet implemented:
|
|
Packit |
577717 |
pass "--patch=2.4.19.SuSE-206" to perfctr's update-kernel script
|
|
Packit |
577717 |
to ensure that the correct patch is applied.
|
|
Packit |
577717 |
- Patch kit updates for 2.4.21 final and 2.4.20-18 RH kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.5.4, 2003-06-01
|
|
Packit |
577717 |
- Corrected the driver's handling of OVF_PMI+FORCE_OVF counters
|
|
Packit |
577717 |
on Pentium 4. This configuration didn't work at all, and
|
|
Packit |
577717 |
lead to various BUG messages from the driver.
|
|
Packit |
577717 |
These restrictions apply to OVF_PMI+FORCE_OVF counters:
|
|
Packit |
577717 |
* The ireset value must be -1.
|
|
Packit |
577717 |
* Once the counter has interrupted once, it will continue
|
|
Packit |
577717 |
to interrupt when the faulting instruction is restarted,
|
|
Packit |
577717 |
causing it to never complete. This problem also occurs
|
|
Packit |
577717 |
for non-FORCE_OVF interrupt-mode counters if the ireset
|
|
Packit |
577717 |
value is of too small magnitude, like -1.
|
|
Packit |
577717 |
This appears to be a P4 hardware quirk. Don't restart
|
|
Packit |
577717 |
FORCE_OVF interrupt-mode counters, and don't use ireset
|
|
Packit |
577717 |
values too small to allow instructions to complete.
|
|
Packit |
577717 |
- Updated library's K8 event descriptions to match current
|
|
Packit |
577717 |
documentation. Corrected several omissions and errors.
|
|
Packit |
577717 |
- Patch kit updated for kernels 2.5.70 and 2.4.21-rc6.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.5.3.1, 2003-05-21
|
|
Packit |
577717 |
- Patch kit updated for recent RedHat 6.2/7.x/8.0/9 update kernels
|
|
Packit |
577717 |
(2.2.24-{6.2.3,7.0.3} and 2.4.20-13.{7,8,9}).
|
|
Packit |
577717 |
- Fixed a driver compile warning which occurred when the driver
|
|
Packit |
577717 |
is built as a module in 2.4 SMP kernels using module versions.
|
|
Packit |
577717 |
- x86-64 now uses 'long long' for 64-bit sums, like x86. This
|
|
Packit |
577717 |
reduces x86 and x86-64 user-space source code incompatibility.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.5.3, 2003-05-16
|
|
Packit |
577717 |
- Added support for the Pentium M processor. It is mostly like
|
|
Packit |
577717 |
a Pentium III with some more events, except that six old
|
|
Packit |
577717 |
Pentium III / Pentium Pro events have been redefined.
|
|
Packit |
577717 |
- Added support for K8 in 64-bit mode (the x86_64 kernel arch).
|
|
Packit |
577717 |
Updated driver, user-space library, and example programs.
|
|
Packit |
577717 |
The shared library libperfctr.so is now compiled with -fPIC.
|
|
Packit |
577717 |
- K8 bug fix in examples/signal/signal.c: a missing INT flag
|
|
Packit |
577717 |
caused the driver to reject the control setup.
|
|
Packit |
577717 |
- P4 event descriptions updated from recent documentation changes.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.5.2, 2003-04-13
|
|
Packit |
577717 |
- Updated power management code for the local APIC and NMI
|
|
Packit |
577717 |
watchdog driver model changes in kernel 2.5.67.
|
|
Packit |
577717 |
- Timer-based sampling of per-process performance counters is
|
|
Packit |
577717 |
now always enabled: previously it was only done on SMP.
|
|
Packit |
577717 |
Needed to avoid counter inaccuracies on high core-clock CPUs.
|
|
Packit |
577717 |
- Fixes to user-space library implementation of remote-control
|
|
Packit |
577717 |
virtual performance counters: open() failed due to a missing
|
|
Packit |
577717 |
return; avoid potential buffer overflow error; fix the "read
|
|
Packit |
577717 |
counters" procedure for the case where the remote process is
|
|
Packit |
577717 |
sampling the time-stamp counter but no performance counters.
|
|
Packit |
577717 |
- Added support for RedHat 9's 2.4.20-8 and 2.4.20-9 kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.5.1, 2003-03-23
|
|
Packit |
577717 |
- Fixed initialisation on hyper-threading capable P4s in
|
|
Packit |
577717 |
SMP kernels older than 2.4.15 to not signal an error if
|
|
Packit |
577717 |
hyper-threading is disabled: in this case the absence of
|
|
Packit |
577717 |
working set_cpus_allowed() support is not a problem.
|
|
Packit |
577717 |
- Fixed two compilation errors in the set_cpus_allowed()
|
|
Packit |
577717 |
emulation affecting old 2.4 kernels configured for SMP.
|
|
Packit |
577717 |
- INSTALL file updates.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.5.0, 2003-03-10
|
|
Packit |
577717 |
- Added a simple user-space library API for accessing other
|
|
Packit |
577717 |
processes' virtual performance counters. This uses a new
|
|
Packit |
577717 |
type and a new set of operations since remote access has
|
|
Packit |
577717 |
different requirements than accessing one's own counters.
|
|
Packit |
577717 |
Following Mike Marty's suggestion, I left out the process
|
|
Packit |
577717 |
control calls needed around these operations (ptrace() and
|
|
Packit |
577717 |
wait()), so applications must handle that themselves.
|
|
Packit |
577717 |
- Added 'make install' support for the user-space components.
|
|
Packit |
577717 |
- Driver API cleanups. The 'eventsel_aux[]' array in 'struct
|
|
Packit |
577717 |
perfctr_cpu_control' has been renamed as 'escr[]' and has been
|
|
Packit |
577717 |
moved into the 'p4' sub-structure. (The change highlights the
|
|
Packit |
577717 |
fact that this field was and is P4-only.) The 'version[]' string
|
|
Packit |
577717 |
in 'struct perfctr_info' has been renamed to 'driver_version[]',
|
|
Packit |
577717 |
since perfctr_info now also contains an 'abi_version' field.
|
|
Packit |
577717 |
Some changes in the driver ABI: while not strictly necessary,
|
|
Packit |
577717 |
they clean things up and make room for future changes. The ABI
|
|
Packit |
577717 |
changed anyway from perfctr-2.4, so this shouldn't be a problem.
|
|
Packit |
577717 |
- Added a perfctr_cpu_control_print() procedure to the library,
|
|
Packit |
577717 |
and updated the example programs to use it.
|
|
Packit |
577717 |
- Updated the perfex example program's help text to describe the
|
|
Packit |
577717 |
syntax and meaning of event specifiers.
|
|
Packit |
577717 |
- Patch kit updates for 2.2.24/2.4.18-26(RedHat)/2.5.64 kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.5.0-pre2, 2003-03-03
|
|
Packit |
577717 |
- Added a way for user-space to query the driver's ABI version,
|
|
Packit |
577717 |
and updated the library to check it.
|
|
Packit |
577717 |
- Fixed <linux/perfctr.h> to not include <asm/perfctr.h> when
|
|
Packit |
577717 |
perfctr hasn't been configured. This allows the patched kernel
|
|
Packit |
577717 |
source to compile cleanly also in archs not supported by perfctr.
|
|
Packit |
577717 |
- Major patch kit overhaul. Updated configuration help texts.
|
|
Packit |
577717 |
Removed unnecessary features and patches. Some cleanups. Added
|
|
Packit |
577717 |
aliasing support to the 'update-kernel' script, which allows a
|
|
Packit |
577717 |
patch to serve several kernels (when applicable).
|
|
Packit |
577717 |
- The perfctr configuration option was poorly placed. It is now
|
|
Packit |
577717 |
at the end of the "Processor type and features" menu.
|
|
Packit |
577717 |
- Removed "notsc" kernel option support from the 2.2 kernel patches.
|
|
Packit |
577717 |
To use the driver with an IDT WinChip (Centaur C6/2/3) CPU now
|
|
Packit |
577717 |
requires a newer kernel with native "notsc" support.
|
|
Packit |
577717 |
- Driver fixes for changes in the 2.4.21-pre5 and 2.5.63 kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.5.0-pre1, 2003-02-19
|
|
Packit |
577717 |
- Fixed the driver's API to support global-mode perfctrs on 2.5
|
|
Packit |
577717 |
SMP kernels and asymmetric hyper-threaded P4 multiprocessors.
|
|
Packit |
577717 |
Updated examples/global/global.c for the new API.
|
|
Packit |
577717 |
- Minor library cleanups. Updated example programs accordingly.
|
|
Packit |
577717 |
- API cleanup: Removed obsolete STOP command from the driver
|
|
Packit |
577717 |
for virtual perfctrs. The library now uses CONTROL instead.
|
|
Packit |
577717 |
- Proper detection and support for AMD K8 processors. They are
|
|
Packit |
577717 |
similar to the K7s, but the event sets are not identical.
|
|
Packit |
577717 |
- The library's event set descriptions have been redesigned and
|
|
Packit |
577717 |
expanded to include unit mask descriptions and descriptions of
|
|
Packit |
577717 |
Intel P4 and AMD K8 events. The etc/perfctr-events.tab text file
|
|
Packit |
577717 |
has been removed since event_codes.h now is generated from the
|
|
Packit |
577717 |
library's data structures.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.4.5, 2003-02-09
|
|
Packit |
577717 |
- Corrected the unit mask definition for the K7 SYSTEM_REQUEST_TYPE
|
|
Packit |
577717 |
event in etc/perfctr-events.tab: WC is 0x02 not 0x04.
|
|
Packit |
577717 |
- Fixed two compile warnings which could be triggered in 2.5 kernels.
|
|
Packit |
577717 |
- Patch kit updates for 2.4.21-pre4/2.4.18-24(RedHat)/2.5.59-osdl2 kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.4.4, 2003-01-18
|
|
Packit |
577717 |
- Fixed a context-switch bug where an interrupt-mode counter could
|
|
Packit |
577717 |
increment unexpectedly, and also miss the overflow interrupt.
|
|
Packit |
577717 |
- Fixed some ugly log messages the new HT P4 support code added
|
|
Packit |
577717 |
in perfctr-2.4.3 could generate at driver initialisation time.
|
|
Packit |
577717 |
- Added preliminary support for AMD K8 processors with the
|
|
Packit |
577717 |
regular 32-bit x86 kernel. The K8 performance counters appear
|
|
Packit |
577717 |
to be identical or very similar to the K7 performance counters.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.4.3, 2002-12-11
|
|
Packit |
577717 |
- Support for hyper-threaded Pentium 4s added. In a HT P4, the
|
|
Packit |
577717 |
two logical processors share the performance counter state.
|
|
Packit |
577717 |
HT P4s are therefore _asymmetric_ multi-processors, and the
|
|
Packit |
577717 |
driver enforces CPU affinity masks on users of per-process
|
|
Packit |
577717 |
performance counters to avoid resource conflicts. (Users are
|
|
Packit |
577717 |
restricted to logical processor #0 in each physical CPU.)
|
|
Packit |
577717 |
Limitations:
|
|
Packit |
577717 |
* The kernel mechanism for updating a process' CPU affinity
|
|
Packit |
577717 |
mask uses no or very weak locking, which makes certain race
|
|
Packit |
577717 |
conditions possible that can break the driver's CPU affinity
|
|
Packit |
577717 |
mask restrictions. For now, users should NOT use the
|
|
Packit |
577717 |
sched_setaffinity() system call on processes using per-process
|
|
Packit |
577717 |
performance counters.
|
|
Packit |
577717 |
* Global-mode performance counters don't work on HT P4s due to
|
|
Packit |
577717 |
limitations in the API. This will be fixed in perfctr-2.5.
|
|
Packit |
577717 |
* 2.2 kernels don't have CPU affinity masks, and therefore can't
|
|
Packit |
577717 |
support HT P4s.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.4.2, 2002-11-25
|
|
Packit |
577717 |
- Fixed a driver bug where it could fail to prevent simultaneous
|
|
Packit |
577717 |
use of global-mode and per-process performance counters.
|
|
Packit |
577717 |
- Made the driver safe for preemptible 2.5 kernels.
|
|
Packit |
577717 |
- New patches for RedHat update kernels 2.2.22-6.2.2, 2.2.22-7.0.2,
|
|
Packit |
577717 |
2.4.18-18.7.x, and 2.4.18-18.8.0.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.4.1, 2002-10-12
|
|
Packit |
577717 |
- Support RedHat 8.0's 2.4.18-14 kernel. Building perfctr as
|
|
Packit |
577717 |
a module caused a namespace clash in this kernel. The fix
|
|
Packit |
577717 |
required a change to the driver's kernel-resident glue code.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.4.0, 2002-09-26
|
|
Packit |
577717 |
- Fixed an overly strict access control check which prevented
|
|
Packit |
577717 |
opening another process' /proc/<pid>/perfctr when the driver
|
|
Packit |
577717 |
was built as a module.
|
|
Packit |
577717 |
- Updates for kernels 2.2.22, 2.4.18-10-redhat, 2.4.20-pre8, 2.5.36.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.4.0-pre2, 2002-08-27
|
|
Packit |
577717 |
- vperfctr_control() now allows the user to specify that some PMC
|
|
Packit |
577717 |
sums are not to be cleared when updating the control.
|
|
Packit |
577717 |
There is a new bitmap field `preserve' in struct vperfctr_control:
|
|
Packit |
577717 |
if bit i is set then PMC(i)'s sum is not cleared.
|
|
Packit |
577717 |
`preserve' is a simple `unsigned long' for now, since this type
|
|
Packit |
577717 |
fits all currently known CPU types.
|
|
Packit |
577717 |
This change breaks binary compatibility, but user-space code which
|
|
Packit |
577717 |
clears the entire control record before filling in relevant fields
|
|
Packit |
577717 |
will continue to work as before after a recompile.
|
|
Packit |
577717 |
This feature removes a limitation which some people felt was a
|
|
Packit |
577717 |
problem for some usage scenarios.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.4.0-pre1, 2002-08-12
|
|
Packit |
577717 |
- The kernel driver has an initial implementation of a new
|
|
Packit |
577717 |
remote-control API for virtual per-process perfctrs.
|
|
Packit |
577717 |
A monitor process may access a target process' perfctrs via
|
|
Packit |
577717 |
open(), mmap(), and ioctl() on the target's /proc/pid/perfctr.
|
|
Packit |
577717 |
For open() and ioctl(), the monitor must hold the target under
|
|
Packit |
577717 |
ptrace ATTACH control. The user-space library and examples have
|
|
Packit |
577717 |
not been updated for the new API.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.12, 2002-08-12
|
|
Packit |
577717 |
- Updated patch kit for the 2.4.19 final kernel.
|
|
Packit |
577717 |
- Spelling fix in INSTALL.
|
|
Packit |
577717 |
- Minor driver code size reduction on uniprocessor kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.11, 2002-07-21
|
|
Packit |
577717 |
- Interrupt-mode performance counters now have accumulated sums.
|
|
Packit |
577717 |
The library procedures vperfctr_read_pmc() and vperfctr_read_ctrs()
|
|
Packit |
577717 |
can now retrieve the sums of interrupt-mode counters.
|
|
Packit |
577717 |
- Corrected the name of K7 event 0x42 to DATA_CACHE_REFILLS_FROM_L2.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.10, 2002-07-19
|
|
Packit |
577717 |
- Added a script, `update-kernel', to simplify the process of
|
|
Packit |
577717 |
patching the kernel source code. See INSTALL for details.
|
|
Packit |
577717 |
- The counter and control registers are now cleared when the
|
|
Packit |
577717 |
driver is idle. This should allow the counter hardware to
|
|
Packit |
577717 |
power down when not used, especially on P4.
|
|
Packit |
577717 |
- Some Pentium MMX and Pentium Pro processors have an erratum
|
|
Packit |
577717 |
which causes System Management Mode to shut down if user-space
|
|
Packit |
577717 |
has been granted access to the RDPMC instruction. The driver
|
|
Packit |
577717 |
now avoids granting RDPMC access on the affected processors.
|
|
Packit |
577717 |
The user-space library makes this change transparent.
|
|
Packit |
577717 |
- New CPU type code for Model 2 Pentium 4s, due to a few but
|
|
Packit |
577717 |
significant changes between Model 0 and 1 and Model 2 CPUs.
|
|
Packit |
577717 |
- The driver now supports Replay Tagging on the Pentium 4.
|
|
Packit |
577717 |
The perfex program has been updated to allow users to specify
|
|
Packit |
577717 |
values to store in PEBS_ENABLE and PEBS_MATRIX_VERT.
|
|
Packit |
577717 |
For example, the following command could be use to count the
|
|
Packit |
577717 |
number of L1 cache read misses on a Pentium 4:
|
|
Packit |
577717 |
|
|
Packit |
577717 |
perfex -e 0x0003B000/0x12000204@0x8000000C --p4pe=0x01000001 --p4pmv=0x1 some_program
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Explanation: IQ_CCCR0 is bound to CRU_ESCR2, CRU_ESCR2 is set up
|
|
Packit |
577717 |
for replay_event with non-bogus uops and CPL>0, and PEBS_ENABLE
|
|
Packit |
577717 |
and PEBS_MATRIX_VERT are set up for the 1stL_cache_load_miss_retired
|
|
Packit |
577717 |
metric. Note that bit 25 is NOT set in PEBS_ENABLE.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.9, 2002-06-27
|
|
Packit |
577717 |
- Pentium 4 bug fix: An error in older revisions of Intel's IA32
|
|
Packit |
577717 |
Volume 3 manual caused the driver to program the wrong control
|
|
Packit |
577717 |
register in a few cases, affecting uses of the uop_type event.
|
|
Packit |
577717 |
Revision -007 of Intel document #245472 corrects the error,
|
|
Packit |
577717 |
and the driver has been updated accordingly.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.8.1, 2002-06-27
|
|
Packit |
577717 |
- Regenerated the patch file for RedHat's 2.4.18-5 kernel. The
|
|
Packit |
577717 |
patch file in 2.3.8 only contained an error message from 'diff'.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.8, 2002-06-26
|
|
Packit |
577717 |
- Added counter overflow interrupt support for Intel P4.
|
|
Packit |
577717 |
- New kernel support: standard kernels 2.2.21 and 2.4.19-rc1,
|
|
Packit |
577717 |
and RedHat kernels 2.2.19-7.0.16, 2.4.9-34, and 2.4.18-5.
|
|
Packit |
577717 |
- API changes: Removed unused and obsolete fields from the vperfctr
|
|
Packit |
577717 |
state and control objects. Added fields to perfctr_cpu_control
|
|
Packit |
577717 |
to enable future support for P4 replay tagging events.
|
|
Packit |
577717 |
Incremented the vperfctr mmap() binary layout magic number.
|
|
Packit |
577717 |
- Changed the "make" rule in INSTALL to build "vmlinux" before
|
|
Packit |
577717 |
"modules". This change is needed for RedHat kernels.
|
|
Packit |
577717 |
- Added build of a shared (.so) version of the user-space library.
|
|
Packit |
577717 |
- When changing a process' vperfctr control data, the TSC sum
|
|
Packit |
577717 |
is now preserved if the next control state includes the TSC.
|
|
Packit |
577717 |
It used to be preserved only if both the previous and next states
|
|
Packit |
577717 |
included the TSC. The difference matters when a running TSC is
|
|
Packit |
577717 |
stopped and then restarted by a STOP;CONTROL command sequence.
|
|
Packit |
577717 |
- Driver cleanups. Merged P6 and K7 driver procedures.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.7, 2002-04-14
|
|
Packit |
577717 |
- Added Pentium 4 support to examples/perfex/. The full
|
|
Packit |
577717 |
syntax of an event specifier is now "evntsel/aux@pmc".
|
|
Packit |
577717 |
All three components are 32-bit processor-specific numbers,
|
|
Packit |
577717 |
written in decimal or hexadecimal notation.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
"evntsel" is the primary processor-specific event selection
|
|
Packit |
577717 |
code to use for this event. This field is mandatory.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
"/aux" is used when additional event selection data is
|
|
Packit |
577717 |
needed. For the Pentium 4, "evntsel" is put in the counter's
|
|
Packit |
577717 |
CCCR register, and "aux" is put in the associated ESCR
|
|
Packit |
577717 |
register. No other processor currently needs this field.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
"@pmc" describes which CPU counter number to assign this
|
|
Packit |
577717 |
event to. When omitted, the events are assigned in the
|
|
Packit |
577717 |
order listed, starting from 0. Either all or none of the
|
|
Packit |
577717 |
event specifiers should use the "@pmc" notation.
|
|
Packit |
577717 |
Explicit counter assignment via "@pmc" is required on
|
|
Packit |
577717 |
Pentium 4 and VIA C3 processors.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
As an example, the following command could be used to count
|
|
Packit |
577717 |
the number of retired instructions on a Pentium 4:
|
|
Packit |
577717 |
|
|
Packit |
577717 |
perfex -e 0x00039000/0x04000204@0x8000000C some_program
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Explanation: Program IQ_CCCR0 with required flags, ESCR select 4
|
|
Packit |
577717 |
(== CRU_ESCR0), and Enable. Program CRU_ESCR0 with event 2
|
|
Packit |
577717 |
(instr_retired), NBOGUSNTAG, CPL>0. Map this event to IQ_COUNTER0
|
|
Packit |
577717 |
(0xC) with fast RDPMC enabled.
|
|
Packit |
577717 |
- The driver now permits cascading counters on the Pentium 4.
|
|
Packit |
577717 |
- Preliminary driver infrastructure to support ptrace(ATTACH)
|
|
Packit |
577717 |
for a future remote-control interface to per-process counters.
|
|
Packit |
577717 |
- Driver and patch kit updated for the APIC interrupt entries
|
|
Packit |
577717 |
changes in kernel 2.5.8-pre3.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.6, 2002-03-21
|
|
Packit |
577717 |
- Fixed a problem with caused "BUG! resuming non-suspended perfctr"
|
|
Packit |
577717 |
warnings when running PAPI's test cases with a DEBUG-compiled
|
|
Packit |
577717 |
perfctr driver. There was no actual error, only a mismatch between
|
|
Packit |
577717 |
the debug code and the code for changing event selection data.
|
|
Packit |
577717 |
- Fixed a time-stamp counter accounting error when user-space
|
|
Packit |
577717 |
resumed interrupt-mode perfctrs with the VPERFCTR_IRESUME ioctl.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.5, 2002-03-17
|
|
Packit |
577717 |
- Multiprocessor AMD K7 machines should work now. A bug in current
|
|
Packit |
577717 |
2.2/2.4/2.5 kernels prevented correct CPU identification on these
|
|
Packit |
577717 |
machines, causing crashes. The driver now works around this bug.
|
|
Packit |
577717 |
- Added support for the VIA C3 Ezra-T processor.
|
|
Packit |
577717 |
- Added some support for interrupt-mode counters to the library.
|
|
Packit |
577717 |
Cleaned up examples/signal/.
|
|
Packit |
577717 |
- Added links in OTHER to John Reiser's tsprof and Troy Baer's
|
|
Packit |
577717 |
lperfex tools.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.4, 2002-01-23
|
|
Packit |
577717 |
- More detailed installation instructions in INSTALL.
|
|
Packit |
577717 |
- Experimental support for at-retirement counting on Pentium 4.
|
|
Packit |
577717 |
Updated examples/global/ to count FLOPS on Pentium 4.
|
|
Packit |
577717 |
- Fixed uses of __FUNCTION__ to comply with changes in GCC 3.0.3.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.3, 2001-12-31
|
|
Packit |
577717 |
- Added support for the 2.4.16 and 2.4.17 kernels.
|
|
Packit |
577717 |
- SMP bug fixed: if a process using interrupt-mode counters migrates
|
|
Packit |
577717 |
from CPU1 to CPU2 and then back to CPU1, then it could incorrectly
|
|
Packit |
577717 |
resume the stale state cached in CPU1.
|
|
Packit |
577717 |
- P6 bug fixed: when a process resumed, it could inadvertently activate
|
|
Packit |
577717 |
a suspended interrupt-mode counter belonging to the previous process
|
|
Packit |
577717 |
using the performance counters.
|
|
Packit |
577717 |
- Pentium 4 bug fixed: could fail to update the control registers on a
|
|
Packit |
577717 |
context switch.
|
|
Packit |
577717 |
- Removed the "pmc_map[] must be the identity function" restriction
|
|
Packit |
577717 |
from P6 and K7.
|
|
Packit |
577717 |
- Updated examples/global/global.c: added Pentium 4 support
|
|
Packit |
577717 |
(preliminary, counting MIPS not FLOPS), corrected VIA C3 handling,
|
|
Packit |
577717 |
and corrected 32-bit integer overflow problems affecting fast CPUs.
|
|
Packit |
577717 |
- Removed perfctr_evntsel_num_insns() from the library: the interface
|
|
Packit |
577717 |
could not support the Pentium 4. examples/self/self.c now does the
|
|
Packit |
577717 |
setup all by itself, with Pentium 4 support.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.2, 2001-11-19
|
|
Packit |
577717 |
- Corrected an error in the driver's mapping from counter number
|
|
Packit |
577717 |
to control registers on the Pentium 4. Counter 17 didn't work,
|
|
Packit |
577717 |
and attempts to use it could have disturbed other counters as well.
|
|
Packit |
577717 |
- Fixed a minor omission in the Pentium 4 initialisation code.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3.1, 2001-11-06
|
|
Packit |
577717 |
- New patches for kernels 2.2.20, 2.4.9-13 (RedHat 7.2 update),
|
|
Packit |
577717 |
2.4.13-ac5, and 2.4.14. Minor cleanup in the P4 driver code.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.3, 2001-10-24
|
|
Packit |
577717 |
- Added support for multiple interrupt-mode virtual perfctrs
|
|
Packit |
577717 |
with automatic restart. Updated the signal delivery interface
|
|
Packit |
577717 |
to pass a bitmask describing which counters overflowed; the
|
|
Packit |
577717 |
siginfo si_code is now fixed as SI_PMC_OVF (fault-class).
|
|
Packit |
577717 |
- Added EXPORT_NO_SYMBOLS to init.c, for compatibility with
|
|
Packit |
577717 |
announced changes in modutils 2.5.
|
|
Packit |
577717 |
- Patch set updated for recent kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.2, 2001-10-09
|
|
Packit |
577717 |
- Added preliminary Pentium 4 support to the driver, but only for
|
|
Packit |
577717 |
the simple basic features. The example applications have not
|
|
Packit |
577717 |
been updated, since I don't yet have a Pentium 4 for testing.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.1.4, 2001-09-30
|
|
Packit |
577717 |
- Added -l/-L (--list/--long-list) options to examples/perfex
|
|
Packit |
577717 |
to have it list the current CPU's available events.
|
|
Packit |
577717 |
- Added 'set of events' descriptors for each supported CPU type
|
|
Packit |
577717 |
to the library, and changed it to be a standard archive file.
|
|
Packit |
577717 |
- Performance counter interrupts now work in standard kernels,
|
|
Packit |
577717 |
starting with kernel 2.4.10. Updated README.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.1.3, 2001-09-13
|
|
Packit |
577717 |
- Fixed a problem which prevented compiling the driver as a module
|
|
Packit |
577717 |
in kernels older than 2.2.20pre10 if CONFIG_KMOD was disabled.
|
|
Packit |
577717 |
- Cleaned up command-line option processing in perfex. It now
|
|
Packit |
577717 |
uses the GNU getopt library and accepts long option names.
|
|
Packit |
577717 |
- Fixed a typo in perfctr-events.tab (P6's INST_DECODED was
|
|
Packit |
577717 |
misspelled as INST_DECODER), and updated/corrected several
|
|
Packit |
577717 |
unit mask descriptions.
|
|
Packit |
577717 |
- Replaced most occurrences of "VIA Cyrix III / C3" with "VIA C3".
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.1.2, 2001-09-05
|
|
Packit |
577717 |
- Added MODULE_LICENSE() tag, for compatibility with the tainted/
|
|
Packit |
577717 |
non-tainted kernel stuff being put into 2.4.9-ac and modutils.
|
|
Packit |
577717 |
- The VIA C3 should be supported properly now, thanks to tests run
|
|
Packit |
577717 |
by Dave Jones @ SuSE which clarified some aspects of the C3.
|
|
Packit |
577717 |
- Minor bug fix in the perfctr interrupt assembly code.
|
|
Packit |
577717 |
(Inherited from the 2.4 kernel. Fixed in 2.4.9-ac4.)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.1.1, 2001-08-28
|
|
Packit |
577717 |
- Fixed a bug in the finalise backpatching code, which could
|
|
Packit |
577717 |
cause a kernel hang in some configurations.
|
|
Packit |
577717 |
- Updated for kernel 2.4.9-ac3, which required changes to
|
|
Packit |
577717 |
avoid conflicts in the %cr4 access methods.
|
|
Packit |
577717 |
- Preliminary code to detect Pentium 4 processors with Performance
|
|
Packit |
577717 |
Monitoring features available.
|
|
Packit |
577717 |
- Minor %cr4-related cleanups.
|
|
Packit |
577717 |
- Minor documentation updates.
|
|
Packit |
577717 |
- Added a link in OTHER to Curtis Janssen's vprof tool.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.1, 2001-08-19
|
|
Packit |
577717 |
- Fixed a call backpatching bug, caused by an incompatibility
|
|
Packit |
577717 |
between the 2.4 and 2.2 kernels' xchg() macros.
|
|
Packit |
577717 |
- Fixed a bug where an attempt to use /proc/<pid>/perfctr on an
|
|
Packit |
577717 |
unsupported processor would cause a (well-behaved) kernel oops.
|
|
Packit |
577717 |
- The WinChip configuration option has been removed, and WinChip
|
|
Packit |
577717 |
users should instead pass "notsc" as a boot-time kernel parameter.
|
|
Packit |
577717 |
This permitted a cleanup of the driver and the 2.4 kernel patches,
|
|
Packit |
577717 |
at the expense of more code in the 2.2 kernel patches to implement
|
|
Packit |
577717 |
"notsc" support.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.0.1, 2001-08-14
|
|
Packit |
577717 |
- The "redirect call" backpatching code in the low-lever driver
|
|
Packit |
577717 |
has been changed again. The change in 2.0-pre6 was insufficient,
|
|
Packit |
577717 |
due to a nasty SMP-related erratum in all Intel P6 processors.
|
|
Packit |
577717 |
- Added support for 2.4.8/2.4.8-ac1 kernels.
|
|
Packit |
577717 |
- Removed an obsolete check from the WinChip support code.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.0, 2001-08-08
|
|
Packit |
577717 |
- Resurrected partial support for interrupt-mode virtual perfctrs.
|
|
Packit |
577717 |
virtual.c permits a single i-mode perfctr, in addition to TSC
|
|
Packit |
577717 |
and a number of a-mode perfctrs. BUG: The i-mode PMC must be last,
|
|
Packit |
577717 |
which constrains CPUs like the P6 where we currently restrict
|
|
Packit |
577717 |
the pmc_map[] to be the identity mapping. (Not a problem for
|
|
Packit |
577717 |
K7 since it is symmetric, or P4 since it is expected to use a
|
|
Packit |
577717 |
non-identity pmc_map[].)
|
|
Packit |
577717 |
- Bug fix in perfctr_cpu_update_control(): start by clearing cstatus.
|
|
Packit |
577717 |
Prevents a failed attempt to update the control from leaving the
|
|
Packit |
577717 |
object in a state with old cstatus != 0 but new control.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.0-pre7, 2001-08-07
|
|
Packit |
577717 |
- Updated user-space library:
|
|
Packit |
577717 |
* Coding tweaks to attempt to make gcc (various versions) generate
|
|
Packit |
577717 |
better code. (Not entirely successful. May have to resort to
|
|
Packit |
577717 |
hand-written assembly code.)
|
|
Packit |
577717 |
* New vperfctr_read_ctrs() sampling procedure.
|
|
Packit |
577717 |
* New perfctr_print_info() helper procedure.
|
|
Packit |
577717 |
- Updated example applications:
|
|
Packit |
577717 |
* Use the library's perfctr_print_info() for consistent output.
|
|
Packit |
577717 |
* Counts are now printed in decimal, not hex.
|
|
Packit |
577717 |
* 'perfex' now checks for data layout mismatch when the child
|
|
Packit |
577717 |
process' virtual perfctr is mmap:ed into user space.
|
|
Packit |
577717 |
* 'self' uses the new vperfctr_read_ctrs() sampling procedure.
|
|
Packit |
577717 |
* 'signal' compiles again.
|
|
Packit |
577717 |
- Cleaned up the driver's debugging code.
|
|
Packit |
577717 |
- Internal driver rearrangements. The low-level driver (x86) now handles
|
|
Packit |
577717 |
sampling/suspending/resuming counters. Merged counter state (sums and
|
|
Packit |
577717 |
start values) and CPU control data to a single "CPU state" object.
|
|
Packit |
577717 |
This simplifies the high-level drivers, and permits some optimisations
|
|
Packit |
577717 |
in the low-level driver by avoiding the need to buffer tsc/pmc samples
|
|
Packit |
577717 |
in memory before updating the accumulated sums (not yet implemented).
|
|
Packit |
577717 |
- Removed WinChip "fake TSC" support. The user-space library can now
|
|
Packit |
577717 |
sample with slightly less overhead on sane processors.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.0-pre6, 2001-07-27
|
|
Packit |
577717 |
- Sampling bug fix for SMP. Normally processes are suspended and
|
|
Packit |
577717 |
resumed many times per second, but on SMP machines it is possible
|
|
Packit |
577717 |
for a process to run for a long time without being suspended.
|
|
Packit |
577717 |
Since sampling is performed at the suspend and resume actions,
|
|
Packit |
577717 |
a performance counter may wrap around more than once between
|
|
Packit |
577717 |
sampling points. When this occurs, the accumulated counts will
|
|
Packit |
577717 |
be highly variable and much lower than expected.
|
|
Packit |
577717 |
A software timer is now used to ensure that sampling deadlines
|
|
Packit |
577717 |
aren't missed on SMP machines.
|
|
Packit |
577717 |
- Bug fix in the x86 "redirect call" backpatching routine.
|
|
Packit |
577717 |
- Bug fix in the internal debugging code (CONFIG_PERFCTR_DEBUG).
|
|
Packit |
577717 |
- Minor performance tweak for the P5/P5MMX read counters procedures.
|
|
Packit |
577717 |
- To avoid undetected data layout mismatches, the user-space library
|
|
Packit |
577717 |
now checks the data layout version field in a virtual perfctr when
|
|
Packit |
577717 |
it is being mmap:ed into the user's address space.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.0-pre5, 2001-06-11
|
|
Packit |
577717 |
- Structure layout changes to reduce sampling overheads.
|
|
Packit |
577717 |
The ABI changed slightly, but I hope this is the last such
|
|
Packit |
577717 |
change for some time.
|
|
Packit |
577717 |
- Fixed two bugs related to the interaction of interrupt-mode
|
|
Packit |
577717 |
perfctrs and the lazy EVNTSEL MSR update cache in the low-level
|
|
Packit |
577717 |
driver. (Interrupt-mode support is still disabled in the
|
|
Packit |
577717 |
high-level drivers, however.)
|
|
Packit |
577717 |
- Fixed a bug in examples/perfex where it forgot to initialise
|
|
Packit |
577717 |
the pmc_map[] control field. This caused the driver to refuse
|
|
Packit |
577717 |
attempts to use more than one counter. The current fix is
|
|
Packit |
577717 |
for P6/K7 only; a general "fixup" procedure will be added to
|
|
Packit |
577717 |
the user-space library later.
|
|
Packit |
577717 |
- Added a CONFIG_PERFCTR_DEBUG option to enable some internal
|
|
Packit |
577717 |
consistency checking in the driver. This is a temporary
|
|
Packit |
577717 |
measure intended to help debug two open problem reports.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.0-pre4, 2001-04-30
|
|
Packit |
577717 |
- Some module usage accounting changes which should make automatic
|
|
Packit |
577717 |
module loading and unloading more robust in 2.2 kernels.
|
|
Packit |
577717 |
- Internal cleanups and a few minor bug fixes.
|
|
Packit |
577717 |
- Some API naming changes, and O_CREAT can now be used to control
|
|
Packit |
577717 |
whether opening /proc/self/perfctr should create and attach
|
|
Packit |
577717 |
a vperfctr or not.
|
|
Packit |
577717 |
- The user-space library has been updated for the new API.
|
|
Packit |
577717 |
pmc_map[] is used to map from "virtual counter i" to an actual
|
|
Packit |
577717 |
PMC index to be used by RDPMC -- the VIA Cyrix III / C3 is now
|
|
Packit |
577717 |
able to sample in user-space even though it has no PMC(0).
|
|
Packit |
577717 |
The layout of pmc_map[] is CPU-specific; see x86.c for details.
|
|
Packit |
577717 |
Since TSC sampling is specified explicitly now, perfctr_cpu_nrctrs()
|
|
Packit |
577717 |
has been changed to return the number of performance counters
|
|
Packit |
577717 |
_excluding_ the TSC.
|
|
Packit |
577717 |
- The example programs have been updated for the new API, with the
|
|
Packit |
577717 |
exception of signal.c which is still non-functional.
|
|
Packit |
577717 |
- The perfex.c example works better now that the API has a consistent
|
|
Packit |
577717 |
one-evntsel-per-counter model even for Intel P5-like CPUs.
|
|
Packit |
577717 |
- The global.c example has been fixed to not cause a division by zero
|
|
Packit |
577717 |
on WinChip CPUs lacking a working TSC.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.0-pre3, 2001-04-17
|
|
Packit |
577717 |
- Preliminary implementation of the new data structures and API
|
|
Packit |
577717 |
is in place. The user-space components have not yet been updated.
|
|
Packit |
577717 |
Interrupt-mode virtual perfctrs have been disabled pending
|
|
Packit |
577717 |
completion of necessary CPU driver support.
|
|
Packit |
577717 |
- Now uses "VIA_C3" as the family name for both the VIA C3 and
|
|
Packit |
577717 |
the slightly older VIA Cyrix III processors. "VIA_CYRIX_III"
|
|
Packit |
577717 |
was just too clumsy and confusing. (It's not a Cyrix at all.)
|
|
Packit |
577717 |
- Fixed etc/perfctr-events.tab to make Cyrix' event codes agree
|
|
Packit |
577717 |
with reality rather than with the Cyrix manuals. The manuals
|
|
Packit |
577717 |
ignore the fact that the 7-bit event codes are stored in two
|
|
Packit |
577717 |
distinct bit fields in the CESR.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.0-pre2, 2001-04-07
|
|
Packit |
577717 |
- Removed automatic inheritance of per-process virtual perfctrs
|
|
Packit |
577717 |
across fork(). Unless wait4() is modified, it's difficult to
|
|
Packit |
577717 |
communicate the final values back to the parent: the now
|
|
Packit |
577717 |
abandoned code did this in a way which made it impossible
|
|
Packit |
577717 |
to distinguish one child's final counts from another's.
|
|
Packit |
577717 |
Inheritance can be implemented in user-space anyway, so the
|
|
Packit |
577717 |
loss is not great. The interface between the driver and the rest
|
|
Packit |
577717 |
of the kernel is now smaller and simpler than before.
|
|
Packit |
577717 |
- Dropped support for kernels older than 2.2.16.
|
|
Packit |
577717 |
- Preliminary support for the VIA C3 processor.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 2.0-pre1, 2001-03-25
|
|
Packit |
577717 |
- First round of API and coding changes/cleanups for version 2.0.
|
|
Packit |
577717 |
The driver version in struct perfctr_info is now a string instead
|
|
Packit |
577717 |
of the previous major/minor/micro version number mess.
|
|
Packit |
577717 |
- Internal cleanups and minor fixes.
|
|
Packit |
577717 |
- Fixed an include file problem which made some C compilers (not gcc)
|
|
Packit |
577717 |
fail when compiling user-space applications using the driver.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.9, 2001-02-13
|
|
Packit |
577717 |
- Fixed compilation problems for 2.2 and SMP kernels.
|
|
Packit |
577717 |
- Corrected VIA Cyrix III support. The "VIA Cyrix III" product
|
|
Packit |
577717 |
has apparently used two distinct CPUs. Initial CPUs were a
|
|
Packit |
577717 |
Cyrix design (Joshua) while current CPUs apparently are a
|
|
Packit |
577717 |
Centaur design (Samuel). Added support for "Samuel" CPUs.
|
|
Packit |
577717 |
- Two corrections in the K7 perfctr event list.
|
|
Packit |
577717 |
- Small tweaks to vperfctr interrupt handling.
|
|
Packit |
577717 |
- Added preliminary interrupt-mode support for AMD K7.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.8, 2001-01-23
|
|
Packit |
577717 |
- Added preliminary interrupt-mode support to virtual perfctrs.
|
|
Packit |
577717 |
Currently for P6 only, and the local APIC must have been enabled.
|
|
Packit |
577717 |
Tested on 2.4.0-ac10 with CONFIG_X86_UP_APIC=y.
|
|
Packit |
577717 |
When an i-mode vperfctr interrupts on overflow, the counters are
|
|
Packit |
577717 |
suspended and a user-specified signal is sent to the process. The
|
|
Packit |
577717 |
user's signal handler can read the trap pc from the mmap:ed vperfctr,
|
|
Packit |
577717 |
and should then issue an IRESUME ioctl to restart the counters.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.7, 2001-01-01
|
|
Packit |
577717 |
- Updated patches for kernels 2.2.18 and 2.4.0-prerelease.
|
|
Packit |
577717 |
- Removed the need to ./configure the library before building it.
|
|
Packit |
577717 |
- /dev/perfctr is now only used for global-mode perfctrs.
|
|
Packit |
577717 |
- Library API changes to reflect new /dev/perfctr semantics.
|
|
Packit |
577717 |
- Backported /proc/self/perfctr to kernels 2.2.13-2.2.17.
|
|
Packit |
577717 |
- /proc/self/perfctr is now mandatory for virtual perfctrs.
|
|
Packit |
577717 |
- Fixed a VIA Cyrix III CPU detection bug.
|
|
Packit |
577717 |
- Fixed a minor problem in the 2.4 patch to drivers/Makefile.
|
|
Packit |
577717 |
- Changed examples/global/global.c to count MFLOP/s instead
|
|
Packit |
577717 |
of branches and branch prediction hits/misses.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.6, 2000-11-21
|
|
Packit |
577717 |
- Updated for kernels 2.4.0-test11 and 2.2.18pre22.
|
|
Packit |
577717 |
- Preliminary implementation of /proc/self/perfctr as a more direct
|
|
Packit |
577717 |
way of accessing one's virtual perfctrs. (If this works out,
|
|
Packit |
577717 |
the /dev/perfctr interface to vperfctrs will be phased out.)
|
|
Packit |
577717 |
The driver can still be built as an autoloadable module.
|
|
Packit |
577717 |
(For now, only supported in 2.2.18pre22 and 2.4.0-test11.)
|
|
Packit |
577717 |
- Some user-space library API changes to accommodate /proc/self/perfctr.
|
|
Packit |
577717 |
- The per-process virtual TSC is no longer restarted from zero
|
|
Packit |
577717 |
when the perfctrs are reprogrammed, which allows it to be used
|
|
Packit |
577717 |
as a high-res per-process clock (i.e. gethrvtime()).
|
|
Packit |
577717 |
- Rewrote the `command' example application to use perfctr inheritance
|
|
Packit |
577717 |
instead of the recently removed "remote control" facility.
|
|
Packit |
577717 |
- WinChip documentation updates and corrections.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.5, 2000-09-03
|
|
Packit |
577717 |
- The virtual perfctr "remote control" facility has been removed,
|
|
Packit |
577717 |
resulting in major simplifications in the driver.
|
|
Packit |
577717 |
Since version 1.3 of the driver, the most common application of
|
|
Packit |
577717 |
the remote control facility (to record events from unmodified
|
|
Packit |
577717 |
applications) can be more easily implemented using the perfctr
|
|
Packit |
577717 |
inheritance facility (perfctr control setup is inherited from parent
|
|
Packit |
577717 |
to child processes, and a child's event counts are propagated back
|
|
Packit |
577717 |
to its parent). Removing the remote control facility simplified
|
|
Packit |
577717 |
resource management and eliminated a number of concurrency issues.
|
|
Packit |
577717 |
- Code cleanups. Dropped support for intermediate 2.3 and early 2.4
|
|
Packit |
577717 |
kernels. The code now supports kernels 2.2.xx and 2.4.0-test7 or
|
|
Packit |
577717 |
later only (via a 2.4-on-2.2 simulation layer).
|
|
Packit |
577717 |
- A number of changes to the user-space library. The API is now thread-
|
|
Packit |
577717 |
safe (the library has no internal state), and the naming scheme has
|
|
Packit |
577717 |
been simplified due to the removal of the remote-control facility.
|
|
Packit |
577717 |
The zero-syscall perfctr sampling code has been rewritten and should
|
|
Packit |
577717 |
be faster and more robust. (It fixed a sampling problem one user had
|
|
Packit |
577717 |
on a 4-way MP box.)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.4, 2000-08-11
|
|
Packit |
577717 |
- Updates to comply which changes in 2.4.0-test kernels, in particular
|
|
Packit |
577717 |
concerning module owner and use count tracking, and the Virtual File
|
|
Packit |
577717 |
System (VFS) infrastructure.
|
|
Packit |
577717 |
- A bug which prevented reclaiming VFS resources (dentries and
|
|
Packit |
577717 |
inodes) allocated to virtual perfctrs has been fixed. This bug
|
|
Packit |
577717 |
affected both 2.2.x and 2.4.0-test kernels.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.3, 2000-06-29
|
|
Packit |
577717 |
- Implemented inheritance for per-process virtual perfctrs.
|
|
Packit |
577717 |
This means that a child's performance-monitoring counts are
|
|
Packit |
577717 |
attributed to its parent, similarly to how time is handled.
|
|
Packit |
577717 |
The parent must have active perfctrs before forking off the child,
|
|
Packit |
577717 |
and neither parent nor child must have reprogrammed its perfctrs
|
|
Packit |
577717 |
when the child exits, otherwise no propagation occurs.
|
|
Packit |
577717 |
Threads created implicitly by the kernel via request_module()
|
|
Packit |
577717 |
are protected from perfctr inheritance.
|
|
Packit |
577717 |
- Added an example program to illustrate inheritance.
|
|
Packit |
577717 |
- Fixed two small buglets in the driver.
|
|
Packit |
577717 |
- Preliminary changes to make the user-space library thread-safe.
|
|
Packit |
577717 |
- Updated driver for kernel 2.4.0-test2.
|
|
Packit |
577717 |
- The driver now exports the CPU clock frequency to user-space,
|
|
Packit |
577717 |
to enable mapping of accumulated TSC counts to actual time.
|
|
Packit |
577717 |
- Clarified that this package is licensed under the GNU LGPL.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.2, 2000-05-24
|
|
Packit |
577717 |
- Added support for kernels 2.2.16pre4 and 2.3.99-pre9-5.
|
|
Packit |
577717 |
- Added support for generic x86 processors with a time-stamp counter
|
|
Packit |
577717 |
but no performance-monitoring counters. By using the driver to
|
|
Packit |
577717 |
virtualise the TSC, accurate cycle-count measurements are now
|
|
Packit |
577717 |
possible on PMC-less processors like the AMD K6.
|
|
Packit |
577717 |
- Fixed a bug in the WinChip driver.
|
|
Packit |
577717 |
- Miscellaneous code cleanups.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.1, 2000-05-13
|
|
Packit |
577717 |
- Support for Linux kernels 2.2.14, 2.2.15 and 2.3.99-pre8.
|
|
Packit |
577717 |
- Changes to the driver and user-space library to reduce the
|
|
Packit |
577717 |
number of getpid() calls. (Suggested by Ulrich Drepper.)
|
|
Packit |
577717 |
- Added support for the VIA Cyrix III processor.
|
|
Packit |
577717 |
- Performance improvements in the x86 driver interface.
|
|
Packit |
577717 |
- Some code cleanups.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 1.0, 2000-01-31
|
|
Packit |
577717 |
- Support for Linux kernels 2.3.41, 2.2.15pre5, and 2.2.14.
|
|
Packit |
577717 |
- Code cleanups in order to handle drivers for non-x86 processors.
|
|
Packit |
577717 |
- Changes to the x86 drivers to reduce cache footprint and
|
|
Packit |
577717 |
sampling overhead. (Sample low 32 bits of counters, but
|
|
Packit |
577717 |
maintain 64-bit sums.)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.11, 2000-01-30
|
|
Packit |
577717 |
- Support for Linux kernels 2.3.41 and 2.2.14.
|
|
Packit |
577717 |
- Minor code cleanups and fixes.
|
|
Packit |
577717 |
- The CR4.PCE flag is now globally enabled on x86, except for
|
|
Packit |
577717 |
those processors which does not support it. This is done in part
|
|
Packit |
577717 |
to reduce the overhead of virtualising the performance counters,
|
|
Packit |
577717 |
but it is also necessary due to changes in kernel 2.3.40.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.10, 2000-01-23
|
|
Packit |
577717 |
- Support for Linux kernels 2.3.40 and 2.2.14.
|
|
Packit |
577717 |
- Global-mode performance counters are now implemented.
|
|
Packit |
577717 |
- Added hardware support for the WinChip 3 processor.
|
|
Packit |
577717 |
- More source code reorganisation.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.9, 2000-01-02
|
|
Packit |
577717 |
- Support for Linux kernels 2.3.35, 2.2.14pre18, and 2.2.13.
|
|
Packit |
577717 |
- The driver can now be built as a module.
|
|
Packit |
577717 |
- The driver now installs itself as the /dev/perfctr device instead
|
|
Packit |
577717 |
of adding a system call.
|
|
Packit |
577717 |
- Significant source code reorganisation.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.8, 1999-11-14
|
|
Packit |
577717 |
- Support for Linux kernels 2.3.28 and 2.2.13.
|
|
Packit |
577717 |
- Major updates to reduce the overhead of maintaining virtual
|
|
Packit |
577717 |
performance-monitoring counters:
|
|
Packit |
577717 |
- The control registers are cached and updated lazily.
|
|
Packit |
577717 |
- The counter registers are no longer written to.
|
|
Packit |
577717 |
- Unused counters are no longer manipulated at all.
|
|
Packit |
577717 |
(This matters especially for the AMD K7.)
|
|
Packit |
577717 |
- Reduced the process scheduling overhead for processes not
|
|
Packit |
577717 |
using performance-monitoring counters.
|
|
Packit |
577717 |
- Minor code cleanups, bug fixes, and documentation updates.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.7, 1999-10-25
|
|
Packit |
577717 |
- Support for Linux kernels 2.3.22 and 2.2.13.
|
|
Packit |
577717 |
- Improved performance. (Uses RDPMC instead of RDMSR when possible.)
|
|
Packit |
577717 |
- The AMD K7 Athlon should now work properly.
|
|
Packit |
577717 |
- User-space now uses mmap() to read the kernel's accumulated
|
|
Packit |
577717 |
counter state.
|
|
Packit |
577717 |
- The driver is now invoked via a new sys_perfctr() system call,
|
|
Packit |
577717 |
instead of abusing prctl().
|
|
Packit |
577717 |
- The kernel patch has been cleaned up. The "#ifdef CONFIG_PERFCTR"
|
|
Packit |
577717 |
mess has been eliminated.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.6, 1999-09-08
|
|
Packit |
577717 |
- Version 0.6 with support for Linux kernels 2.3.17 and 2.2.12.
|
|
Packit |
577717 |
- Preliminary support for AMD Athlon added.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.5, 1999-08-29
|
|
Packit |
577717 |
- Support for Linux kernel 2.3.15.
|
|
Packit |
577717 |
- The user-space buffer is updated whenever state.status changes,
|
|
Packit |
577717 |
even when a remote command triggers the change.
|
|
Packit |
577717 |
- Reworked and simplified the high-level code. All accesses
|
|
Packit |
577717 |
now require an attached file in order to implement proper
|
|
Packit |
577717 |
accounting and syncronisation. The only exception is UNLINK:
|
|
Packit |
577717 |
a process may always UNLINK its own PMCs.
|
|
Packit |
577717 |
- Fixed counting bug in sys_perfctr_read().
|
|
Packit |
577717 |
- Improved support for the Intel Pentium III.
|
|
Packit |
577717 |
- Another WinChip fix: fake TSC update at process resume.
|
|
Packit |
577717 |
- The code should now be safe for 'gcc -fstrict-aliasing'.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.4, 1999-07-31
|
|
Packit |
577717 |
- Support for Linux kernel 2.3.12.
|
|
Packit |
577717 |
- Implemented PERFCTR_ATTACH and PERFCTR_{READ,CONTROL,STOP,UNLINK}
|
|
Packit |
577717 |
on attached perfctrs. An attached perfctr is represented as a file.
|
|
Packit |
577717 |
- Fixed an error in the WinChip-specific code.
|
|
Packit |
577717 |
- Perfctrs now survive exec().
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.3, 1999-07-22
|
|
Packit |
577717 |
- Support for Linux kernel 2.3.11.
|
|
Packit |
577717 |
- Interface now via sys_prctl() instead of /dev/perfctr.
|
|
Packit |
577717 |
- Added NYI stubs for accessing other processes' perfctrs.
|
|
Packit |
577717 |
- Moved to dynamic allocation of a task's perfctr state.
|
|
Packit |
577717 |
- Minor code cleanups.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.2, 1999-06-07
|
|
Packit |
577717 |
- Support for Linux kernel 2.3.5.
|
|
Packit |
577717 |
- Added support for WinChip CPUs.
|
|
Packit |
577717 |
- Restart counters from zero, not their previous values. This
|
|
Packit |
577717 |
corrected a problem for Intel P6 (WRMSR writes 32 bits to a PERFCTR
|
|
Packit |
577717 |
MSR and then sign-extends to 40 bits), and also simplified the code.
|
|
Packit |
577717 |
- Added support for syncing the kernel's counter values to a user-
|
|
Packit |
577717 |
provided buffer each time a process is resumed. This feature, and
|
|
Packit |
577717 |
the fact that the driver enables RDPMC in processes using PMCs,
|
|
Packit |
577717 |
allows user-level computation of a process' accumulated counter
|
|
Packit |
577717 |
values without incurring the overhead of making a system call.
|
|
Packit |
577717 |
|
|
Packit |
577717 |
Version 0.1, 1999-05-30
|
|
Packit |
577717 |
- First public release for Linux kernel 2.3.3.
|