Hello, I am using perfmon2 on IBM POWER5. The version I am using is libpfm 3.8 with kernel 2.6.28 (February 19th, 2009 release).
My problem is that between two consecutives readings of the counters I get decreasing values. For instance, I want to read the number of misses in L2, so I read the counter PM_DATA_FROM_L2MISS. In reading 'i' I get 59695 and in reading 'i+1' I get 59637. I am wondering if this is a bug or it is some sort of limitation. However, in my opinion it looks like a bug. In order to understand what was going on, I modified the kernel to print some messages. In the log at the end of the mail the meaning of the fields in every line is: pfm_xxx : the function from where the message is printed pid : pid of the process which is printing the message task : parameter task which is present in some perfmon2 functions ctx : parameter/variable task which is present in some perfmon2 functions cnum : counter number value : value which is being written into the PMDS result : value readed from the PMDS About the pid field, in my experiment I am running two processes (2488, 2489) only 2489 is using perfmon2 (i.e., there is only one pfm_context). In my opinion, the problem comes because perfmon2 sometimes does not save PMDS right before a context switch. For instance, in the next log, at line 1 process 2489 is switched out and in line 6 and 8 pfm_save_pmds is called. The value which is being saved for counter 3 is 58339. At line 20 the user reads the counter with the call to sys_pfm_read_pmds and the value returned is 59695. The problem is that at line 26 when process 2489 is switched out again, the PMDS are not saved. And they are being restored at line 30 with the old value which was saved before (58339). After that, the counters keep increasing until we read them again at line 103. The value read there is 59637, which is smaller than the previous reading (59695). Here is the log: 1 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswout_thread pid=2489 task=c0000000e835d5e0 ctx=c0000000e6968000 2 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=2489 ctx=c0000000e6968000 3 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 4 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=58339 5 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 6 May 19 15:35:42 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=2 value=23 7 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=58339 8 May 19 15:35:42 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=3 value=58339 9 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=2 value=0 10 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=3 value=0 11 May 19 15:35:42 op710n3 kernel: pfm_arch_restore_pmds pid=17 ctx=c0000000e6968000 12 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=17 cnum=2 value=23 13 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=17 cnum=3 value=58339 14 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswin_thread pid=17 task=c0000000e835d5e0 ctx=c0000000e6968000 15 May 19 15:35:42 op710n3 kernel: pfm_power5_enable_counters pid=17 ctx=c0000000e6968000 16 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=17 ctx=c0000000e6968000 17 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=2489 ctx=c0000000e6968000 18 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 19 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=59695 ## 1st reading 20 May 19 15:35:42 op710n3 kernel: sys_pfm_read_pmds pid=2489 ctx=c0000000e6968000 21 May 19 15:35:42 op710n3 kernel: __pfm_read_pmds pid=2489 ctx=c0000000e6968000 22 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=59695 23 May 19 15:35:42 op710n3 kernel: __pfm_read_pmds pid=2489 cnum=3 val=59695 last_reset_val=0 24 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 25 May 19 15:35:42 op710n3 kernel: __pfm_read_pmds pid=2489 cnum=2 val=23 last_reset_val=0 ## value for counter 3 is 59695 26 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswout_thread pid=2489 task=c0000000e835d5e0 ctx=c0000000e6968000 27 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=2489 ctx=c0000000e6968000 28 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 29 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=59695 30 May 19 15:35:42 op710n3 kernel: pfm_arch_restore_pmds pid=2488 ctx=c0000000e6968000 31 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2488 cnum=2 value=23 32 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2488 cnum=3 value=58339 33 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswin_thread pid=2488 task=c0000000e835d5e0 ctx=c0000000e6968000 34 May 19 15:35:42 op710n3 kernel: pfm_power5_enable_counters pid=2489 ctx=c0000000e6968000 35 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=2489 ctx=c0000000e6968000 36 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswout_thread pid=2489 task=c0000000e835d5e0 ctx=c0000000e6968000 37 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=2489 ctx=c0000000e6968000 38 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 39 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=58385 40 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 41 May 19 15:35:42 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=2 value=23 42 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=58385 43 May 19 15:35:42 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=3 value=58385 44 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=2 value=0 45 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=3 value=0 46 May 19 15:35:42 op710n3 kernel: pfm_arch_restore_pmds pid=645 ctx=c0000000e6968000 47 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=645 cnum=2 value=23 48 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=645 cnum=3 value=58385 49 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswin_thread pid=645 task=c0000000e835d5e0 ctx=c0000000e6968000 50 May 19 15:35:42 op710n3 kernel: pfm_power5_enable_counters pid=645 ctx=c0000000e6968000 51 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=645 ctx=c0000000e6968000 52 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswout_thread pid=2489 task=c0000000e835d5e0 ctx=c0000000e6968000 53 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=2489 ctx=c0000000e6968000 54 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 55 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=58896 56 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 57 May 19 15:35:42 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=2 value=23 58 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=58896 59 May 19 15:35:42 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=3 value=58896 60 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=2 value=0 61 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=3 value=0 62 May 19 15:35:42 op710n3 kernel: pfm_arch_restore_pmds pid=2487 ctx=c0000000e6968000 63 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2487 cnum=2 value=23 64 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2487 cnum=3 value=58896 65 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswin_thread pid=2487 task=c0000000e835d5e0 ctx=c0000000e6968000 66 May 19 15:35:42 op710n3 kernel: pfm_power5_enable_counters pid=2487 ctx=c0000000e6968000 67 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=2487 ctx=c0000000e6968000 68 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswout_thread pid=2489 task=c0000000e835d5e0 ctx=c0000000e6968000 69 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=2489 ctx=c0000000e6968000 70 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 71 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=59251 72 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 73 May 19 15:35:42 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=2 value=23 74 May 19 15:35:42 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=59251 75 May 19 15:35:42 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=3 value=59251 76 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=2 value=0 77 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=3 value=0 78 May 19 15:35:42 op710n3 kernel: pfm_arch_restore_pmds pid=2485 ctx=c0000000e6968000 79 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2485 cnum=2 value=23 80 May 19 15:35:42 op710n3 kernel: pfm_power5_write_pmd pid=2485 cnum=3 value=59251 81 May 19 15:35:42 op710n3 kernel: pfm_arch_ctxswin_thread pid=2485 task=c0000000e835d5e0 ctx=c0000000e6968000 82 May 19 15:35:42 op710n3 kernel: pfm_power5_enable_counters pid=2485 ctx=c0000000e6968000 83 May 19 15:35:42 op710n3 kernel: pfm_power5_disable_counters pid=2485 ctx=c0000000e6968000 84 May 19 15:35:43 op710n3 kernel: pfm_arch_ctxswout_thread pid=2489 task=c0000000e835d5e0 ctx=c0000000e6968000 85 May 19 15:35:43 op710n3 kernel: pfm_power5_disable_counters pid=2489 ctx=c0000000e6968000 86 May 19 15:35:43 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 87 May 19 15:35:43 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=59505 88 May 19 15:35:43 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 89 May 19 15:35:43 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=2 value=23 90 May 19 15:35:43 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=59505 91 May 19 15:35:43 op710n3 kernel: pfm_save_pmds pid=2489 ctx=c0000000e6968000 cnum=3 value=59505 92 May 19 15:35:43 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=2 value=0 93 May 19 15:35:43 op710n3 kernel: pfm_power5_write_pmd pid=2489 cnum=3 value=0 94 May 19 15:35:43 op710n3 kernel: pfm_arch_restore_pmds pid=17 ctx=c0000000e6968000 95 May 19 15:35:43 op710n3 kernel: pfm_power5_write_pmd pid=17 cnum=2 value=23 96 May 19 15:35:43 op710n3 kernel: pfm_power5_write_pmd pid=17 cnum=3 value=59505 97 May 19 15:35:43 op710n3 kernel: pfm_arch_ctxswin_thread pid=17 task=c0000000e835d5e0 ctx=c0000000e6968000 98 May 19 15:35:43 op710n3 kernel: pfm_power5_enable_counters pid=17 ctx=c0000000e6968000 99 May 19 15:35:43 op710n3 kernel: pfm_power5_disable_counters pid=17 ctx=c0000000e6968000 100 May 19 15:35:43 op710n3 kernel: pfm_power5_disable_counters pid=2489 ctx=c0000000e6968000 101 May 19 15:35:43 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 102 May 19 15:35:43 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=59637 ## 1st reading 103 May 19 15:35:43 op710n3 kernel: sys_pfm_read_pmds pid=2489 ctx=c0000000e6968000 104 May 19 15:35:43 op710n3 kernel: __pfm_read_pmds pid=2489 ctx=c0000000e6968000 105 May 19 15:35:43 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=3 result=59637 106 May 19 15:35:43 op710n3 kernel: __pfm_read_pmds pid=2489 cnum=3 val=59637 last_reset_val=0 107 May 19 15:35:43 op710n3 kernel: pfm_power5_read_pmd pid=2489 cnum=2 result=23 108 May 19 15:35:43 op710n3 kernel: __pfm_read_pmds pid=2489 cnum=2 val=23 last_reset_val=0 ## value for counter 3 is 59637 Do you have any clue about what can be happening? Is this normal? Thanks in advance! Victor ------------------------------------------------------------------------------ Crystal Reports - New Free Runtime and 30 Day Trial Check out the new simplified licensing option that enables unlimited royalty-free distribution of the report engine for externally facing server and web deployment. http://p.sf.net/sfu/businessobjects _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel