#233 Default named unit mask with no extra parameter is broken

None
closed-fixed
None
5
2013-07-29
2013-01-02
Maynard Johnson
No

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.

Discussion

  • 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.

     
    • status: open --> open-fixed
    • assigned_to: Maynard Johnson
    • Group: -->
     
    • status: open-fixed --> closed-fixed