From nobody Fri Dec 19 17:27:06 2025 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 3DE2927E7D4 for ; Wed, 30 Apr 2025 17:51:26 +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=1746035491; cv=none; b=lQEDphdrghVSvmT9WhZvhBMXjOyeDxY6buNsUhw/ZQHqd5yC5NKvBn0+piMV//H8kDpVfjXGWWoUYzEj+5hZeUyNG6XJh6I1q16YEzocjFb91QNd4d2BKbFR2mWQ88je24CPPi4a00fNabheLyhxPAkit5irjLPQCT2HH5IvUhw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746035491; c=relaxed/simple; bh=PSiOgG7bWFRhRJGZr4xrC9dwLgvQlvIMtzHTDPuKezI=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=PZb8g0dVASSH3DHAHeDiolbjypfA32Vys29NfOEupEaJf3Q7qmXkbyQNng5cYxKMXEf9Eix2vkJ0lFwLbk3LreM7bg6WFaC7L5zDIZw0O2fVpH4BBfKy4QbYl9jmmIOESoseGBd27RLTZTp0uXa6jZv//n+hsfVJRNvN/TqAl5c= 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=akEgTEzq; 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="akEgTEzq" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-22647ff3cf5so922515ad.0 for ; Wed, 30 Apr 2025 10:51:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746035486; x=1746640286; 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=ffqnGj+pBhQ6TrUOmeMPrDQngLLfEb3NGF58IKymfSU=; b=akEgTEzq9okNBFygSKv2UXkT6bA8FCS13nHc1c17l9So7P6atcoFNIodatPcndzfzx vopUw+ZBPSSqffVuahaLiriLd0xL+wURIhNylHgdveUdnLNKquX7C1ALNSyuABo9AqA8 Cq13rylt6cb7neGiEEy8OHQg4vf3GNoN8UKHl/Ik+OGBHa1DDn9+8WGxj0X6/ng+xuJ2 hNOZBpU/alqB6Ee/33V2eBsKKEDpyCbJ8UiW9+41seDzbAqgfkHxyvxu8hmKSkQx0l7L I073bcYp2ognHHV+PpkQplsc/eZkCSVMPwGYNF7gAiDfdpve0EbIWTP2h3VvulQBtIJf 7WQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746035486; x=1746640286; 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=ffqnGj+pBhQ6TrUOmeMPrDQngLLfEb3NGF58IKymfSU=; b=T/MokTavV/8AFHheyt9k3VhMus70ffA5diV1DOQ4H0FAT9RY9RzUdpfyI8CfBUg621 IqEuk42H3MKsMwmgpePKa6h6x+PqUvYwKLoYjpZrVgNEJjjPiNJgkCwGRT/gSig+aaMG 73ZIYZzgBwCXeTWVHuJDk7TJwrJXJNyQfBsWdgUOk8F8rSLADoxttVWktNBii52eJ7n1 K+42c9GqPl67Z5IrrKEhiCPhoxXHIW5oU8xpSkJ9X5TJ5p3rvBmbwSjzMeH3cRWEorEY 2jgVwJLDtLmKERM7k4lRI0SNwPBwnQSiBpVxzC4/mgGtzGg3Kv9o630lYI1H3V9GX4E3 UYuQ== X-Forwarded-Encrypted: i=1; AJvYcCVI9Sbcr+B4c/xWij1Q8UorOUtD7HQFzgyU4P1Vgbz1eNOB2RnllXciSKEKiwLByoNmFn3wqGNR0NuHyb8=@vger.kernel.org X-Gm-Message-State: AOJu0YzW6HtswaytIMKYuUSHjJiG88j6H2CB+E8ZAGH9nWBCyG8JI5a5 +tJxuDTf9LfEgCRCaIvSxqy6dvYEAVGz0wmYc3wD0JPzQ32AcbBCShKBORuzkCrJ30yTC34pMHz 31o3G3g== X-Google-Smtp-Source: AGHT+IFoFY/yppOPHW+0sW6SMr0S9TXM/T2GiOtYKIfeG6NYAA5w/aaMGtekGErA65y8/28Sygemm2DdYeVj X-Received: from pjbrr12.prod.google.com ([2002:a17:90b:2b4c:b0:2ff:4be0:c675]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90a:da8f:b0:2ff:6bd0:ff26 with SMTP id 98e67ed59e1d1-30a3336fea3mr4760497a91.34.1746035485584; Wed, 30 Apr 2025 10:51:25 -0700 (PDT) Date: Wed, 30 Apr 2025 10:50:02 -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-15-irogers@google.com> Subject: [PATCH v2 14/47] perf jvmti: 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/jvmti/jvmti_agent.c | 6 +++--- tools/perf/util/genelf.c | 2 +- tools/perf/util/jitdump.c | 24 +++++++++++++----------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/tools/perf/jvmti/jvmti_agent.c b/tools/perf/jvmti/jvmti_agent.c index 526dcaf9f079..2e2be9d8a118 100644 --- a/tools/perf/jvmti/jvmti_agent.c +++ b/tools/perf/jvmti/jvmti_agent.c @@ -377,7 +377,7 @@ jvmti_write_code(void *agent, char const *sym, sym_len =3D strlen(sym) + 1; =20 rec.p.id =3D JIT_CODE_LOAD; - rec.p.total_size =3D sizeof(rec) + sym_len; + rec.p.total_size =3D (uint32_t)(sizeof(rec) + sym_len); rec.p.timestamp =3D perf_get_timestamp(); =20 rec.code_size =3D size; @@ -400,7 +400,7 @@ jvmti_write_code(void *agent, char const *sym, */ rec.code_index =3D code_generation++; =20 - ret =3D fwrite_unlocked(&rec, sizeof(rec), 1, fp); + ret =3D (int)fwrite_unlocked(&rec, sizeof(rec), 1, fp); fwrite_unlocked(sym, sym_len, 1, fp); =20 if (code) @@ -454,7 +454,7 @@ jvmti_write_debug_info(void *agent, uint64_t code, */ size +=3D nr_lines * sizeof(struct debug_entry); size +=3D flen; - rec.p.total_size =3D size; + rec.p.total_size =3D (uint32_t)size; =20 /* * If JVM is multi-threaded, multiple concurrent calls to agent diff --git a/tools/perf/util/genelf.c b/tools/perf/util/genelf.c index cdce7f173d00..6da8f3c53f7d 100644 --- a/tools/perf/util/genelf.c +++ b/tools/perf/util/genelf.c @@ -252,7 +252,7 @@ jit_write_elf(int fd, uint64_t load_addr, const char *s= ym, Elf_Shdr *shdr; uint64_t eh_frame_base_offset; char *strsym =3D NULL; - int symlen; + size_t symlen; int retval =3D -1; =20 if (elf_version(EV_CURRENT) =3D=3D EV_NONE) { diff --git a/tools/perf/util/jitdump.c b/tools/perf/util/jitdump.c index 624964f01b5f..874ced77d0a4 100644 --- a/tools/perf/util/jitdump.c +++ b/tools/perf/util/jitdump.c @@ -160,7 +160,7 @@ jit_open(struct jit_buf_desc *jd, const char *name) */ flockfile(jd->in); =20 - ret =3D fread(buf, sizeof(header), 1, jd->in); + ret =3D (int)fread(buf, sizeof(header), 1, jd->in); if (ret !=3D 1) goto error; =20 @@ -226,7 +226,7 @@ jit_open(struct jit_buf_desc *jd, const char *name) bsz =3D bs; buf =3D n; /* read extra we do not know about */ - ret =3D fread(buf, bs - bsz, 1, jd->in); + ret =3D (int)fread(buf, bs - bsz, 1, jd->in); if (ret !=3D 1) goto error; } @@ -274,7 +274,7 @@ jit_get_next_entry(struct jit_buf_desc *jd) /* * file is still locked at this point */ - ret =3D fread(prefix, sizeof(*prefix), 1, jd->in); + ret =3D (int)fread(prefix, sizeof(*prefix), 1, jd->in); if (ret !=3D 1) return NULL; =20 @@ -304,7 +304,7 @@ jit_get_next_entry(struct jit_buf_desc *jd) =20 addr =3D ((void *)jd->buf) + sizeof(*prefix); =20 - ret =3D fread(addr, bs - sizeof(*prefix), 1, jd->in); + ret =3D (int)fread(addr, bs - sizeof(*prefix), 1, jd->in); if (ret !=3D 1) return NULL; =20 @@ -398,7 +398,7 @@ static uint64_t convert_timestamp(struct jit_buf_desc *= jd, uint64_t timestamp) return timestamp; =20 tc.time_shift =3D time_conv->time_shift; - tc.time_mult =3D time_conv->time_mult; + tc.time_mult =3D (unsigned int)time_conv->time_mult; tc.time_zero =3D time_conv->time_zero; =20 /* @@ -443,8 +443,8 @@ static int jit_repipe_code_load(struct jit_buf_desc *jd= , union jr_entry *jr) nspid =3D jr->load.pid; pid =3D jr_entry_pid(jd, jr); tid =3D jr_entry_tid(jd, jr); - csize =3D jr->load.code_size; - usize =3D jd->unwinding_mapped_size; + csize =3D (int)jr->load.code_size; + usize =3D (int)jd->unwinding_mapped_size; addr =3D jr->load.code_addr; sym =3D (void *)((unsigned long)jr + sizeof(jr->load)); code =3D (unsigned long)jr + jr->load.p.total_size - csize; @@ -465,8 +465,10 @@ static int jit_repipe_code_load(struct jit_buf_desc *j= d, union jr_entry *jr) =20 size =3D PERF_ALIGN(size, sizeof(u64)); uaddr =3D (uintptr_t)code; - ret =3D jit_emit_elf(jd, filename, sym, addr, (const void *)uaddr, csize,= jd->debug_data, jd->nr_debug_entries, - jd->unwinding_data, jd->eh_frame_hdr_size, jd->unwinding_size); + ret =3D jit_emit_elf(jd, filename, sym, addr, (const void *)uaddr, csize,= jd->debug_data, + (int)jd->nr_debug_entries, jd->unwinding_data, + (uint32_t)jd->eh_frame_hdr_size, + (uint32_t)jd->unwinding_size); =20 if (jd->debug_data && jd->nr_debug_entries) { zfree(&jd->debug_data); @@ -559,8 +561,8 @@ static int jit_repipe_code_move(struct jit_buf_desc *jd= , union jr_entry *jr) =20 nspid =3D jr->load.pid; pid =3D jr_entry_pid(jd, jr); - tid =3D jr_entry_tid(jd, jr); - usize =3D jd->unwinding_mapped_size; + tid =3D (int)jr_entry_tid(jd, jr); + usize =3D (int)jd->unwinding_mapped_size; idr_size =3D jd->machine->id_hdr_size; =20 /* --=20 2.49.0.906.g1f30a19c02-goog