[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

setup the PMU to generate an interrupt on x number of LLC misses



I have heard this is possible but not seen any
examples.

It doesn't matter if I have to change the kernel to
get it.

I have written a program [1] in C++ that uses polling,
but I was told that wasn't good enough so now I search
for a "preemptive" or interrupt-based solution.

Any help very much appreciated.

Here is a fragment of the C++ program:

    for (long long polls = 0, count = 0, old_count = -1;
         count < max_misses; polls++) {
      read(fd, &count, sizeof(count));
      if (count != old_count) {
        std::cout << "LLC misses after " << polls << " polls: "
                  << count << std::endl;
        old_count = count;
      }
      std::this_thread::sleep_for(std::chrono::milliseconds(rate));
    }

I don't know if I can use that or need a whole new
solution.

This is my CPU:

    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                2
    On-line CPU(s) list:   0,1
    Thread(s) per core:    1
    Core(s) per socket:    2
    Socket(s):             1
    NUMA node(s):          1
    Vendor ID:             AuthenticAMD
    CPU family:            15
    Model:                 35
    Stepping:              2
    CPU MHz:               1000.000
    BogoMIPS:              1989.78
    L1d cache:             64K
    L1i cache:             64K
    L2 cache:              512K
    NUMA node0 CPU(s):     0,1

This is my Linux version:

    Linux debian 3.17.1 #6 SMP Sun Oct 19 15:32:18 CEST 2014 x86_64 GNU/Linux

[1] http://user.it.uu.se/~embe8573/llc/

-- 
underground experts united


Reply to: