From nobody Fri Dec 19 17:27:06 2025 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8C79D295518 for ; Wed, 30 Apr 2025 17:52:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746035522; cv=none; b=NKViQUlqi9YAPKQlGJCyqp0K9G39yCurCUSEL9sN8/j34I4OJ6UY6cGHufs2B2FACmXT6/qq3SdS/CEafuHB1otaLPi0WSqofMQ3D5uwg2xF6DSoL4kE0Xagt5uYddFcu8wzBUtr2hTajtn4xoAwLklxzQ+T95QIBbDxSWBEj2o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746035522; c=relaxed/simple; bh=r5dyt7WULPT6TwZ8GkpsBnLtWgUyrYqxUVqGjZbdg6Q=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=d3TdnGFSsSxcxAWG7w1IKO/ipre+lkqG0wqL11nfLlYXZ7d7yZgzNhfcwF2eQRzQOGx9aODym/ROQ83gvd6/WUnd43fPqBnADNEDOQC4MS+rUxt7BxzaQ7RkQuA07t0vR5rbrRMQlD7jvEYU/AKQoDurVJvz/4qCtN0FQSsACVE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=W1x4GAmn; arc=none smtp.client-ip=209.85.216.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--irogers.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="W1x4GAmn" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-306b51e30ffso128938a91.1 for ; Wed, 30 Apr 2025 10:52:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746035520; x=1746640320; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=FJDGTrAXLYH4hGYuUKjDOU1yDsQb9jT4XvyOCJsmDmM=; b=W1x4GAmngPuGTP7IiWCW++sEJyV8+Oe/ypwtj874SmF7gSWWFjy1wmsxElHezznrbu W7qsuNuKdkZX4Pc9vkgABJhea2joFiJxu3M1G8zGW8B7VknoHETTONrWac3D5dWepPIo /NA/Q4IhF765DWja1olx14LhqWpKNdhDkAJf5mKaNU4nB2Ymm9DHnaQyYh9WE7nF669t BdF9a/1lmPjJOw+3XYb4tPwe0Rk+5SKmEXf6FmnrbkKHQQcrTR9dg2lLyOpjfUETIej7 Qx4t6MhWEXEmET6FZaq8YDtprKSJ/jtTINNe4Rq12LfvYGrRvvA6Cjyw9mq+mBWru23n voCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746035520; x=1746640320; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=FJDGTrAXLYH4hGYuUKjDOU1yDsQb9jT4XvyOCJsmDmM=; b=eqXc/tCFFXJ0JmrmGABGXUqehTFmjXyzCM9Oqh94JMZzni6NYNqPi3fsysTh5+k07P ODYKrGuQ2Rkin4sZolLxEm/svQPerLnrQ+7tYF9INZyhgmXwK+KLz7QWLJlOi4q01feB otSAw6h7X/KTkxlSkUU1fLLcqJdDdaSkBit7KSHSK8IFCqc1So+vxespsJDXJo/c36zo fjlVQZ5zAsK/tQDw2D5ULioJzkHSU1/FgogI2Ta5bJ8n+ioGo7kVdtZE8cxXMpuOnFlx vnGPn3ceJtVuKEP8vzxAKdKV1LImoX0PLri3ASnklfeYo5RXCdaK9WwZE+0tWPKAaOqO YdDg== X-Forwarded-Encrypted: i=1; AJvYcCXiO+qI5hLr79yn7FIhy79zvua+UWKNiDdFXLTjF6QPqPdua4dlGPsf1SwGjP6HtzHCVvxb4AJI+ql6E+c=@vger.kernel.org X-Gm-Message-State: AOJu0YxgYMta4mKziaBsSe8V/x4ONeVqzBrQZAKGWnytmNT2OtlSp0Jh +KFq8qCudiWcv7BEYy320nibte5uJ3w3eWIyeGZnsDhGuqsynWgLai/n4A8vKZOmuVBokHd0eGo IdJLszA== X-Google-Smtp-Source: AGHT+IGpMdCcZwC8lu20bnUel1JwqffOM2cVPf2gSFSm5sX+qsnG32WRPx6BVsGF8ae+jTxBwJ7hUdoImMJ7 X-Received: from pjbee6.prod.google.com ([2002:a17:90a:fc46:b0:2ff:852c:ceb8]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:548f:b0:2fe:8282:cb9d with SMTP id 98e67ed59e1d1-30a33359527mr5858439a91.28.1746035519920; Wed, 30 Apr 2025 10:51:59 -0700 (PDT) Date: Wed, 30 Apr 2025 10:50:19 -0700 In-Reply-To: <20250430175036.184610-1-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250430175036.184610-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.906.g1f30a19c02-goog Message-ID: <20250430175036.184610-32-irogers@google.com> Subject: [PATCH v2 31/47] perf script: Silence -Wshorten-64-to-32 warnings From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Adrian Hunter , Kan Liang , Yury Norov , Rasmus Villemoes , Thomas Gleixner , Darren Hart , Davidlohr Bueso , "=?UTF-8?q?Andr=C3=A9=20Almeida?=" , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Yicong Yang , Jonathan Cameron , Nathan Chancellor , Bill Wendling , Justin Stitt , Josh Poimboeuf , Al Viro , Kyle Meyer , Ben Gainey , Athira Rajeev , Kajol Jain , Aditya Gupta , Eder Zulian , Dapeng Mi , Kuan-Wei Chiu , He Zhe , Dirk Gouders , Brian Geffon , Ravi Bangoria , Howard Chu , Charlie Jenkins , Colin Ian King , Dominique Martinet , Jann Horn , Masahiro Yamada , Arnd Bergmann , Yang Jihong , Dmitry Vyukov , Andi Kleen , Graham Woodward , Ilkka Koskinen , Anshuman Khandual , Zhongqiu Han , Hao Ge , Tengda Wu , Gabriele Monaco , Chun-Tse Shao , Casey Chen , "Dr. David Alan Gilbert" , Li Huafei , "Steinar H. Gunderson" , Levi Yun , Weilin Wang , Thomas Falcon , Thomas Richter , Andrew Kreimer , "=?UTF-8?q?Krzysztof=20=C5=81opatowski?=" , Christophe Leroy , Jean-Philippe Romain , Junhao He , "Masami Hiramatsu (Google)" , Xu Yang , Steve Clevenger , Zixian Cai , Stephen Brennan , Yujie Liu , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org, llvm@lists.linux.dev Cc: Ian Rogers Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The clang warning -Wshorten-64-to-32 can be useful to catch inadvertent truncation. In some instances this truncation can lead to changing the sign of a result, for example, truncation to return an int to fit a sort routine. Silence the warning by making the implicit truncation explicit. Signed-off-by: Ian Rogers --- tools/perf/builtin-script.c | 39 ++++++++++++++++++---------------- tools/perf/util/print_binary.c | 13 ++++++------ 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 9b16df881af8..bb997f2ceb62 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -724,7 +724,7 @@ static int perf_session__check_output_opt(struct perf_s= ession *session) static int perf_sample__fprintf_regs(struct regs_dump *regs, uint64_t mask= , const char *arch, FILE *fp) { - unsigned i =3D 0, r; + size_t i =3D 0, r; int printed =3D 0; =20 if (!regs || !regs->regs) @@ -734,7 +734,7 @@ static int perf_sample__fprintf_regs(struct regs_dump *= regs, uint64_t mask, cons =20 for_each_set_bit(r, (unsigned long *) &mask, sizeof(mask) * 8) { u64 val =3D regs->regs[i++]; - printed +=3D fprintf(fp, "%5s:0x%"PRIx64" ", perf_reg_name(r, arch), val= ); + printed +=3D fprintf(fp, "%5s:0x%"PRIx64" ", perf_reg_name((int)r, arch)= , val); } =20 return printed; @@ -1150,7 +1150,7 @@ static int grab_bb(u8 *buffer, u64 start, u64 end, if (len <=3D 0) pr_debug("\tcannot fetch code for block at %" PRIx64 "-%" PRIx64 "\n", start, end); - ret =3D len; + ret =3D (int)len; out: addr_location__exit(&al); return ret; @@ -1270,7 +1270,8 @@ static int ip__fprintf_jump(uint64_t ip, struct branc= h_entry *en, =20 if (PRINT_FIELD(BRCNTR)) { struct evsel *pos =3D evsel__leader(evsel); - unsigned int i =3D 0, j, num, mask, width; + unsigned int i =3D 0, width; + size_t mask, num; =20 perf_env__find_br_cntr_info(evsel__env(evsel), NULL, &width); mask =3D (1L << width) - 1; @@ -1283,10 +1284,11 @@ static int ip__fprintf_jump(uint64_t ip, struct bra= nch_entry *en, =20 num =3D (br_cntr >> (i++ * width)) & mask; if (!verbose) { - for (j =3D 0; j < num; j++) + for (size_t j =3D 0; j < num; j++) printed +=3D fprintf(fp, "%s", pos->abbr_name); - } else - printed +=3D fprintf(fp, "%s %d ", pos->name, num); + } else { + printed +=3D fprintf(fp, "%s %zu ", pos->name, num); + } } printed +=3D fprintf(fp, "\t"); } @@ -1328,9 +1330,9 @@ static int ip__fprintf_sym(uint64_t addr, struct thre= ad *thread, goto out; =20 if (al.addr < al.sym->end) - off =3D al.addr - al.sym->start; + off =3D (int)(al.addr - al.sym->start); else - off =3D al.addr - map__start(al.map) - al.sym->start; + off =3D (int)(al.addr - map__start(al.map) - al.sym->start); printed +=3D fprintf(fp, "\t%s", al.sym->name); if (off) printed +=3D fprintf(fp, "%+d", off); @@ -1365,7 +1367,7 @@ static int perf_sample__fprintf_brstackinsn(struct pe= rf_sample *sample, =20 if (!(br && br->nr)) return 0; - nr =3D br->nr; + nr =3D (int)br->nr; if (max_blocks && nr > max_blocks + 1) nr =3D max_blocks + 1; =20 @@ -1645,14 +1647,14 @@ static int perf_sample__fprintf_insn(struct perf_sa= mple *sample, static int perf_sample__fprintf_ipc(struct perf_sample *sample, struct evsel *evsel, FILE *fp) { - unsigned int ipc; + u64 ipc; =20 if (!PRINT_FIELD(IPC) || !sample->cyc_cnt || !sample->insn_cnt) return 0; =20 ipc =3D (sample->insn_cnt * 100) / sample->cyc_cnt; =20 - return fprintf(fp, " \t IPC: %u.%02u (%" PRIu64 "/%" PRIu64 ") ", + return fprintf(fp, " \t IPC: %" PRIu64 ".%02" PRIu64 " (%" PRIu64 "/%" PR= Iu64 ") ", ipc / 100, ipc % 100, sample->insn_cnt, sample->cyc_cnt); } =20 @@ -2036,7 +2038,7 @@ static int evlist__max_name_len(struct evlist *evlist) int max =3D 0; =20 evlist__for_each_entry(evlist, evsel) { - int len =3D strlen(evsel__name(evsel)); + int len =3D (int)strlen(evsel__name(evsel)); =20 max =3D MAX(len, max); } @@ -2147,7 +2149,7 @@ static bool show_event(struct perf_sample *sample, struct addr_location *al, struct addr_location *addr_al) { - int depth =3D thread_stack__depth(thread, sample->cpu); + int depth =3D (int)thread_stack__depth(thread, sample->cpu); =20 if (!symbol_conf.graph_function) return true; @@ -2163,13 +2165,14 @@ static bool show_event(struct perf_sample *sample, u64 ip; const char *name =3D resolve_branch_sym(sample, evsel, thread, al, addr_= al, &ip); - unsigned nlen; + size_t nlen; =20 if (!name) return false; nlen =3D strlen(name); while (*s) { - unsigned len =3D strcspn(s, ","); + size_t len =3D strcspn(s, ","); + if (nlen =3D=3D len && !strncmp(name, s, len)) { thread__set_filter(thread, true); thread__set_filter_entry_depth(thread, depth); @@ -2952,7 +2955,7 @@ static int parse_scriptname(const struct option *opt = __maybe_unused, { char spec[PATH_MAX]; const char *script, *ext; - int len; + size_t len; =20 if (strcmp(str, "lang") =3D=3D 0) { list_available_languages(); @@ -4097,7 +4100,7 @@ int cmd_script(int argc, const char **argv) script.tool.ordering_requires_timestamps =3D true; session =3D perf_session__new(&data, &script.tool); if (IS_ERR(session)) - return PTR_ERR(session); + return (int)PTR_ERR(session); =20 if (header || header_only) { script.tool.show_feat_hdr =3D SHOW_FEAT_HEADER; diff --git a/tools/perf/util/print_binary.c b/tools/perf/util/print_binary.c index 13fdc51c61d9..6894fb5e7865 100644 --- a/tools/perf/util/print_binary.c +++ b/tools/perf/util/print_binary.c @@ -7,8 +7,7 @@ int binary__fprintf(unsigned char *data, size_t len, size_t bytes_per_line, binary__fprintf_t printer, void *extra, FILE *fp) { - size_t i, j, mask; - int printed =3D 0; + size_t mask, printed =3D 0; =20 if (!printer) return 0; @@ -17,7 +16,7 @@ int binary__fprintf(unsigned char *data, size_t len, mask =3D bytes_per_line - 1; =20 printed +=3D printer(BINARY_PRINT_DATA_BEGIN, 0, extra, fp); - for (i =3D 0; i < len; i++) { + for (unsigned int i =3D 0; i < len; i++) { if ((i & mask) =3D=3D 0) { printed +=3D printer(BINARY_PRINT_LINE_BEGIN, -1, extra, fp); printed +=3D printer(BINARY_PRINT_ADDR, i, extra, fp); @@ -26,19 +25,19 @@ int binary__fprintf(unsigned char *data, size_t len, printed +=3D printer(BINARY_PRINT_NUM_DATA, data[i], extra, fp); =20 if (((i & mask) =3D=3D mask) || i =3D=3D len - 1) { - for (j =3D 0; j < mask-(i & mask); j++) + for (unsigned int j =3D 0; j < mask-(i & mask); j++) printed +=3D printer(BINARY_PRINT_NUM_PAD, -1, extra, fp); =20 printer(BINARY_PRINT_SEP, i, extra, fp); - for (j =3D i & ~mask; j <=3D i; j++) + for (unsigned int j =3D i & ~mask; j <=3D i; j++) printed +=3D printer(BINARY_PRINT_CHAR_DATA, data[j], extra, fp); - for (j =3D 0; j < mask-(i & mask); j++) + for (unsigned int j =3D 0; j < mask-(i & mask); j++) printed +=3D printer(BINARY_PRINT_CHAR_PAD, i, extra, fp); printed +=3D printer(BINARY_PRINT_LINE_END, -1, extra, fp); } } printed +=3D printer(BINARY_PRINT_DATA_END, -1, extra, fp); - return printed; + return (int)printed; } =20 int is_printable_array(char *p, unsigned int len) --=20 2.49.0.906.g1f30a19c02-goog