Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp640460pxu; Tue, 5 Jan 2021 23:43:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJzi3qCsdyGGC1tLzyGQvXSeesG1jVQZ4YH3SJ5U8R9NJ7HDJGsYBapiMuHQZ95ENDpBV5We X-Received: by 2002:a17:906:2984:: with SMTP id x4mr2088393eje.239.1609918980333; Tue, 05 Jan 2021 23:43:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1609918980; cv=none; d=google.com; s=arc-20160816; b=PTvH7nRszXdfu21oqjcg35XCQutZUYEd88zYcfKdV3Q2U1kpSJL7GEgCKLxv2/gWwg IJAQEYGP+S9hyd1Ez3OJ9aq92QdxF6XGVljwB9WoCKmRSILbRpM3JuHCG1mrMHblYbt0 nUrEe5Wzq443LsZiOPGB738sodtSbHEy+Jx9oGzc6uy0J+XOrUErGo8b4RgGqnAsLrv0 PVpCxHAwlw06n5M8WnL14SQ857LyryUTR3UqvPOZHaIVVcNa8CtfeJlnzRjPg8EofbK9 xB/8qbYHvqohR+zsWy/33FSR4Q1oLkW4L/BUyhmKaS3q4j0XwwTNEOpQbRdh8eGarmK1 tiNg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=3TRKa4pAKx6fWOxTQunzS3oJ6Irdi2HFXNPa2soJ2mI=; b=oXYUmRfJEeHjMUNmChZwVyFS+uGW4lhLalLB2nEKO73u8L09EHim9CGTWwQXetD2wf 2byKFMo+v3aKwgj/RLaNTQI8FJ8v5fYaaWFs4u6vswDvDujIqE733YiSGJXESgiuRulz dnAQ2RwHVx23b02UlPf8YNiTiW3orc7p3iB6LdIac2pj47eDZRIjvNWR/4xYfei0gWFz 8sCuhx6oB2UI72QhFMTA4LEJ0ahReuYNApbWq0OrSTxXfDXlGUFRCUeK+wCAgDQkC0RH KAabLjFMHqX8i2j9AzBW+KqehLKRFkE2hZlbo79P64/XV2mdwYD4A/vx40PqP8f4diVZ m+5g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s18si699366ejd.607.2021.01.05.23.42.36; Tue, 05 Jan 2021 23:43:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726435AbhAFHjN (ORCPT + 99 others); Wed, 6 Jan 2021 02:39:13 -0500 Received: from mail-lf1-f49.google.com ([209.85.167.49]:43363 "EHLO mail-lf1-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726192AbhAFHjN (ORCPT ); Wed, 6 Jan 2021 02:39:13 -0500 Received: by mail-lf1-f49.google.com with SMTP id 23so4466813lfg.10 for ; Tue, 05 Jan 2021 23:38:56 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=3TRKa4pAKx6fWOxTQunzS3oJ6Irdi2HFXNPa2soJ2mI=; b=o0IaDD6kou92i9uTj5yihtkD6seSy4F4nYqlMnfyrfGTJQE3c1k3jZbuCLBDetZvbC hUkPA0CuiO6hv1c16n3niuBmKFiB9+G63rr7JZCAsHHpvqxJPIJ7zLQvfv/mNYlKNQiK c2dXMdc/jr8MNZMdtg4Bj+fUSq3xYjCTuafd4F4Z23FLPZXFlmusI+6nw2NhAKzqaW0z KyOySuWAgUQBrBVpUl474sjRIqug0BHHelVIq7V/ObGbycgbjW30KZWhW5xjgsUMqjI7 jDkNQ80lQkCaJ7FHSP7LDSQMBw5bAFqIE7ooOQNMx8Wp3qDvt50cPHVtTdV5+v44oACh OsVg== X-Gm-Message-State: AOAM5338BOpxYNGCYauRn+3At/BW4qDMB95FJeErnlx53UXHeMrT4DTz wVq+3YUUL5132OQJBlQZ4dfTH1JcwXBo//GcD/U= X-Received: by 2002:a19:8584:: with SMTP id h126mr1335226lfd.152.1609918710779; Tue, 05 Jan 2021 23:38:30 -0800 (PST) MIME-Version: 1.0 References: <20201213133850.10070-1-leo.yan@linaro.org> <20201213133850.10070-3-leo.yan@linaro.org> In-Reply-To: <20201213133850.10070-3-leo.yan@linaro.org> From: Namhyung Kim Date: Wed, 6 Jan 2021 16:38:19 +0900 Message-ID: Subject: Re: [PATCH v2 02/11] perf c2c: Add dimensions for load hit To: Leo Yan Cc: Arnaldo Carvalho de Melo , Jiri Olsa , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Andi Kleen , Ian Rogers , Kan Liang , Joe Mario , David Ahern , Don Zickus , Al Grant , James Clark , linux-kernel Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Dec 13, 2020 at 10:39 PM Leo Yan wrote: > > Add dimensions for load hit and its percentage calculation, which is to > be displayed in the single cache line output. > > Signed-off-by: Leo Yan > --- > tools/perf/builtin-c2c.c | 71 ++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 71 insertions(+) > > diff --git a/tools/perf/builtin-c2c.c b/tools/perf/builtin-c2c.c > index 3d5a2dc8b4fd..00014e3d81fa 100644 > --- a/tools/perf/builtin-c2c.c > +++ b/tools/perf/builtin-c2c.c > @@ -1052,6 +1052,58 @@ percent_lcl_hitm_cmp(struct perf_hpp_fmt *fmt __maybe_unused, > return per_left - per_right; > } > > +static double percent_ld_hit(struct c2c_hist_entry *c2c_he) > +{ > + struct c2c_hists *hists; > + int tot, st; > + > + hists = container_of(c2c_he->he.hists, struct c2c_hists, hists); > + > + st = TOT_LD_HIT(&c2c_he->stats); > + tot = TOT_LD_HIT(&hists->stats); > + > + return percent(st, tot); It's not clear to me what's different than percent_tot_ld_hit(). Thanks, Namhyung > +} > + > +static int > +percent_ld_hit_entry(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, > + struct hist_entry *he) > +{ > + struct c2c_hist_entry *c2c_he; > + int width = c2c_width(fmt, hpp, he->hists); > + char buf[10]; > + double per; > + > + c2c_he = container_of(he, struct c2c_hist_entry, he); > + per = percent_ld_hit(c2c_he); > + return scnprintf(hpp->buf, hpp->size, "%*s", width, PERC_STR(buf, per)); > +} > + > +static int > +percent_ld_hit_color(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, > + struct hist_entry *he) > +{ > + return percent_color(fmt, hpp, he, percent_ld_hit); > +} > + > +static int64_t > +percent_ld_hit_cmp(struct perf_hpp_fmt *fmt __maybe_unused, > + struct hist_entry *left, struct hist_entry *right) > +{ > + struct c2c_hist_entry *c2c_left; > + struct c2c_hist_entry *c2c_right; > + double per_left; > + double per_right; > + > + c2c_left = container_of(left, struct c2c_hist_entry, he); > + c2c_right = container_of(right, struct c2c_hist_entry, he); > + > + per_left = percent_ld_hit(c2c_left); > + per_right = percent_ld_hit(c2c_right); > + > + return per_left - per_right; > +} > + > static int > percent_stores_l1hit_entry(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, > struct hist_entry *he) > @@ -1417,6 +1469,14 @@ static struct c2c_dimension dim_cl_rmt_hitm = { > .width = 7, > }; > > +static struct c2c_dimension dim_cl_tot_ld_hit = { > + .header = HEADER_SPAN("--- Load ---", "Hit", 1), > + .name = "cl_tot_ld_hit", > + .cmp = tot_ld_hit_cmp, > + .entry = tot_ld_hit_entry, > + .width = 7, > +}; > + > static struct c2c_dimension dim_cl_lcl_hitm = { > .header = HEADER_SPAN_LOW("Lcl"), > .name = "cl_lcl_hitm", > @@ -1570,6 +1630,15 @@ static struct c2c_dimension dim_percent_tot_ld_hit = { > .width = 8, > }; > > +static struct c2c_dimension dim_percent_ld_hit = { > + .header = HEADER_SPAN("-- Load Refs --", "Hit", 1), > + .name = "percent_ld_hit", > + .cmp = percent_ld_hit_cmp, > + .entry = percent_ld_hit_entry, > + .color = percent_ld_hit_color, > + .width = 7, > +}; > + > static struct c2c_dimension dim_percent_stores_l1hit = { > .header = HEADER_SPAN("-- Store Refs --", "L1 Hit", 1), > .name = "percent_stores_l1hit", > @@ -1715,6 +1784,7 @@ static struct c2c_dimension *dimensions[] = { > &dim_rmt_hitm, > &dim_cl_lcl_hitm, > &dim_cl_rmt_hitm, > + &dim_cl_tot_ld_hit, > &dim_tot_stores, > &dim_stores_l1hit, > &dim_stores_l1miss, > @@ -1731,6 +1801,7 @@ static struct c2c_dimension *dimensions[] = { > &dim_percent_hitm, > &dim_percent_rmt_hitm, > &dim_percent_lcl_hitm, > + &dim_percent_ld_hit, > &dim_percent_tot_ld_hit, > &dim_percent_stores_l1hit, > &dim_percent_stores_l1miss, > -- > 2.17.1 >