[lkml]   [2009]   [Aug]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subjectperf_counters issue with PERF_SAMPLE_GROUP

    It seems to me there is a problem with the group counter values
    when you use PERF_SAMPLE_GROUP. The counts are bogus
    for all events.

    Test case is pretty simple:
    - single group, 2 events
    - sampling on PERF_COUNT_HW_CYCLES
    - other event is PERF_COUNT_HW_CYCLES
    - leader has SAMPLE_IP|SAMPLE_GROUP
    - no inheritance
    - single thread
    - using sampling in one shot mode with PERF_COUNTER_IOC_REFRESH
    - all events but leader start with disabled = 0 (i.e., enabled)
    - sampling period is 240000000 (cycles)

    Notification 1: ip=0x401300 39100608 PERF_COUNT_HW_CPU_CYCLES (12)
    Notification 2: ip=0x401300 17991616 PERF_COUNT_HW_CPU_CYCLES (12)
    Notification 3: ip=0x401300 17981248 PERF_COUNT_HW_CPU_CYCLES (12)
    Notification 4: ip=0x401300 9409478912 PERF_COUNT_HW_CPU_CYCLES (12)

    I would expect the value for the 2nd event to be close to 240000000.
    But instead,
    it is going up and down. The IP, nr and id (12) fields are correct, so
    the parsing of
    the buffer is correct. This is with the latest from Linus's 2.6.31-rc5.

    Related to PERF_SAMPLE_GROUP, I believe there is some information missing.
    You need to provide the TIMING information because in the case of SAMPLE_GROUP
    you'd like to be able to scale the values of the counters you are
    collecting. And you
    need the timing at the moment, the sample was recorded not later.

     \ /
      Last update: 2009-08-11 17:43    [W:0.052 / U:23.812 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site