The extra/named unit mask stuff is pretty badly broken right now insofar as named default unit masks (and possibly others?) -- as I reported in my July 20 2012 posting (subject "Duplicated unit mask values without "extra" field are not working"), to which I never got a response. Profiling (with either operf or opcontrol) is not possible with events whose hex value is duplicated (thus, has a name), but have no "extra" parameter. Lots of default unit masks fall into this category for the newer Intel processors. For example:
operf -e uops_issued:2000000:any ls
will fail with:
Named unit masks not allowed for events without 'extra:' values.
Without closer scrutiny, I can't say for sure if there are any non-default unit masks where this may be a problem, too.
The example given in the opening problem description refers to i386/sandybridge. Clarifying, we have the following unit mask definitions for uops_issued:
uops_issued: (counter: all)
Number of Uops issued (min count: 2000000)
Unit masks (default 0x1)
----------
0x01: any Number of Uops issued by the Resource Allocation Table (RAT) to the Reservation
Station (RS)
0x01: stall_cycles cycles no uops issued by this thread. (extra: inv cmask=1)
Aside from the problem originally described, there is also the issue that the default unit mask value of 0x1 is ambiguous.
This was fixed upstream on June 24, 2013.