@@ -2756,7 +2756,7 @@ void print_header(char *delim)
2756
2756
2757
2757
for (mp = sys .tp ; mp ; mp = mp -> next ) {
2758
2758
2759
- if (mp -> format == FORMAT_RAW ) {
2759
+ if (mp -> format == FORMAT_RAW || mp -> format == FORMAT_AVERAGE ) {
2760
2760
if (mp -> width == 64 )
2761
2761
outp += sprintf (outp , "%s%18.18s" , (printed ++ ? delim : "" ), mp -> name );
2762
2762
else
@@ -2831,7 +2831,7 @@ void print_header(char *delim)
2831
2831
}
2832
2832
2833
2833
for (mp = sys .cp ; mp ; mp = mp -> next ) {
2834
- if (mp -> format == FORMAT_RAW ) {
2834
+ if (mp -> format == FORMAT_RAW || mp -> format == FORMAT_AVERAGE ) {
2835
2835
if (mp -> width == 64 )
2836
2836
outp += sprintf (outp , "%s%18.18s" , delim , mp -> name );
2837
2837
else
@@ -2961,7 +2961,7 @@ void print_header(char *delim)
2961
2961
outp += sprintf (outp , "%sUncMHz" , (printed ++ ? delim : "" ));
2962
2962
2963
2963
for (mp = sys .pp ; mp ; mp = mp -> next ) {
2964
- if (mp -> format == FORMAT_RAW ) {
2964
+ if (mp -> format == FORMAT_RAW || mp -> format == FORMAT_AVERAGE ) {
2965
2965
if (mp -> width == 64 )
2966
2966
outp += sprintf (outp , "%s%18.18s" , delim , mp -> name );
2967
2967
else if (mp -> width == 32 )
@@ -3282,7 +3282,7 @@ int format_counters(struct thread_data *t, struct core_data *c, struct pkg_data
3282
3282
3283
3283
/* Added counters */
3284
3284
for (i = 0 , mp = sys .tp ; mp ; i ++ , mp = mp -> next ) {
3285
- if (mp -> format == FORMAT_RAW ) {
3285
+ if (mp -> format == FORMAT_RAW || mp -> format == FORMAT_AVERAGE ) {
3286
3286
if (mp -> width == 32 )
3287
3287
outp +=
3288
3288
sprintf (outp , "%s0x%08x" , (printed ++ ? delim : "" ), (unsigned int )t -> counter [i ]);
@@ -3379,7 +3379,7 @@ int format_counters(struct thread_data *t, struct core_data *c, struct pkg_data
3379
3379
outp += sprintf (outp , "%s%lld" , (printed ++ ? delim : "" ), c -> core_throt_cnt );
3380
3380
3381
3381
for (i = 0 , mp = sys .cp ; mp ; i ++ , mp = mp -> next ) {
3382
- if (mp -> format == FORMAT_RAW ) {
3382
+ if (mp -> format == FORMAT_RAW || mp -> format == FORMAT_AVERAGE ) {
3383
3383
if (mp -> width == 32 )
3384
3384
outp +=
3385
3385
sprintf (outp , "%s0x%08x" , (printed ++ ? delim : "" ), (unsigned int )c -> counter [i ]);
@@ -3578,7 +3578,7 @@ int format_counters(struct thread_data *t, struct core_data *c, struct pkg_data
3578
3578
outp += sprintf (outp , "%s%d" , (printed ++ ? delim : "" ), p -> uncore_mhz );
3579
3579
3580
3580
for (i = 0 , mp = sys .pp ; mp ; i ++ , mp = mp -> next ) {
3581
- if (mp -> format == FORMAT_RAW ) {
3581
+ if (mp -> format == FORMAT_RAW || mp -> format == FORMAT_AVERAGE ) {
3582
3582
if (mp -> width == 32 )
3583
3583
outp +=
3584
3584
sprintf (outp , "%s0x%08x" , (printed ++ ? delim : "" ), (unsigned int )p -> counter [i ]);
@@ -3755,7 +3755,7 @@ int delta_package(struct pkg_data *new, struct pkg_data *old)
3755
3755
new -> rapl_dram_perf_status .raw_value - old -> rapl_dram_perf_status .raw_value ;
3756
3756
3757
3757
for (i = 0 , mp = sys .pp ; mp ; i ++ , mp = mp -> next ) {
3758
- if (mp -> format == FORMAT_RAW )
3758
+ if (mp -> format == FORMAT_RAW || mp -> format == FORMAT_AVERAGE )
3759
3759
old -> counter [i ] = new -> counter [i ];
3760
3760
else if (mp -> format == FORMAT_AVERAGE )
3761
3761
old -> counter [i ] = new -> counter [i ];
@@ -3799,7 +3799,7 @@ void delta_core(struct core_data *new, struct core_data *old)
3799
3799
DELTA_WRAP32 (new -> core_energy .raw_value , old -> core_energy .raw_value );
3800
3800
3801
3801
for (i = 0 , mp = sys .cp ; mp ; i ++ , mp = mp -> next ) {
3802
- if (mp -> format == FORMAT_RAW )
3802
+ if (mp -> format == FORMAT_RAW || mp -> format == FORMAT_AVERAGE )
3803
3803
old -> counter [i ] = new -> counter [i ];
3804
3804
else
3805
3805
old -> counter [i ] = new -> counter [i ] - old -> counter [i ];
@@ -3913,7 +3913,7 @@ int delta_thread(struct thread_data *new, struct thread_data *old, struct core_d
3913
3913
old -> smi_count = new -> smi_count - old -> smi_count ;
3914
3914
3915
3915
for (i = 0 , mp = sys .tp ; mp ; i ++ , mp = mp -> next ) {
3916
- if (mp -> format == FORMAT_RAW )
3916
+ if (mp -> format == FORMAT_RAW || mp -> format == FORMAT_AVERAGE )
3917
3917
old -> counter [i ] = new -> counter [i ];
3918
3918
else
3919
3919
old -> counter [i ] = new -> counter [i ] - old -> counter [i ];
@@ -10419,6 +10419,10 @@ void parse_add_command_msr(char *add_command)
10419
10419
format = FORMAT_RAW ;
10420
10420
goto next ;
10421
10421
}
10422
+ if (!strncmp (add_command , "average" , strlen ("average" ))) {
10423
+ format = FORMAT_AVERAGE ;
10424
+ goto next ;
10425
+ }
10422
10426
if (!strncmp (add_command , "delta" , strlen ("delta" ))) {
10423
10427
format = FORMAT_DELTA ;
10424
10428
goto next ;
@@ -10691,13 +10695,19 @@ void parse_add_command_pmt(char *add_command)
10691
10695
has_format = true;
10692
10696
}
10693
10697
10698
+ if (strcmp ("average" , format_name ) == 0 ) {
10699
+ format = FORMAT_AVERAGE ;
10700
+ has_format = true;
10701
+ }
10702
+
10694
10703
if (strcmp ("delta" , format_name ) == 0 ) {
10695
10704
format = FORMAT_DELTA ;
10696
10705
has_format = true;
10697
10706
}
10698
10707
10699
10708
if (!has_format ) {
10700
- fprintf (stderr , "%s: Invalid format %s. Expected raw or delta\n" , __func__ , format_name );
10709
+ fprintf (stderr , "%s: Invalid format %s. Expected raw, average or delta\n" ,
10710
+ __func__ , format_name );
10701
10711
exit (1 );
10702
10712
}
10703
10713
}
0 commit comments