From nobody Fri Dec 19 17:28:34 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 C417C296FD4 for ; Wed, 30 Apr 2025 17:52:10 +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=1746035532; cv=none; b=oZVJ6dpOujMyiEb38o0B3OU1vm7uP04KQNXgTPSnoy2rRJuMrJZuFEAqDi6nc+Y5woPle6YOkeZaV/7MkDwy9cTd3nHFpHIp497roaS/yGOpSmFR+H/U/I/UUcO3T38QfGDHB2e8TxhBVZU7dFAl8p+oa1h+qPB/PsA/IJD/VcI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746035532; c=relaxed/simple; bh=FAztUQ/Qgmw1TxttHWQU7PuFGmCsSreDb+sjOFcGU8A=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=k1ua9r2anoN+Zz1g6X2ou+uzd7LNegWHxEJehfOyUCsWEpLneE8M+bXvweG59slnu1b4Gr1obJDwQ39/QaYtrMr8va97IHQ/q6kFOoWNipwpdvShRjMmbmUCPaU7egxKX8iKKSIF/hmtnrpw9JIP55rlVqXefAElHrHbiLOXmm8= 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=r4F0Ez0q; 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="r4F0Ez0q" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-2ff8a2c7912so113721a91.1 for ; Wed, 30 Apr 2025 10:52:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746035530; x=1746640330; 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=FZUtaXhFUgE5PXKn2aQb3TVIYmNfxUDXrZQfO0BiQpw=; b=r4F0Ez0qk4MB/f/4RZpQ7cjuyXwuXQWuLWgAO6rPns/0jg+uQExlacZ4WtjWMU+EhX RQCgaOSzz76cNjYRueeQe1CzXMtA532bAo9SK+4Noy/34JainbQBhXa2knx7GVSqkLKE TvSe7WsNjMrExEY/tKUEHWw3tU3Q8kFA7rDKlpx0pslAv3u+YqrtQ1Agez9iWK7OizYd CLsFPGJNPJwk987Vy+ailBqMtidOseVdGfTgbPgyzyHfGkrBysTAuzJhzKbRLiJQzubl dzWH6VNOoypIh2AyuV5V5Elh0t6e0ajMpTmsGC3BIvwCqULqg5wPIeeSh8/vvK8NIVAj dE5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746035530; x=1746640330; 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=FZUtaXhFUgE5PXKn2aQb3TVIYmNfxUDXrZQfO0BiQpw=; b=bAFoVXg5y6qGHGACFxzgjb8aHVyGmBH+2kbv+zsh9JUojxFwuHmNFCmFGgXGrDv1Gr pou+hzlrg7mh7rZFlwDNnqdRu1vO7GeBlgjqohLnReoAo36zYQLSymB6fN85w0bd2gqs eU+q9LZnCnYKF4j+cLj6YIzAnAZTk4IU4TV/3LzDBhHW1rpskCtBn7saS3iYOsaP7oG0 azsidX2P/xQcGZoBaUZVjZEyZVduyRxiy3vzwEJjVOUS68z0ftrXA8Ajovle8j6ZcWrt L2lnLJ7ciZN7vyeW9KE0P/M9xrb5j4Eo3NI1mcA2zppFdtk696IeG20pYY4UOLjvw458 gP2g== X-Forwarded-Encrypted: i=1; AJvYcCUDaMyvLDeP7qewyxasr2uwyt5uS5WRCJTgO9YJomnxSyAwHkOmyAmDwVmburRFtIMevmnK9sTjXThmDgY=@vger.kernel.org X-Gm-Message-State: AOJu0Ywm32l0b0evW9RqApmo48guQ+vEE9Ei0+EWi1e13m3IjGCQkr98 TI5g/pW5+Het9N0ybp/pBHrJc3ollS8tJR9Bu4jriJMsZjUIGEVAx5SoDPvsj3r2qzTf0KFr1MR qVyEepg== X-Google-Smtp-Source: AGHT+IFg0N6dq2zxHWgut+7y1R8svB6zqG3dJr0282Hw+KUWivPwpqKfasU09PkOT69V+O3g8rqbUIba1Xct X-Received: from pjbsw7.prod.google.com ([2002:a17:90b:2c87:b0:2fc:3022:36b8]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:53c7:b0:30a:3e8e:ea30 with SMTP id 98e67ed59e1d1-30a3f0b2b89mr638320a91.11.1746035530157; Wed, 30 Apr 2025 10:52:10 -0700 (PDT) Date: Wed, 30 Apr 2025 10:50:24 -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-37-irogers@google.com> Subject: [PATCH v2 36/47] perf inject: 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-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.906.g1f30a19c02-goog