|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/3] xenpm: use new Cx statistics interface
>>> On 05.03.14 at 16:47, Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> wrote:
> On 03/05/2014 05:37 AM, Jan Beulich wrote:
>> @@ -331,7 +346,7 @@ void pxstat_func(int argc, char *argv[])
>> }
>>
>> static uint64_t usec_start, usec_end;
>> -static struct xc_cx_stat *cxstat, *cxstat_start, *cxstat_end;
>> +static struct xc_cx_stat_v2 *cxstat, *cxstat_start, *cxstat_end;
>> static struct xc_px_stat *pxstat, *pxstat_start, *pxstat_end;
>> static int *avgfreq;
>> static uint64_t *sum, *sum_cx, *sum_px;
>> @@ -482,25 +497,26 @@ static void signal_int_handler(int signo
>> /* print out CC? and PC? */
>> for ( i = 0; i < socket_nr; i++ )
>> {
>> + unsigned int n;
>> uint64_t res;
>> +
>> for ( j = 0; j <= info.max_cpu_index; j++ )
>> {
>> if ( cpu_to_socket[j] == socket_ids[i] )
>> break;
>> }
>> printf("\nSocket %d\n", socket_ids[i]);
>> - res = cxstat_end[j].pc2 - cxstat_start[j].pc2;
>> - printf("\tPC2\t%"PRIu64" ms\t%.2f%%\n", res / 1000000UL,
>> - 100UL * res / (double)sum_cx[j]);
>> - res = cxstat_end[j].pc3 - cxstat_start[j].pc3;
>> - printf("\tPC3\t%"PRIu64" ms\t%.2f%%\n", res / 1000000UL,
>> - 100UL * res / (double)sum_cx[j]);
>> - res = cxstat_end[j].pc6 - cxstat_start[j].pc6;
>> - printf("\tPC6\t%"PRIu64" ms\t%.2f%%\n", res / 1000000UL,
>> - 100UL * res / (double)sum_cx[j]);
>> - res = cxstat_end[j].pc7 - cxstat_start[j].pc7;
>> - printf("\tPC7\t%"PRIu64" ms\t%.2f%%\n", res / 1000000UL,
>> - 100UL * res / (double)sum_cx[j]);
>> + for ( n = 0; n < MAX_PKG_RESIDENCIES; ++n )
>> + {
>> + if ( n >= cxstat_end[j].nr_pc )
>> + continue;
>> + res = cxstat_end[j].pc[n];
>> + if ( n < cxstat_start[j].nr_pc )
>> + res -= cxstat_start[j].pc[n];
>
> Is it possible to have cxstat_end[j].nr_pc != cxstat_start[j].nr_pc ?
Yes - see the previous patch: It bumps the count only if the
respective hw_res field was non-zero.
But even if the current implementation didn't allow for this, I'd
still consider it good practice to cope with the possibility.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |