On Thu, Sep 1, 2011 at 3:29 PM, stephane eranian <eran...@googlemail.com> wrote: > On Thu, Sep 1, 2011 at 3:06 PM, Ryan Johnson > <ryan.john...@cs.utoronto.ca> wrote: >> On 01/09/2011 1:55 AM, stephane eranian wrote: >>> On Thu, Sep 1, 2011 at 1:07 AM, Corey Ashford >>> <cjash...@linux.vnet.ibm.com> wrote: >>>> On 08/25/2011 07:19 AM, stephane eranian wrote: >>>>> Hi, >>>>> >>>>> Sorry for late reply. >>>>> >>>>> The current support for mmaped count is broken on perf_event x86. >>>>> It simply does not work. I think it only works on PPC at this point. >>>> Just as an aside, you can access the counter registers from user space >>>> on Power (aka PPC) machines, but because the kernel is free to schedule >>>> the events onto whatever counters that meet the resource constraints, >>>> it's not at all clear which hardware counter to read from user space, >>>> and in fact, with event rotation, the counter being used can change from >>>> one system tick till the next. >>>> >>>> If you program a single event, you can be guaranteed that it won't move >>>> around, but you still will have to guess or somehow determine which >>>> hardware counter is being used by the kernel. >>>> >>> Yes, and that's why they have this 'lock' field in there.It's not really a >>> lock >>> but rather a generation counter. You need to read it before you attempt to >>> read and you need to check it when you're done reading. If the two values >>> don't match then the counter changed and you need to retry. And changes >>> means it may have moved to a different counter. >> This protocol is actually documented pretty well in >> <linux/perf_event.h>, too. Read the lock, read the index, read hw >> counter[index-1], read lock again to verify. >> >>> But the key problem here is the time scaling. In case you are multiplex >>> you need to be able to retrieve time_enabled and time_running to scale >>> the count. But that's not exposed, thus it does not work as soon as you >>> have multiplexing. Well, unless you only care about deltas and not the >>> absolute values. >> Doesn't perf_event_mmap_page expose both those, also protected by the >> generation counter? Or are you saying the kernel doesn't actually update >> those fields right now? >> > Yes, it does. I am not sure they're updated correctly, though. > I have not tried that in a very long time. > Did you manage to make libpfm4's self_count program work correctly? Even by just looking at the raw count coming out of rdpmc?
I think there are issues with hdr->offset, i.e., the 64-bit sw-maintained base for the counter. >> Ryan >> >> >> ------------------------------------------------------------------------------ >> Special Offer -- Download ArcSight Logger for FREE! >> Finally, a world-class log management solution at an even better >> price-free! And you'll get a free "Love Thy Logs" t-shirt when you >> download Logger. Secure your free ArcSight Logger TODAY! >> http://p.sf.net/sfu/arcsisghtdev2dev >> _______________________________________________ >> perfmon2-devel mailing list >> perfmon2-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/perfmon2-devel >> > ------------------------------------------------------------------------------ Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free "Love Thy Logs" t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel