When I install perf, use perf list, I can see the cache misses event

hello.c
#include<stdio.h>
#include<unistd.h>
int main(){
        int i = 0;
        while (i < 20){
                printf("Hello world!\n");
                i++;
                sleep(1);
        }
        return 0;
}


When I want to run the command perf stat -e cache ./hello

It shows that 
Performance counter stats for './hello':

   <not supported> cache-misses

      20.003974905 seconds time elapsed

Can you tell me why this happens? I want to use cache misses event to trace an application.




At 2013-04-30 01:10:31,"Robert Richter" <rric@kernel.org> wrote: >On 26.04.13 07:15:35, Maynard Johnson wrote: >> Would you have any idea why this oprofile user cannot get around the >> error below ("Error: counter 0 not available nmi_watchdog using this >> resource ?")? > >This happens if perf is running. This either can be the perf watchdog >(can be disabled with echo 0 > /proc/sys/kernel/nmi_watchdog) or >another perf session (e.g. perf top etc.). > >If the watchdog is disabled but another perf session is running, the >contents of the counter registers might give you a hint what is >profiled: > > # taskset $CPU echo p > /proc/sysrq-trigger > # dmesg | tail -n 30 > ... > >The bit 0-7 of the PMC's ctrl register contains the event type to be >counted. > >-Robert