oprofile Log


Commit Date  
[4b1497] (20.3 kB) by Andi Kleen Andi Kleen , pushed by Maynard Johnson Maynard Johnson

Add support for Intel Silvermont processor

Just add the event list for Intel Silvermont based systems
(Avoton, BayTrail) and the usual changes for a new CPU.
No new code otherwise.

The model number list is incomplete at this point, more will
be added in the future.

I also finally removed the top level event list descriptions.
All the events are only described in the unit masks now
(Intel doesn't really have a top level event, and I had
to invent descriptions, which was error prone and
often wrong)

I also removed some outdated document number references.

Signed-off-by: Andi Kleen <ak@linux.intel.com>

2013-10-10 18:12:28 View
Download
[b91794] (20.2 kB) by Ting Liu Ting Liu , pushed by Maynard Johnson Maynard Johnson

Add freescale e6500 support

Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
Signed-off-by: Ting Liu <b28495@freescale.com>

2013-09-05 12:45:52 View
Download
[ca3f79] (20.1 kB) by Ting Liu Ting Liu , pushed by Maynard Johnson Maynard Johnson

Add freescale e500mc support

Signed-off-by: George Stephen <Stephen.George@freescale.com>
Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
Signed-off-by: Ting Liu <b28495@freescale.com>

2013-09-05 12:43:55 View
Download
[08241f] (20.1 kB) by Maynard Johnson Maynard Johnson

Fix compile error on ppc/uClibc platform: 'AT_BASE_PLATFORM' undeclared'

This issue was reported via bug #245.

The method for obtaining cpu type on the ppc64 platform was recently
modified to detect the case when we're running on a kernel that has
not been updated to recognize the native processor type. The cpu
type returned in the case where the native processor type is newer
than POWER7 will be "CPU_PPC64_ARCH_V1" (architected CPU type).
The method used for detecting when the kernel does not recognize the
native processor type is to inspect the aux vector and compare
AT_PLATFORM and AT_BASE_PLATFORM. The 'AT_BASE_PLATFORM' was defined
in glibc's elf.h around 5 years ago, but was never added to uClibc,
so the code that implements the above-described method fails to compile
on systems using uClibc.

Since the above-described method of using the aux vector is only
required for ppc64 systems, and ppc64-based platforms always use glibc
(which has the AT_BASE_PLATFORM macro defined), we now wrap that code
with '#if PPC64_ARCH' to prevent problems on other architectures.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-08-14 20:40:44 View
Download
[85d9b9] (19.6 kB) by Maynard Johnson Maynard Johnson

Add support for IBM POWER8 processor

The Power ISA 2.07 was recently published at http://power.org/documentation.
The IBM POWER8 processor currently under development is an implementation
of the ISA 2.07. This patch provides the initial support for POWER8
to oprofile. NOTE: Only operf support is included with this patch. The
legacy opcontrol-based profiler and the oprofile kernel module have
not been (and may never be) updated to support this new processor.
Potentially, some future kernel versions may allow timer mode opcontrol
to work for POWER8, but at the time of this commit, the 3.10 kernel did not.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-05-31 21:34:29 View
Download
[e4db77] (19.5 kB) by Maynard Johnson Maynard Johnson

Fix breakage in _try_ppc64_arch_generic_cpu caused by Coverity fixes

In the Coverity fixes applied in the previous commit, a resource leak
was plugged incorrectly, which led to operf failing on ppc64 platform
when a non-default event was specified. The failing message was:

NULL returned for one or both of AT_PLATFORM/AT_BASE_PLATFORM

followed by an ugly "double free or corruption" message.
This patch fixes that error.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-05-28 21:48:58 View
Download
[6ee980] (19.6 kB) by Maynard Johnson Maynard Johnson

Fix Coverity errors found on May 20, 2013 git snapshot

Coverity identified the following errors on scans run from May 7 through
May 20, 2013:

Type,Category,File,Function
Wrapper object use after free,Memory - illegal accesses,/agents/jvmpi/jvmpi_oprofile.cpp,compiled_method_load(JVMPI_Event *)
Unchecked return value,Error handling issues,/daemon/opd_mangling.c,opd_open_sample_file
Dereference after null check,Null pointer dereferences,/daemon/opd_sfile.c,sfile_hash
Uninitialized scalar field,Uninitialized members,/gui/oprof_start_config.cpp,config_setting::config_setting()
Division or modulo by zero,Integer handling issues,/libdb/db_stat.c,odb_hash_stat
Resource leak,Resource leaks,/libop/op_cpu_type.c,_auxv_fetch
Resource leak,Resource leaks,/libop/op_cpu_type.c,fetch_at_hw_platform
Negative array index read,Memory - illegal accesses,/libop/op_events.c,_is_um_valid_bitmask
Write to pointer after free,Memory - corruptions,/libop/op_events.c,read_events
Read from pointer after free,Memory - illegal accesses,/libop/op_events.c,_is_um_valid_bitmask
Dereference after null check,Null pointer dereferences,/libop/op_mangle.c,op_mangle_filename
Dereference after null check,Null pointer dereferences,/libop/op_mangle.c,op_mangle_filename
Time of check time of use,Security best practices violations,/libopagent/opagent.c,op_open_agent
Improper use of negative value,Integer handling issues,/libperf_events/operf_counter.cpp,operf_record::setup()
Double free,Memory - corruptions,/libperf_events/operf_counter.cpp,operf_record::setup()
Uninitialized pointer read,Memory - illegal accesses,/libperf_events/operf_counter.cpp,<unnamed>::_get_perf_event_from_file(mmap_info &)
Unchecked return value,Error handling issues,/libperf_events/operf_mangling.cpp,"operf_open_sample_file(odb_t *, operf_sfile *, operf_sfile *, int, int)"
Using invalid iterator,API usage errors,/libperf_events/operf_process_info.cpp,operf_process_info::try_disassociate_from_parent(char *)
Non-array delete for scalars,Memory - illegal accesses,/libregex/op_regex.cpp,"<unnamed>::op_regerror(int, const re_pattern_buffer &)"
Resource leak,Resource leaks,/libutil++/op_bfd.cpp,"op_bfd::op_bfd(const std::basic_string<char, std::char_traits<char>, std::allocator<char>>&, const string_filter &, const extra_images &, bool &)"
Explicit null dereferenced,Null pointer dereferences,/opjitconv/create_bfd.c,fill_symtab
Resource leak,Resource leaks,/opjitconv/opjitconv.c,_cleanup_jitdumps
Use of untrusted string value,Insecure data handling,/opjitconv/opjitconv.c,main
Resource leak,Resource leaks,/pe_profiling/operf.cpp,_get_cpu_for_perf_events_cap()
Dereference null return value,Null pointer dereferences,/pe_profiling/operf.cpp,_process_session_dir()
Incorrect deallocator used,API usage errors,/pe_profiling/operf.cpp,_process_events_list()

===============================

This patch fixes those errors.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-05-28 13:19:25 View
Download
[a07eab] (19.3 kB) by Maynard Johnson Maynard Johnson

Fix IBM architected events to work on IBM POWER7+

In situations where oprofile is running on a kernel that does not
have full native support for an ISA 2.07-based ppc64 processor,
but does have the base level architected support, oprofile userspace
code uses the auxiliary vector of the operf program and compares
AT_PLATFORM and AT_BASE_PLATFORM values to see whether or not it
should use the new ppc64 architected events. However, if
AT_PLATFORM="power7" and AT_BASE_PLATFORM="power7+", the oprofile
code was erroneously identifying this as a situation where the
architected events should be used. This patch fixes that problem.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-05-20 14:15:53 View
Download
[9690fb] (18.9 kB) by Maynard Johnson Maynard Johnson

Revert "Add support for architected events for IBM ppc64 architecture"

This reverts commit d2ff34dbeb198106a7de6189b467b097736b089a.

Commit ID d2ff34d had an incorrect commit message

Reverting commit d2ff34d. Will re-apply with correct commit
message.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-05-20 14:12:39 View
Download
[d2ff34] (19.3 kB) by Maynard Johnson Maynard Johnson

Add support for architected events for IBM ppc64 architecture

The Power ISA 2.07 was published at http://power.org/. This ISA
formally defines base performance monitoring facilities which
must be provided by any processor implementation of the ISA.
Specific implementations may provide additional features, but
must include the standard architected features.

This patch creates a generic ppc64 cpu type called
"ppc64/architected_events_v1" that has a list of events which
are defined in the ISA 2.07 performance monitoring unit
architecture section. This new generic type will only be
supported by operf. It will *not* be supported by the legacy
oprofile kernel driver and opcontrol-based profiler. This
new cpu type can be used in situations where oprofile is running
on a kernel that does not have full native support for an
ISA 2.07-based ppc64 processor, but does have the base level
architected support. OProfile userspace code detects such a
situation by inspecting the auxiliary vector of the operf program
and comparing AT_PLATFORM and AT_BASE_PLATFORM values (defined
in elf.h).

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-05-18 00:07:53 View
Download
[6dc5d3] (18.9 kB) by Maynard Johnson Maynard Johnson

Add support for architected events for IBM ppc64 architecture

The Power ISA 2.07 was published at http://power.org/. This ISA
formally defines base performance monitoring facilities which
must be provided by any processor implementation of the ISA.
Specific implementations may provide additional features, but
must include the standard architected features.

This patch creates a generic ppc64 cpu type called
"ppc64/architected_events_v1" that has a list of events which
are defined in the ISA 2.07 performance monitoring unit
architecture section. This new generic type will only be
supported by operf. It will *not* be supported by the legacy
oprofile kernel driver and opcontrol-based profiler. This
new cpu type can be used in situations where oprofile is running
on a kernel that does not have full native support for an
ISA 2.07-based ppc64 processor, but does have the base level
architected support. OProfile userspace code detects such a
situation by inspecting the auxiliary vector of the operf program
and comparing AT_PLATFORM and AT_BASE_PLATFORM values (defined
in elf.h).

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2013-05-17 13:45:53 View
Download
[f8dd71] (16.4 kB) by Suravee Suthikulpanit Suravee Suthikulpanit

Add Support for AMD Generic Performance Events

AMD generic performance events are a small set of events which are generally available across several
AMD processor families. PERF has already provided supports for generic performance counters regardless
of the processor family. This will allow operf to work as soon as PERF able to supports the performance
counters, and does not have to wait for the more complete family-specific events and unit_masks files
to be added to OProfile.

Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>

2013-02-07 16:49:30 View
Download
[e4d8c3] (16.3 kB) by Andreas Krebbel Andreas Krebbel , pushed by Maynard Johnson Maynard Johnson

Add support for IBM zEnterprise EC12 (zEC12)

This patch adds support for the latest release of the
IBM mainframe series - the IBM zEnterprise EC12 (zEC12).

The CPU measurement facility didn't change. So only the new CPU type
has to be tolerated.

Signed-off-by: Andreas Krebbel <krebbel@linux.vnet.ibm.com>

2013-01-11 14:24:47 View
Download
[866abb] (16.2 kB) by Andi Kleen Andi Kleen , pushed by Maynard Johnson Maynard Johnson

Add the Haswell client event lists and model numbers

Also added simple support for PEBS events with perf_events
(ignored with the old driver) and include the Haswell PEBS events in the list.
And fixed "any" support.

v2: Regenerate events table with some improvements.
Address review feedback.

Signed-off-by: Andi Kleen <ak@linux.intel.com>

2012-11-08 01:14:47 View
Download
[7e788a] (16.1 kB) by Maynard Johnson Maynard Johnson

Revert "Add the Haswell client event lists and model numbers"

This reverts commit 6d48ffa1e51e49ae3d3a5757baa7e2ed0d87d128.

Revert this commit since author info was wrong.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2012-11-08 01:10:44 View
Download
[6d48ff] (16.2 kB) by Maynard Johnson Maynard Johnson

Add the Haswell client event lists and model numbers
I also added simple support for PEBS events with perf_events
(ignored with the old driver) and include the Haswell PEBS events in the list.
And fixed "any" support.

v2: Regenerate events table with some improvements.
Address review feedback.

Signed-off-by: Andi Kleen <ak@linux.intel.com>

2012-11-08 00:57:34 View
Download
[422137] (16.1 kB) by Maynard Johnson Maynard Johnson

Fix unit mask handling (including 'extra' bits) in operf

This patch handles OR'ing in the unit mask values (and,
where needed, the inv/edge/any/cmask values) into the
event code that is passed to perf_event_open.

Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>

2012-08-06 21:03:36 View
Download
[3f1b50] (16.0 kB) by Will Deacon Will Deacon , pushed by Maynard Johnson Maynard Johnson

Update support for ARMv7 processors

- update architected ARMv7 event descriptions
- add support for Cortex-A5 ARMv7 PMU implementations
- add support for Cortex-A7 ARMv7 PMU implementations
- add support for Cortex-A15 ARMv7 PMU implementations

The part of this patch that adds support for new ARM PMU
implementations also updates the new function in
libop/op_cpu_type that was added in the perf-events branch
so that these new processors can be used with operf.
For this reason, this patch is currently only being applied
to the perf-events branch, so support for the new ARM processors
won't be available in oprofile "mainline" until we merge the
perf-events branch with the master branch.

Signed-off-by: Will Deacon <will.deacon@arm.com>

2012-07-02 13:47:17 View
Download
[6316db] (15.6 kB) by Suravee Suthikulpanit Suravee Suthikulpanit , pushed by Maynard Johnson Maynard Johnson

Add support for AMD and older Intel processors to operf

Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Signed-off-by: Andi Kleen <andi@firstfloor.org>

2012-06-28 15:50:59 View
Download
[e98a05] (13.1 kB) by Gergely Kis Gergely Kis , pushed by Maynard Johnson Maynard Johnson

Detect MIPS CPUs based on the "cpu model" field of /proc/cpuinfo

Signed-off-by: Gergely Kis <gergely@homejinni.com>

2012-06-26 12:47:28 View
Download
[6d652b] (11.0 kB) by Paul Guo Paul Guo , pushed by Maynard Johnson Maynard Johnson

Add TILE support to operf

Signed-off-by: Paul Guo <ggang@tilera.com>

2012-06-19 20:15:27 View
Download
[69442b] (10.4 kB) by Will Deacon Will Deacon , pushed by Maynard Johnson Maynard Johnson

Factor out /proc/cpuinfo scanning and add support for ARM to operf

This patch adds support for parsing the cpu type from /proc/cpuinfo on
ARM platforms and hooks this into __get_cpu_type_alt_method so that
perf-events can be used as the backend. The previous /proc/cpuinfo parsing
code used by ppc64 to identify the current CPU type is useful for other
architectures that don't have a userspace cpuid instruction (for example, ARM),
so this patch factors out the /proc/cpuinfo reading code to be usable for
ARM support.

Signed-off-by: Will Deacon <will.deacon@arm.com>

2012-06-15 18:36:21 View
Download
[493c34] (7.3 kB) by Andi Kleen Andi Kleen , pushed by Maynard Johnson Maynard Johnson

This adds the event list for Intel IvyBridge and the model number
for the current IvyBridge systems

Signed-off-by: Andi Kleen <ak@linux.intel.com>

2012-05-25 15:07:36 View
Download
[73a0c8] (8.8 kB) by Maynard Johnson Maynard Johnson

Initial code drop for perf-events branch

2012-01-13 23:27:09 View
Download
[d29bec] (7.2 kB) by Andreas Krebbel Andreas Krebbel , pushed by Maynard Johnson Maynard Johnson

Fix up s390 implementation to match what was accepted upstream in the kernel

2011-12-13 22:06:16 View
Download
Older >