Hi,
I am coming back on this subject after working on other stuff for
several weeks. Andi pointed me to the userland tool 'perf mem'
introduced in "recent" kernels (can't find the version) that is using
the kernel perf_event_open system call to profile memory accesses.
I guess the answer to my question is in the code of this tool, but
before stepping deeper inside it, I wanted to ask you (Linux perf
experts) few questions, to be sure I am on the right track.
For now, I just configured a perf_event_attr to perform sampling of
PERF_COUNT_HW_INSTRUCTIONS at a given period. Can you confirm than the
sample_period means "the kernel will generate a sample (with fields
asked through sample_type) every sample_period instructions ?
Then after calling the perf_event_open system call I mmap the file
descriptor returned with an arbitrary size of X pages (with X = 1 + 2^n).
I then start recording events with ioctl on the file descriptor returned
by perf_event_open. I am now wondering how to access the samples. My
main concern is about the meaning of the data_head and data_tail fields
of the metadata page located at the beginning of the memory mmaped. In
understand that my samples are located just after this metadata page,
and that these head and tail pointers are used to indicate where we are
in the reading of the samples, is it correct ? While reading samples,
should I use/modify these head and tail pointers, if yes what is the
purpose of that ?
I am going now to look for the perf mem code, to try to understand that
from my side, but I am interested in any hint on the subject that may
help me.
Many thanks in advance for your help,
Manu
On 09/17/2013 09:44 AM, Manuel Selva wrote:
Hi all,
I am trying to use PMU on a 2 sockets workstation (2x Intel Xeon X5650
currently running Linux 3.6.11) processor to identify memory controller
unbalance.
For this purpose I successfully used some uncore events to count the
load on each memory controller through the perf_event_open system call.
I am now planning to use Intel PEBS Load Latency Measurement to identify
if these loads result in "unusual" long memory latencies.
Looking at Vince Weaver web page discussing about kernel support for PMU
here:
http://web.eece.maine.edu/~vweaver/projects/perf_events/features.html I
saw that the kernel 3.10 supports Load Latency Measurement.
Unfortunately I can't find a man page describing how this works. Before
looking at kernel sources, I wanted to ask here for confirmation about
Load Latency Measurement in recent Linux kernels.
Can anyone confirm that this functionality is available and usable ? Is
the perf userland tool using it to provide the functionality to end users ?
Thanks in advance for your help,
--
To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html