From: Brice Goglin <Brice.Goglin@inria.fr>
To: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
paulus@samba.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [perf] howto switch from pfmon
Date: Tue, 23 Jun 2009 17:22:07 +0200 [thread overview]
Message-ID: <4A40F31F.4030609@inria.fr> (raw)
In-Reply-To: <20090623143601.GA13415@elte.hu>
Ingo Molnar wrote:
> btw., it might make sense to expose NUMA inbalance via generic
> enumeration. Right now we have:
>
> PERF_COUNT_HW_CPU_CYCLES = 0,
> PERF_COUNT_HW_INSTRUCTIONS = 1,
> PERF_COUNT_HW_CACHE_REFERENCES = 2,
> PERF_COUNT_HW_CACHE_MISSES = 3,
> PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4,
> PERF_COUNT_HW_BRANCH_MISSES = 5,
> PERF_COUNT_HW_BUS_CYCLES = 6,
>
> plus we have cache stats:
>
> * Generalized hardware cache counters:
> *
> * { L1-D, L1-I, LLC, ITLB, DTLB, BPU } x
> * { read, write, prefetch } x
> * { accesses, misses }
>
By the way, is there a way to know which cache was actually used when we
request cache references/misses? Always the largest/top one by default?
> NUMA is here to stay, and expressing local versus remote access
> stats seems useful. We could add two generic counters:
>
> PERF_COUNT_HW_RAM_LOCAL = 7,
> PERF_COUNT_HW_RAM_REMOTE = 8,
>
> And map them properly on all CPUs that support such stats. They'd be
> accessible via '-e ram-local-refs' and '-e ram-remote-refs' type of
> event symbols.
>
> What is your typical usage pattern of this counter? What (general)
> kind of app do you profile with it and how do you make use of the
> specific node masks?
>
> Would a local/all-remote distinction be enough, or do you need to
> make a distinction between the individual nodes to get the best
> insight into the workload?
>
People here work on OpenMP runtime systems where you try to keep threads
and data together. So in the end, what's important is to maximize the
overall local/remote access ratio. But during development, it may useful
to have a distinction between individual nodes so as to understand
what's going on. That said, we still have raw numbers when we really
need that many details, and I don't know if it'd be easy for you to add
a generic counter with a sort of node-number attribute.
(including part of your other email here since it's relevant)
> How many threads does your workload typically run, and how do you
> get their stats displayed?
>
In the aforementioned OpenMP stuff, we use pfmon to get the local/remote
numa memory access ratio of each thread. In this specific case, we bind
one thread per core (even with a O(1) scheduler, people tend to avoid
launching hundreds of threads on current machines). pfmon gives us
something similar to the output of 'perf stat' in a file whose filename
contains process and thread IDs. We apply our own custom script to
convert these many pfmon output files into a single summary saying for
each thread, its thread ID, its core binding, its individual numa node
access numbers and percentages, and if they were local or remote (with
the Barcelona counters we were talking about, you need to check where
you were running before you know if accesses to node X are actually
local or remote accesses).
thanks,
Brice
next prev parent reply other threads:[~2009-06-23 15:21 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-22 20:54 [perf] howto switch from pfmon Brice Goglin
2009-06-23 12:12 ` Andi Kleen
2009-06-23 12:23 ` Peter Zijlstra
2009-06-23 13:57 ` Ingo Molnar
2009-06-23 13:14 ` Ingo Molnar
2009-06-23 13:22 ` Peter Zijlstra
2009-06-23 13:38 ` Ingo Molnar
2009-06-23 13:25 ` Ingo Molnar
2009-06-23 13:47 ` Ingo Molnar
2009-06-23 14:00 ` Brice Goglin
2009-06-23 14:36 ` Ingo Molnar
2009-06-23 15:22 ` Brice Goglin [this message]
2009-06-29 19:29 ` Ingo Molnar
2009-08-06 16:59 ` Brice Goglin
2009-08-06 17:40 ` Peter Zijlstra
2009-08-06 17:48 ` Brice Goglin
2009-08-06 17:59 ` Peter Zijlstra
2009-08-06 18:57 ` [PATCH] perf tools: Fix reading of perf.data file header Peter Zijlstra
2009-08-06 19:03 ` Brice Goglin
2009-08-06 19:59 ` Ingo Molnar
2009-08-06 20:03 ` Brice Goglin
2009-08-06 23:35 ` Brice Goglin
2009-08-07 6:13 ` Brice Goglin
2009-08-07 6:32 ` Ingo Molnar
2009-08-07 7:38 ` Brice Goglin
2009-08-07 7:45 ` Ingo Molnar
2009-08-07 8:18 ` Brice Goglin
2009-08-07 8:23 ` Ingo Molnar
2009-08-07 8:27 ` Ingo Molnar
2009-08-07 8:30 ` [tip:perfcounters/core] perf stat: Rename -S/--scale to -c/--scale tip-bot for Brice Goglin
2009-08-07 11:55 ` [PATCH] perf report: Display per-thread event counters Brice Goglin
2009-08-08 11:54 ` [tip:perfcounters/core] perf report: Fix and improve the displaying of " tip-bot for Brice Goglin
2009-08-08 12:14 ` [PATCH] perf report: Display " Ingo Molnar
2009-08-08 16:10 ` Brice Goglin
2009-08-08 16:13 ` Ingo Molnar
2009-08-07 6:37 ` [tip:perfcounters/urgent] perf tools: Fix multi-counter stat bug caused by incorrect reading of perf.data file header tip-bot for Peter Zijlstra
2009-08-07 7:39 ` tip-bot for Peter Zijlstra
2009-08-06 19:01 ` [perf] howto switch from pfmon Brice Goglin
2009-06-23 14:21 ` Brice Goglin
2009-06-23 14:51 ` Ingo Molnar
2009-06-23 15:29 ` Jaswinder Singh Rajput
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=4A40F31F.4030609@inria.fr \
--to=brice.goglin@inria.fr \
--cc=a.p.zijlstra@chello.nl \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=paulus@samba.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox