Maynard Johnson | 22 Jul 15:14 2014
Picon

[RFC] Removal of oprof_start GUI from oprofile 1.0

Hello, oprofile community,
As you probably know by now, I plan to roll out a new oprofile release soon.  One of the major changes in this
release will be the removal of the opcontrol-based profiler since it's been deprecated for two releases
already.  Everyone should have been aware this change was coming.  But another change that has not been
communicated very well is the removal of the oprof_start GUI app. This app, in case you're unfamiliar with
it, provides a means of setting up, running, and stopping oprofile using the opcontrol-based profiler.
But, as I've said before, I find the GUI to be antiquated, hard to use, and buggy.  

About a year ago, Gilles Allard started to modernize the GUI to use pure qt4 (vs qt3), and I asked that the
default profiler be changed to operf.  Unfortunately, that effort lost momentum, so oprof_start remains
unchanged. Gilles is willing to restart this work, but it's likely it would take some time (possibly
several weeks) and effort that I'm not sure is worthwhile.  So I ask the community to express their opinion
on the issue with a 'yea' or 'nay' to the proposal below. If you say 'yea', please give a reason.

	Proposal:  Remove oprof_start GUI component from oprofile.

Thanks for your input.

-Maynard

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Maynard Johnson | 22 Jul 01:08 2014
Picon

Removal of events for unsupported architectures or processor models

Hello, oprofile community,
Your input and feedback on the issue described below would be appreciated.

As recently announced on the oprofile-list, OProfile release 1.0 will *NOT* include the legacy
opcontrol-based profiler.  Only the operf profiler -- which uses the Linux Kernel Performance Events
Subsystem (aka "perf_events") -- will be included in release 1.0.  It seems logical at this time to also
remove the events and unit mask files for any architecture or processor types that are not supported by
perf_events.  From what I can tell, here are the architectures that do not have perf_events support:

	avr32
	ia64

Unsupported processor models are:

	ppc64/cell-be
	ppc64/pa6t (?)

If anyone knows of any additional architectures and/or processor models that do not have perf_events
support and, thus, should be dropped from oprofile release 1.0, please let me know.

Thanks.

-Maynard

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
(Continue reading)

William Cohen | 21 Jul 21:29 2014
Picon

[PATCH 1/2] Add oprofile support for ARM Cortex A57 microarchitecture

This patch adds the event list of the ARM Cortex A57 architecture.

The patch is very straight forward: just add the model numbers and
type in the usual places and add the event list.

Passes make check

Signed-off-by: William Cohen <wcohen <at> redhat.com>
---
 events/Makefile.am               |  1 +
 events/arm/armv8-ca57/events     | 67 ++++++++++++++++++++++++++++++++++++++++
 events/arm/armv8-ca57/unit_masks |  3 ++
 libop/op_cpu_type.c              |  3 ++
 libop/op_cpu_type.h              |  1 +
 libop/op_events.c                |  1 +
 utils/ophelp.c                   |  6 ++++
 7 files changed, 82 insertions(+)
 create mode 100644 events/arm/armv8-ca57/events
 create mode 100644 events/arm/armv8-ca57/unit_masks

diff --git a/events/Makefile.am b/events/Makefile.am
index f6fd3d7..b4bca1e 100644
--- a/events/Makefile.am
+++ b/events/Makefile.am
 <at>  <at>  -62,6 +62,7  <at>  <at>  event_files = \
 	arm/mpcore/events arm/mpcore/unit_masks \
 	arm/armv8-pmuv3-common/events arm/armv8-pmuv3-common/unit_masks \
 	arm/armv8-xgene/events arm/armv8-xgene/unit_masks \
+	arm/armv8-ca57/events arm/armv8-ca57/unit_masks \
 	avr32/events avr32/unit_masks \
(Continue reading)

Gilles Allard | 20 Jul 10:08 2014
Picon

Fwd: Re: [RFC] Oprof_start GUI: port to pure Qt4 & features extension


----------  Forwarded Message  ----------

Subject: Re: [RFC] Oprof_start GUI: port to pure Qt4 & features extension
Date: Saturday, July 19, 2014, 11:15:12 AM
From: Gilles Allard <gilles.allard21 <at> orange.fr>
To: Maynard Johnson <maynardj <at> us.ibm.com>

Hi Maynard

On Tuesday, July 15, 2014 12:07:27 PM you wrote:
> Hi, Gilles,
> As you may have noticed, I announced my intention to put out a new release
> of OProfile which will remove the opcontrol-based profiler. I have not
> heard from you since this message from a year ago, so the oprof_start tool
> still only supports opcontrol, not operf.  If you are still around, are you
> interested in removing the opcontrol usage and switching to operf?  If not,
> then this gui component will be removed in the 1.0 release (unless someone
> else steps up to do it -- real soon!).
> 
> Thanks.
> -Maynard

Yes I am still interested in that issue. 
I didn't work on that subject for at least one year and I need some time to go 
back to it.
As I said in my last message (more than 1 year old !) I planned to work on a 
prototype including an "operf" interface and, as far as I remember, it is 
over; but I don't remember exactly what is its last status (above all: was it 
tested or not). I think that removing ( or disabling) "opcontrol" interface 
(Continue reading)

Andi Kleen | 17 Jul 18:34 2014

[PATCH] Improve error message for non unique unit mask

From: Andi Kleen <ak <at> linux.intel.com>

Signed-off-by: Andi Kleen <ak <at> linux.intel.com>
---
 libop/op_events.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/libop/op_events.c b/libop/op_events.c
index 9c27e6c..b8900a5 100644
--- a/libop/op_events.c
+++ b/libop/op_events.c
 <at>  <at>  -1389,6 +1389,7  <at>  <at>  static void do_resolve_unit_mask(struct op_event *e,
 		if (pe->unit_mask_name == NULL) {
 			/* For numerical unit mask */
 			int found = 0;
+			int old_um_valid = pe->unit_mask_valid;

 			/* Use default unitmask if not specified */
 			if (!pe->unit_mask_valid) {
 <at>  <at>  -1404,9 +1405,16  <at>  <at>  static void do_resolve_unit_mask(struct op_event *e,
 					found++;
 			}
 			if (found > 1) {
-				fprintf(stderr, "Unit mask (0x%x) is non unique.\n"
-				        "Please specify the unit mask using the first "
-					"word of the description\n",
+				if (!old_um_valid)
+					fprintf(stderr,
+						"Default unit mask not supported for this event.\n"
+						"Please speicfy a unit mask by name, using the first "
(Continue reading)

Andi Kleen | 17 Jul 03:09 2014

[PATCH 1/2] Fix some problems in the Broadwell events

From: Andi Kleen <ak <at> linux.intel.com>

Fix some problems in the previous version of the Broadwell events.
Most flags were missing due to a bug in the generation script.
This also readds proper PEBS events.

Signed-off-by: Andi Kleen <ak <at> linux.intel.com>
---
 events/i386/broadwell/events     |   2 +-
 events/i386/broadwell/unit_masks | 129 ++++++++++++++++++++++++---------------
 2 files changed, 81 insertions(+), 50 deletions(-)

diff --git a/events/i386/broadwell/events b/events/i386/broadwell/events
index 6a4b388..ec55836 100644
--- a/events/i386/broadwell/events
+++ b/events/i386/broadwell/events
 <at>  <at>  -58,7 +58,7  <at>  <at>  event:0xcc counters:cpuid um:x20 minimum:2000003 name:rob_misc_events_lbr_insert
 event:0xd0 counters:0,1,2,3 um:mem_uops_retired minimum:2000003 name:mem_uops_retired :
 event:0xd1 counters:0,1,2,3 um:mem_load_uops_retired minimum:2000003
name:mem_load_uops_retired :
 event:0xd2 counters:0,1,2,3 um:mem_load_uops_l3_hit_retired minimum:100003
name:mem_load_uops_l3_hit_retired :
-event:0xd3 counters:0,1,2,3 um:one minimum:100007
name:mem_load_uops_l3_miss_retired_local_dram :
+event:0xd3 counters:0,1,2,3 um:mem_load_uops_l3_miss_retired minimum:100007
name:mem_load_uops_l3_miss_retired :
 event:0xe6 counters:cpuid um:x1f minimum:100003 name:baclears_any :
 event:0xf0 counters:cpuid um:l2_trans minimum:200003 name:l2_trans :
 event:0xf1 counters:cpuid um:l2_lines_in minimum:100003 name:l2_lines_in :
diff --git a/events/i386/broadwell/unit_masks b/events/i386/broadwell/unit_masks
(Continue reading)

Andi Kleen | 16 Jul 00:54 2014

[PATCH 1/2] Add oprofile support for Broadwell microarchitecture

From: Andi Kleen <ak <at> linux.intel.com>

This patch adds the event list of the Intel Broadwell architecture.
Hopefully this can still make 1.0

The patch is very straight forward: just add the model numbers and
type in the usual places and add the event list.

Passes make check

Some notes:
- Haswell included one Broadwell model number by mistake. I moved
that to Broadwell now.
- oprofile doesn't support umask sub events with different counter
constraints than other events. This affects a few events on Broadwell.
However it's not a problem when oprofile uses perf as a backend,
as perf will know how to schedule these events (once it gets the
Broadwell support). It won't work correctly with the old driver.
Most of these events are not too useful for sampling, so in practice
it's not a real problem.
- As usual PEBS events and events with offcore mask and uncore
events are missing.

Signed-off-by: Andi Kleen <ak <at> linux.intel.com>
---
 events/Makefile.am               |   1 +
 events/i386/broadwell/events     |  65 ++++++++
 events/i386/broadwell/unit_masks | 316 +++++++++++++++++++++++++++++++++++++++
 libop/op_cpu_type.c              |   2 +
 libop/op_cpu_type.h              |   1 +
(Continue reading)

Maynard Johnson | 15 Jul 17:58 2014
Picon

Next release: OProfile 1.0

Hello, OProfile community,
It's time we put out a new release of OProfile. If anyone has any fixes or enhancements (e.g., new processor
support) they want in the next release, please post your patches now.  I plan on putting out release
candidate 1 by the end of July, so please respond as soon as possible.

NOTE: The opcontrol-based profiling mechanism has been deprecated since release 0.9.8.  It will be
removed in release 1.0.  As far as I know, the performance monitor units of virtually all modern computer
architectures are now supported by the Linux Kernel Performance Events Subsystem (referred to as
"perf_events" in oprofile docs).  The operf and ocount tools leverage the perf_events API, so there is no
need for either opcontrol or its attendant oprofile kernel driver. Users running on older architectures
that are not supported by perf_events should remain on OProfile 0.9.9.

Thanks.
-Maynard

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
Sabra Gargouri | 9 Jul 12:28 2014
Picon

Could I use Oprofile to analyze memory usage?

Hi,
Can we use Oprofile (opcontrol) to monitor memory utilization?
BR
------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
oprofile-list mailing list
oprofile-list <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oprofile-list
Andrew Lin | 8 Jul 16:00 2014
Picon

OProfile on big.LITTLE

Hello Maynard,

    We are undergraduates from Taiwan, doing research on big.LITTLE
architecture. We wish to make improvement on OProfile to work on
big.LITTLE system. We are aware of the change in the structure of
OProfile, and we came up with some problems.
   
    Since OProfile uses results of Perf, we want to know whether Perf 
works on big.LITTLE architecture, and the information we found seems
to be negative. One way we thought of is to make changes with 
opcontrol, but we want to know if there are other simpler solutions.
    
    It will be much grateful to have your prompt assistance. Thanks!


    Best regards, 
    Andrew Lin
------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
oprofile-list mailing list
oprofile-list <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oprofile-list
Maynard Johnson | 2 Jul 22:00 2014
Picon

[PATCH] Make sure hypervisor is excluded from ocount and operf

Make sure hypervisor is excluded from ocount and operf

Since we have no interface support in the event specification to
allow the user to select or de-select counting events in hypervisor,
and also since the output of ocount and opreport do not support the
concept of hypervisor, we should exclude hypervisor from counting
and profiling.  There's a bug in the current code such that the
user may or may not get hypervisor events included.  This patch
explicitly excludes hypervisor.

Signed-off-by: Maynard Johnson <maynardj <at> us.ibm.com>
---
 libpe_utils/op_pe_utils.cpp |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/libpe_utils/op_pe_utils.cpp b/libpe_utils/op_pe_utils.cpp
index f6decd0..1aff7ce 100644
--- a/libpe_utils/op_pe_utils.cpp
+++ b/libpe_utils/op_pe_utils.cpp
 <at>  <at>  -860,6 +860,7  <at>  <at>  void op_pe_utils::op_process_events_list(set<string> & passed_evts,
 		pclose(fp);
 		char * event_str = op_xstrndup(event_spec.c_str(), event_spec.length());
 		operf_event_t event;
+		memset(&event, 0, sizeof(event));
 		strncpy(event.name, strtok(event_str, ":"), OP_MAX_EVT_NAME_LEN - 1);
 		if (do_profiling)
 			event.count = atoi(strtok(NULL, ":"));
 <at>  <at>  -879,6 +880,24  <at>  <at>  void op_pe_utils::op_process_events_list(set<string> & passed_evts,
 		event.evt_um = 0UL;
 		event.no_kernel = 0;
 		event.no_user = 0;
+		/* Explicitly exclude hypervisor samples since we currently do not have any
+		 * interface support for such.  If we did not do this, we could see situations
+		 * on hypervisor-controlled systems like the following:
+		 * 	$ ocount -e PM_RUN_CYC:0:0:0 /bin/true
+		 *
+		 * 	Events were actively counted for 398213 nanoseconds.
+		 * 	Event counts (actual) for /bin/true:
+		 *	        Event                         Count                    % time counted
+		 *	        PM_RUN_CYC_GRP1:0x0:0:0       123,260                  100.00
+		 *
+		 * Note that the event spec explicitly excludes both kernel and user events, yet
+		 * the output shows a non-zero count. The user could "assume" those counts are from
+		 * hypervisor, but that's ugly.
+		 *
+		 * FIXME: Add full hypervisor support by adding another bit in the event specification
+		 * and documenting it in the man pages and user guide.
+		 */
+		event.no_hv = 1;
 		event.throttled = false;
 		event.mode_specified = false;
 		event.umask_specified = false;
--

-- 
1.7.1

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft

Gmane