All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lin Ming <ming.m.lin@intel.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@elte.hu>,
	Corey Ashford <cjashfor@linux.vnet.ibm.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	"eranian@gmail.com" <eranian@gmail.com>,
	"Gary.Mohr@Bull.com" <Gary.Mohr@bull.com>,
	"arjan@linux.intel.com" <arjan@linux.intel.com>,
	"Zhang, Yanmin" <yanmin_zhang@linux.intel.com>,
	Paul Mackerras <paulus@samba.org>,
	"David S. Miller" <davem@davemloft.net>,
	Russell King <rmk+kernel@arm.linux.org.uk>,
	Paul Mundt <lethal@linux-sh.org>,
	lkml <linux-kernel@vger.kernel.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Will Deacon <will.deacon@arm.com>,
	Maynard Johnson <mpjohn@us.ibm.com>, Carl Love <carll@us.ibm.com>
Subject: Re: [RFC][PATCH 3/9] perf: export registerred pmus via sysfs
Date: Tue, 11 May 2010 17:40:45 +0800	[thread overview]
Message-ID: <1273570845.30322.59.camel@minggr.sh.intel.com> (raw)
In-Reply-To: <1273569154.5605.3499.camel@twins>

On Tue, 2010-05-11 at 17:12 +0800, Peter Zijlstra wrote:
> On Tue, 2010-05-11 at 17:03 +0800, Lin Ming wrote:
> > On Tue, 2010-05-11 at 16:50 +0800, Peter Zijlstra wrote:
> > > On Tue, 2010-05-11 at 16:20 +0800, Lin Ming wrote:
> > > 
> > > > How will this sysfs interface be used for userspace tool?
> > > > 
> > > >  /sys/devices/system/node/nodeN/node_events
> > > >                                node_events/event_source_id
> > > > 
> > > >                                node_events/local_misses/event_id
> > > >                                           /local_hits/event_id
> > > >                                           /remote_misses/event_id
> > > >                                           /remote_hits/event_id
> > > > 
> > > > For example, to monitor node event local_misses on node 0, does it work
> > > > as below?
> > > > 
> > > > 1. perf top -e local_misses -n 0 (-n 0 means node 0)
> > > > 
> > > > 2. read /sys/devices/system/node/node0/node_events/event_source_id to
> > > > get the pmu_id
> > > > 
> > > > 3. read /sys/devices/system/node/node0/node_events/local_misses/event_id
> > > > to get the event_id
> > > > 
> > > > 4. event_attr::pmu_id=pmu_id, event::config=event_id
> > > > 
> > > > 5. other setting...
> > > > 
> > > > 6. call syscall perf_event_open(....)
> > > 
> > > No, you'll use event_source_id as perf_event_attr::type, use event_id as
> > > perf_event_attr::config and then use a cpu-wide counter on a cpu
> > > contained in node0.
> > 
> > Is event_source_id a link to event_source class?
> 
> No its an attribute of said class.
> 
> > For example, 2 event sources on Nehalem
> > /sys/class/event_sources/core_pmu
> > /sys/class/event_sources/uncore_pmu
> > 
> > Then,
> > /sys/devices/system/node/nodeN/node_events/event_source_id is a link
> > to /sys/class/event_sources/uncore_pmu.
> 
> > /sys/devices/system/cpu/cpuN/cpu_hardware_events/event_source_id is a
> > link to /sys/class/event_sources/core_pmu.
> 
> The other way around, look in /sys/class/*/, they're all symlinks.

/sys/devices/system/cpu/cpu0/cpu_hw_events/*
/sys/devices/system/cpu/cpu0/cpu_hw_cache_events/*
/sys/devices/system/cpu/cpu0/cpu_raw_events/*
....
....
/sys/devices/system/cpu/cpuN/cpu_hw_events/*
/sys/devices/system/cpu/cpuN/cpu_hw_cache_events/*
/sys/devices/system/cpu/cpuN/cpu_raw_events/*

Is /sys/class/event_sources/* looks like,

/sys/class/event_sources/cpu_hw_events0
-> /sys/devices/system/cpu/cpu0/cpu_hw_events
...
/sys/class/event_sources/cpu_hw_eventsN
-> /sys/devices/system/cpu/cpuN/cpu_hw_events

/sys/class/event_sources/cpu_hw_cache_events0
-> /sys/devices/system/cpu/cpu0/cpu_hw_events
...
/sys/class/event_sources/cpu_hw_cache_eventsN
-> /sys/devices/system/cpu/cpuN/cpu_hw_events

?

> 
> > And, the event_source_id
> > #cat /sys/class/event_sources/core_pmu
> > 0
> 
> > #cat /sys/class/event_sources/uncore_pmu
> > 1
> 
> You can't cat a directory. You'd cat something
> like: /sys/class/event_sources/core_pmu/event_source_id
> 
> And they would contain PERF_TYPE_* like things.
> 
> So for the current CPU PMUs we'd already create 3 event classes,
> cpu_hw_events, cpu_hw_cache_events, cpu_raw_events, with resp.
> event_source_id of 0, 3 and 4.
> 
> The new PMUs will use a dynamic range that starts at PERF_TYPE_MAX.


  parent reply	other threads:[~2010-05-11  9:41 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-10  9:27 [RFC][PATCH 3/9] perf: export registerred pmus via sysfs Lin Ming
2010-05-10  9:40 ` Peter Zijlstra
2010-05-10 10:11   ` Lin Ming
2010-05-10 10:18     ` Peter Zijlstra
2010-05-10 10:26       ` Lin Ming
2010-05-10 10:35         ` Paul Mundt
2010-05-10 10:58           ` Lin Ming
2010-05-10 11:04             ` Peter Zijlstra
2010-05-10 11:11               ` Lin Ming
2010-05-10 11:18                 ` Lin Ming
2010-05-10 11:27         ` Peter Zijlstra
2010-05-10 11:36           ` Peter Zijlstra
2010-05-10 11:48             ` Ingo Molnar
2010-05-10 11:39           ` Russell King
2010-05-10 11:42           ` Peter Zijlstra
2010-05-10 20:25             ` Will Deacon
2010-05-11  6:34               ` Peter Zijlstra
2010-05-10 11:43           ` Ingo Molnar
2010-05-10 11:49             ` Peter Zijlstra
2010-05-10 11:53               ` Ingo Molnar
2010-05-10 23:13                 ` Corey Ashford
2010-05-11  6:46                   ` Peter Zijlstra
2010-05-11  7:21                     ` Ingo Molnar
2010-05-11  8:20                       ` Lin Ming
2010-05-11  8:50                         ` Peter Zijlstra
2010-05-11  9:03                           ` Lin Ming
2010-05-11  9:05                             ` Lin Ming
2010-05-11  9:12                             ` Peter Zijlstra
2010-05-11  9:18                               ` Ingo Molnar
2010-05-11  9:24                                 ` Peter Zijlstra
2010-05-11  9:31                                   ` Ingo Molnar
2010-05-11 10:28                                     ` Lin Ming
2010-05-13  8:28                                 ` Lin Ming
2010-05-13  8:38                                   ` Ingo Molnar
2010-05-13  9:22                                     ` Lin Ming
2010-05-11  9:40                               ` Lin Ming [this message]
2010-05-11  9:48                                 ` Peter Zijlstra
2010-05-11  9:53                                   ` Lin Ming
2010-05-11 15:17                                   ` Greg KH
2010-05-12  5:51                                   ` Paul Mundt
2010-05-12  8:37                                     ` Peter Zijlstra
2010-05-14  7:04                                       ` Paul Mundt
2010-05-11 10:09                   ` stephane eranian
2010-05-11 14:15             ` Borislav Petkov
2010-05-11 14:25               ` Peter Zijlstra
2010-05-11 15:37                 ` Borislav Petkov
2010-05-11 15:46                   ` Peter Zijlstra
2010-05-10 23:54           ` Corey Ashford
2010-05-11  6:50             ` Peter Zijlstra
2010-05-11  2:43           ` Lin Ming
2010-05-11  6:35             ` Peter Zijlstra

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=1273570845.30322.59.camel@minggr.sh.intel.com \
    --to=ming.m.lin@intel.com \
    --cc=Gary.Mohr@bull.com \
    --cc=acme@redhat.com \
    --cc=arjan@linux.intel.com \
    --cc=carll@us.ibm.com \
    --cc=cjashfor@linux.vnet.ibm.com \
    --cc=davem@davemloft.net \
    --cc=eranian@gmail.com \
    --cc=fweisbec@gmail.com \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mpjohn@us.ibm.com \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    --cc=rmk+kernel@arm.linux.org.uk \
    --cc=will.deacon@arm.com \
    --cc=yanmin_zhang@linux.intel.com \
    /path/to/YOUR_REPLY

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

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