Hello,
I have been very busy trying to solve an issue with PEBS on Intel
Core processors running in 32-bit. We were not getting any sample
recorded in the PEBS buffer.
As it turns out, there was an oversight on my part concerning the
PEBS support for Intel Core processors (or more generally for
processors implementing architectural perfmon v2.0).
PEBS sapling format and related data structures were shared between Pentium 4
and Intel Core based on the assumption that both the DS Area and PEBS entry
structures were identical. It turns out that this assmption is WRONG.
After more careful debugging, reading, and with the help of Intel, I realized
that the DS Area and PEBS entry layouts are different between Intel Core and P4.
Well, at least when running in 32-bit mode. That's why we had working PEBS on
Intel Core running 64-bit mode.
With architectural perfmon v2.0, the DS Area and PEBS entry have a fixed size
regardless of whether the CPU is running 32 or 64 bit mode. All fields are
64-bit wide regardless. Furthermore, the PEBS entry includes registers
r8-r15 even in 32-bit mode where they do not exist.
As a consequence, I had to split the PEBS support in two separate sampling
formats. You now have perfmon_pebs_p4_smpl.h and perfmon_pebs_archv2_smpl.h.
The data structures have been changed accordingly. The sampling format names
have also been changed as follows:
OLD | New Pentium 4 | New Intel Core
-------------------------------------------
pebs32 | pebs32_p4 | pebs_archv2
pebs64 | pebs64_p4 | pebs_archv2
I have updated the kernel GIT tree, libpfm and PEBS examples, and pfmon. BTW,
pfmon now provides histogram support for PEBS.
You need to update your PEBS program to use this feature with the new kernel.
I am sorry for the inconvenience but I think the documentation was somewhat
confusing, at least to me.
--
-Stephane
_______________________________________________
perfmon mailing list
[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/