From nobody Mon Feb 9 07:59:22 2026 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (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 211D422578A for ; Tue, 1 Apr 2025 18:25:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743531953; cv=none; b=LcIDxQ4inzWdvb8+TqY0XCFKNLWgvdWv08cwTUA9rhJ9ABq6keAO/A5guCc8J8tsslE8h7o1C4V1NlKgrNW4o+BxOMXgrZ2IqomWbnFsMYehNNb3woXWdJ3XrpMm1vWyAUzyxvkSuQ849O5DO8XqwY2h/wGSAvIFIv4vP7kCJVo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743531953; c=relaxed/simple; bh=jNRHk+HoP4LC7aVMHfDNdLRSleTyuQPlCBkTlkM17/o=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=bKAkeBy3C46TR8MToK/sowwwcclRlDfCJAbaj3cDjIf09ua/GOFjQ8BQRdAWU2ktH7pqEIKDghxgqWGHu+tWDdueD6VDMY3q6r40FKBNmlG+2UYcePZVvJJLIsEMN83YfQNPeMXdwu0sSlYRf49pifqJaiqBin1T6XoMWYtzvxc= 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=OZAL0I5V; arc=none smtp.client-ip=209.85.214.201 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="OZAL0I5V" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-22412127fd7so82058465ad.0 for ; Tue, 01 Apr 2025 11:25:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743531951; x=1744136751; darn=vger.kernel.org; h=to:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=KR8kCL7xwq040/uGoJTgKcPRCll2n3dLmKu7Yyfytk4=; b=OZAL0I5Vh5pH7sRW+IHFGAHSxo+YguZKtm+OtFOqIGyCsZmBTloOPvvWazpRjfpzKk gyTElXirTYGmhSMZpnYwgKy6iH4n+VRuNsc1eZDBgvsnkgHOUaq9vuajqIPX/Rca8YPS RBSQ5A1QgSntWGKtC+WB6eb9yiWy5TINSf32yhA0Q2uL2PSQ9ziVDPlovluTqexY0FU4 zPQRpa9D9dKSTctwbFWQeapVrJIl8aKf9VBH+3+rTTbNQ+KCBAkQz/7KUsmuMUctucNA KZCaCBy50d0p6B6RSNGDS/zkQ2kS7eNAmcmetI+bymx5yur8+MzTlwozu16Q5NxYp8I0 p1Uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743531951; x=1744136751; h=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=KR8kCL7xwq040/uGoJTgKcPRCll2n3dLmKu7Yyfytk4=; b=PKF0Qc6661wP/50isfakiWNkTVg7z/D7NgOY/1BpOrzm64R+pYpCto6sBanpYESSWy Re+q4F10pvQ53A3cGfIm6sVOBiNr2ETMWGy3SvdZxOv3o1ssY4Mv7MAOaOx+lps2j5PB 8EzJOZ1gPv7cul5HNQtD1Alir4y0WX8P8PA/CXtN5Mx7j2f3GVdEzIR6vDu47buxexzT V16Qf/VK+jd42wNX2YyQ4k6cZQp7/eLDxmZwFM7k4g96GK6IGHHks0ZBVb/S2J/IPQqt vMYiyLeOQRzUps1SJCb5mnDItaHr0MWwJXcMNN7iVrY8yNLU7AdFfDLiByxire0bZ1s1 oPNw== X-Forwarded-Encrypted: i=1; AJvYcCWwOLZgSRaAjOgZkx3luXIvZFCmo86Mcd2v1xCYw7st2UwZHW14xaT/RU4B/2RT0h0hcy2gBQdoQQHGk4I=@vger.kernel.org X-Gm-Message-State: AOJu0YyzGImZCDtBE05kohenlYPy/vF4dmr2G1jR9eFDNoOQ2/9A+Uy+ yhLd4/T6HUfRBQyn/HYn69E9cDWL6Aiz0YVSpz4bCTkrF23aP4jeMxLO7wDqCVnehZeyXnCIpoo KXWcXzA== X-Google-Smtp-Source: AGHT+IEPqgz+rFeXBdNtdF9MopmgtL+fIX9Z60fCNyZbM/1JhnyjvKKLZ8SDjN8bE87gqdGCj1ypt69T/4tz X-Received: from pfblb4.prod.google.com ([2002:a05:6a00:4f04:b0:730:96d1:c213]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:902:f54a:b0:223:432b:593d with SMTP id d9443c01a7336-2292f9f3b90mr199136565ad.42.1743531951082; Tue, 01 Apr 2025 11:25:51 -0700 (PDT) Date: Tue, 1 Apr 2025 11:23:35 -0700 In-Reply-To: <20250401182347.3422199-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: <20250401182347.3422199-1-irogers@google.com> X-Mailer: git-send-email 2.49.0.504.g3bcea36a83-goog Message-ID: <20250401182347.3422199-38-irogers@google.com> Subject: [PATCH v1 37/48] perf inject: Silence -Wshorten-64-to-32 warnings From: Ian Rogers To: Yury Norov , Rasmus Villemoes , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , 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 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-inject.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c index 11e49cafa3af..09a99cec8f78 100644 --- a/tools/perf/builtin-inject.c +++ b/tools/perf/builtin-inject.c @@ -390,7 +390,7 @@ static int perf_event__repipe_sample(const struct perf_= tool *tool, if (inject->itrace_synth_opts.set && sample->aux_sample.size) { event =3D perf_inject__cut_auxtrace_sample(inject, event, sample); if (IS_ERR(event)) - return PTR_ERR(event); + return (int)PTR_ERR(event); } =20 return perf_event__repipe_synth(tool, event); @@ -697,13 +697,13 @@ static struct strlist *perf_inject__parse_known_build= _ids( { struct str_node *pos, *tmp; struct strlist *known_build_ids; - int bid_len; =20 known_build_ids =3D strlist__new(known_build_ids_string, NULL); if (known_build_ids =3D=3D NULL) return NULL; strlist__for_each_entry_safe(pos, tmp, known_build_ids) { const char *build_id, *dso_name; + size_t bid_len; =20 build_id =3D skip_spaces(pos->s); dso_name =3D strchr(build_id, ' '); @@ -717,7 +717,7 @@ static struct strlist *perf_inject__parse_known_build_i= ds( strlist__remove(known_build_ids, pos); continue; } - for (int ix =3D 0; 2 * ix + 1 < bid_len; ++ix) { + for (size_t ix =3D 0; 2 * ix + 1 < bid_len; ++ix) { if (!isxdigit(build_id[2 * ix]) || !isxdigit(build_id[2 * ix + 1])) { strlist__remove(known_build_ids, pos); @@ -732,10 +732,10 @@ static bool perf_inject__lookup_known_build_id(struct= perf_inject *inject, struct dso *dso) { struct str_node *pos; - int bid_len; =20 strlist__for_each_entry(pos, inject->known_build_ids) { const char *build_id, *dso_name; + size_t bid_len; =20 build_id =3D skip_spaces(pos->s); dso_name =3D strchr(build_id, ' '); @@ -743,7 +743,7 @@ static bool perf_inject__lookup_known_build_id(struct p= erf_inject *inject, dso_name =3D skip_spaces(dso_name); if (strcmp(dso__long_name(dso), dso_name)) continue; - for (int ix =3D 0; 2 * ix + 1 < bid_len; ++ix) { + for (size_t ix =3D 0; 2 * ix + 1 < bid_len; ++ix) { dso__bid(dso)->data[ix] =3D (hex(build_id[2 * ix]) << 4 | hex(build_id[2 * ix + 1])); } @@ -1006,7 +1006,7 @@ static int perf_inject__sched_stat(const struct perf_= tool *tool, union perf_event *event_sw; struct perf_sample sample_sw; struct perf_inject *inject =3D container_of(tool, struct perf_inject, too= l); - u32 pid =3D evsel__intval(evsel, sample, "pid"); + u32 pid =3D (u32)evsel__intval(evsel, sample, "pid"); =20 list_for_each_entry(ent, &inject->samples, node) { if (pid =3D=3D ent->tid) @@ -1038,7 +1038,7 @@ static int guest_session__output_bytes(struct guest_s= ession *gs, void *buf, size { ssize_t ret =3D writen(gs->tmp_fd, buf, sz); =20 - return ret < 0 ? ret : 0; + return ret < 0 ? (int)ret : 0; } =20 static int guest_session__repipe(const struct perf_tool *tool, @@ -1444,7 +1444,7 @@ static int guest_session__start(struct guest_session = *gs, const char *name, bool =20 session =3D perf_session__new(&gs->data, &gs->tool); if (IS_ERR(session)) - return PTR_ERR(session); + return (int)PTR_ERR(session); gs->session =3D session; =20 /* @@ -1518,7 +1518,7 @@ static void guest_session__exit(struct guest_session = *gs) static void get_tsc_conv(struct perf_tsc_conversion *tc, struct perf_recor= d_time_conv *time_conv) { tc->time_shift =3D time_conv->time_shift; - tc->time_mult =3D time_conv->time_mult; + tc->time_mult =3D (u32)time_conv->time_mult; tc->time_zero =3D time_conv->time_zero; tc->time_cycles =3D time_conv->time_cycles; tc->time_mask =3D time_conv->time_mask; @@ -1578,7 +1578,7 @@ static int guest_session__fetch(struct guest_session = *gs) hdr =3D buf; ret =3D readn(gs->tmp_fd, buf, hdr_sz); if (ret < 0) - return ret; + return (int)ret; =20 if (!ret) { /* Zero size means EOF */ @@ -1590,7 +1590,7 @@ static int guest_session__fetch(struct guest_session = *gs) =20 ret =3D readn(gs->tmp_fd, buf, hdr->size - hdr_sz); if (ret < 0) - return ret; + return (int)ret; =20 gs->ev.event =3D (union perf_event *)gs->ev.event_buf; gs->ev.sample.time =3D 0; @@ -1603,7 +1603,7 @@ static int guest_session__fetch(struct guest_session = *gs) ret =3D evlist__parse_sample(gs->session->evlist, gs->ev.event, &gs->ev.s= ample); if (ret) { pr_err("Parse failed fetching guest event"); - return ret; + return (int)ret; } =20 if (!gs->have_tc) { @@ -1982,7 +1982,7 @@ static int parse_guest_data(const struct option *opt,= const char *str, int unset tok =3D strsep(&s, ","); if (!tok) goto bad_args; - gs->machine_pid =3D strtoul(tok, NULL, 0); + gs->machine_pid =3D (u32)strtoul(tok, NULL, 0); if (!inject->guest_session.machine_pid) goto bad_args; =20 @@ -2535,7 +2535,7 @@ int cmd_inject(int argc, const char **argv) /*trace_event_repipe=3D*/inject.output.is_pipe); =20 if (IS_ERR(inject.session)) { - ret =3D PTR_ERR(inject.session); + ret =3D (int)PTR_ERR(inject.session); goto out_close_output; } =20 --=20 2.49.0.504.g3bcea36a83-goog