lkml.org 
[lkml]   [2017]   [Dec]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v5 02/12] perf util: Define a structure for runtime shadow stats
From
Date


On 12/1/2017 10:02 PM, Arnaldo Carvalho de Melo wrote:
> Em Fri, Dec 01, 2017 at 06:57:26PM +0800, Jin Yao escreveu:
>> Perf has a set of static variables to record the runtime shadow
>> metrics stats.
>>
>> While if we want to record the runtime shadow stats for per-thread,
>> it will be the limitation. This patch creates a structure and the
>> next patches will use this structure to update the runtime shadow
>> stats for per-thread.
>>
>> Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
>> ---
>> tools/perf/util/stat-shadow.c | 11 -----------
>> tools/perf/util/stat.h | 44 ++++++++++++++++++++++++++++++++++++++++++-
>> 2 files changed, 43 insertions(+), 12 deletions(-)
>>
>> diff --git a/tools/perf/util/stat-shadow.c b/tools/perf/util/stat-shadow.c
>> index 855e35c..5853901 100644
>> --- a/tools/perf/util/stat-shadow.c
>> +++ b/tools/perf/util/stat-shadow.c
>> @@ -9,17 +9,6 @@
>> #include "expr.h"
>> #include "metricgroup.h"
>>
>> -enum {
>> - CTX_BIT_USER = 1 << 0,
>> - CTX_BIT_KERNEL = 1 << 1,
>> - CTX_BIT_HV = 1 << 2,
>> - CTX_BIT_HOST = 1 << 3,
>> - CTX_BIT_IDLE = 1 << 4,
>> - CTX_BIT_MAX = 1 << 5,
>> -};
>> -
>> -#define NUM_CTX CTX_BIT_MAX
>> -
>> /*
>> * AGGR_GLOBAL: Use CPU 0
>> * AGGR_SOCKET: Use first CPU of socket
>> diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h
>> index eefca5c..290c51e 100644
>> --- a/tools/perf/util/stat.h
>> +++ b/tools/perf/util/stat.h
>> @@ -5,6 +5,8 @@
>> #include <linux/types.h>
>> #include <stdio.h>
>> #include "xyarray.h"
>> +#include "evsel.h"
>
> What is this for? You don't add anything in this patch that uses things
> from evsel.h.
>
> I'm removing it, will fixup if later this becomes needed.
>
> - Arnaldo
>


That's fine, thanks Arnaldo!

Thanks
Jin Yao

>> +#include "rblist.h"
>>
>> struct stats
>> {
>> @@ -43,6 +45,47 @@ enum aggr_mode {
>> AGGR_UNSET,
>> };
>>
>> +enum {
>> + CTX_BIT_USER = 1 << 0,
>> + CTX_BIT_KERNEL = 1 << 1,
>> + CTX_BIT_HV = 1 << 2,
>> + CTX_BIT_HOST = 1 << 3,
>> + CTX_BIT_IDLE = 1 << 4,
>> + CTX_BIT_MAX = 1 << 5,
>> +};
>> +
>> +#define NUM_CTX CTX_BIT_MAX
>> +
>> +enum stat_type {
>> + STAT_NONE = 0,
>> + STAT_NSECS,
>> + STAT_CYCLES,
>> + STAT_STALLED_CYCLES_FRONT,
>> + STAT_STALLED_CYCLES_BACK,
>> + STAT_BRANCHES,
>> + STAT_CACHEREFS,
>> + STAT_L1_DCACHE,
>> + STAT_L1_ICACHE,
>> + STAT_LL_CACHE,
>> + STAT_ITLB_CACHE,
>> + STAT_DTLB_CACHE,
>> + STAT_CYCLES_IN_TX,
>> + STAT_TRANSACTION,
>> + STAT_ELISION,
>> + STAT_TOPDOWN_TOTAL_SLOTS,
>> + STAT_TOPDOWN_SLOTS_ISSUED,
>> + STAT_TOPDOWN_SLOTS_RETIRED,
>> + STAT_TOPDOWN_FETCH_BUBBLES,
>> + STAT_TOPDOWN_RECOVERY_BUBBLES,
>> + STAT_SMI_NUM,
>> + STAT_APERF,
>> + STAT_MAX
>> +};
>> +
>> +struct runtime_stat {
>> + struct rblist value_list;
>> +};
>> +
>> struct perf_stat_config {
>> enum aggr_mode aggr_mode;
>> bool scale;
>> @@ -92,7 +135,6 @@ struct perf_stat_output_ctx {
>> bool force_header;
>> };
>>
>> -struct rblist;
>> void perf_stat__print_shadow_stats(struct perf_evsel *evsel,
>> double avg, int cpu,
>> struct perf_stat_output_ctx *out,
>> --
>> 2.7.4

\
 
 \ /
  Last update: 2017-12-02 05:40    [W:0.074 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site