From nobody Fri Dec 19 17:27:07 2025 Received: from mail-pf1-f201.google.com (mail-pf1-f201.google.com [209.85.210.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 F1A9727C17F for ; Wed, 30 Apr 2025 17:51:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746035482; cv=none; b=MRQr2jol7lkHW2sv74jyEXtIiPyEGQOx/xzJjhVrxrzW9yF4fbyqQmWpsmxGLMJbM7GADOl0RKvdzOH5efzCCZoEwNiT+NzIrRauOSHKmb//86T27ZvcLgMqaTAO8f005LckG/sn2GBRWTL4gTQW0m7hFyMGfJLxU7+Go9hjmV4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746035482; c=relaxed/simple; bh=rftYB7Je9QanXS06aJQAV64mnCyECLTT1AGVyG3u3zU=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=kK+pOP74tKGPa5uM9tfrw+GjAzRxmnRmYdAJ63xUxTwK2G/DUTsNMFIkTdnE6Ro/fRz9g68x0V0+5ZxkY62uBjRLmXWiTRyQ8sFnim0/D8LGtveIEy74Naszbet2PhpnMJPBRQaSbqDtAolAkt/rKYC9ccYGCYQi35o2Adz4v+M= 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=SKANfbjC; arc=none smtp.client-ip=209.85.210.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="SKANfbjC" Received: by mail-pf1-f201.google.com with SMTP id d2e1a72fcca58-736d64c5e16so116019b3a.3 for ; Wed, 30 Apr 2025 10:51:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746035480; x=1746640280; 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=P29K1kujZoMXWie6DZ8D+w5WeYejq+SDhNJ0Ah+HhrM=; b=SKANfbjC9UG3Z/6g0Dj9tzS2d7Cw8Uy3vkJB7e7GJ0UlD/Kb76BjHp0ahgh8oVC/B7 T2ocnueNYviuWnL1B2tPQorFUQbDUs6RDHy5KAkZKmWZbIkraCnALSy/uEOCMuO1tOE+ A+rD/mHpD7ipNr2mPSaTlnK6gzdTUKfAGP3L1XYXJ0/cfuXl+ZvMd9aHav0fZKyKei/G xIphRDn/7/n51AoauOJgcSs4geLpw76HTRccuucIbI4dJDhsQF48Y6iwKAeOtYWFjms5 6dLLhmarUndGUaln+xi7kFPrExoVVczX3nsIvGPbQCv5fKV3MqqGZhTsKt74fokrhn8b WNAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746035480; x=1746640280; 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=P29K1kujZoMXWie6DZ8D+w5WeYejq+SDhNJ0Ah+HhrM=; b=P1BpwyGSlVSVZ1E1beTwxIikdndJn+auhFJl94jf+ybxWvX86J2jwH8zAr9RuZAvoH vWuJD0/dbsObzkAMgPbGz6mkCnoffU4+WKTAHMeb4vTiOmGRPLbvFeFRtmvpu8U+vuR3 7rAvmP0gb5rT6H7iRRb1yvaWk0zcxiihd/dSxnLqlcGxc42RoUgdZChUifUlFp0OLeRS d8YzO0cpz65/DjSQqq9LMIow0zIysgL1MxKAcsPZuoReniyOJkzHvNUMbtHHwhQg3jzU joJrtBE3pu2rTvmxJXzMex5wgf1rLM4i55dhcIO4MlPYm07Eyc/MA3lUJya5uJDdPPmG VQhA== X-Forwarded-Encrypted: i=1; AJvYcCVxDc9OB3E5puIkD3JhiUZSZ9zoY1ulT87JwXvqVa3l+/AGCUMkUDA8bvb1RWSeD9cS2exBQE6dtEnoH7A=@vger.kernel.org X-Gm-Message-State: AOJu0Yz0dfXxI+M9yvU0J84kzoJOjQ+W3SwGPoeTBnuFbAxsC4wp5WeQ fM9xTFmmWcnPlhTFLVbguEx72GLK7XTcZ2H1PfxiQCAoM8SJrwM2LH09lV/JQqMeaVY7nfnrF0H Rgxx70Q== X-Google-Smtp-Source: AGHT+IEGPWI/bLU0ChmanZkkVccc6w0xuZletv87Ryews2M2tIKd7C7dL8CS1bxtiFThWozumCMb4ytAPaSq X-Received: from pgg7.prod.google.com ([2002:a05:6a02:4d87:b0:aee:6db5:c8ea]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a20:d50b:b0:1f5:8622:5ecb with SMTP id adf61e73a8af0-20ba87895b6mr142585637.34.1746035479906; Wed, 30 Apr 2025 10:51:19 -0700 (PDT) Date: Wed, 30 Apr 2025 10:49:59 -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-12-irogers@google.com> Subject: [PATCH v2 11/47] perf arm-spe: 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 --- .../util/arm-spe-decoder/arm-spe-decoder.c | 4 ++-- .../arm-spe-decoder/arm-spe-pkt-decoder.c | 2 +- tools/perf/util/arm-spe.c | 24 +++++++++---------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c b/tools/perf= /util/arm-spe-decoder/arm-spe-decoder.c index 688fe6d75244..58107970b215 100644 --- a/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c +++ b/tools/perf/util/arm-spe-decoder/arm-spe-decoder.c @@ -117,7 +117,7 @@ static int arm_spe_get_data(struct arm_spe_decoder *dec= oder) if (!decoder->len) pr_debug("No more data\n"); =20 - return decoder->len; + return (int)decoder->len; } =20 static int arm_spe_get_next_packet(struct arm_spe_decoder *decoder) @@ -187,7 +187,7 @@ static int arm_spe_read_record(struct arm_spe_decoder *= decoder) break; case ARM_SPE_COUNTER: if (idx =3D=3D SPE_CNT_PKT_HDR_INDEX_TOTAL_LAT) - decoder->record.latency =3D payload; + decoder->record.latency =3D (u32)payload; break; case ARM_SPE_CONTEXT: decoder->record.context_id =3D payload; diff --git a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c b/tools/= perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c index 13cadb2f1cea..a6d04ad50db6 100644 --- a/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c +++ b/tools/perf/util/arm-spe-decoder/arm-spe-pkt-decoder.c @@ -63,7 +63,7 @@ static int arm_spe_get_payload(const unsigned char *buf, = size_t len, default: return ARM_SPE_BAD_PACKET; } =20 - return 1 + ext_hdr + payload_len; + return 1 + ext_hdr + (int)payload_len; } =20 static int arm_spe_get_pad(struct arm_spe_pkt *packet) diff --git a/tools/perf/util/arm-spe.c b/tools/perf/util/arm-spe.c index 2a9775649cc2..561bef7b4628 100644 --- a/tools/perf/util/arm-spe.c +++ b/tools/perf/util/arm-spe.c @@ -786,7 +786,7 @@ static bool arm_spe__synth_ds(struct arm_spe_queue *spe= q, } =20 for (i =3D 0; i < ARRAY_SIZE(data_source_handles); i++) { - if (is_midr_in_range_list(midr, data_source_handles[i].midr_ranges)) { + if (is_midr_in_range_list((u32)midr, data_source_handles[i].midr_ranges)= ) { data_source_handles[i].ds_synth(record, data_src); return true; } @@ -956,7 +956,7 @@ static int arm_spe_run_decoder(struct arm_spe_queue *sp= eq, u64 *timestamp) */ record =3D &speq->decoder->record; if (!spe->timeless_decoding && record->context_id !=3D (u64)-1) { - ret =3D arm_spe_set_tid(speq, record->context_id); + ret =3D arm_spe_set_tid(speq, (pid_t)record->context_id); if (ret) return ret; =20 @@ -1344,8 +1344,8 @@ static u64 **arm_spe__alloc_metadata(struct perf_reco= rd_auxtrace_info *info, } =20 *ver =3D ptr[ARM_SPE_HEADER_VERSION]; - hdr_sz =3D ptr[ARM_SPE_HEADER_SIZE]; - *nr_cpu =3D ptr[ARM_SPE_CPUS_NUM]; + hdr_sz =3D (int)ptr[ARM_SPE_HEADER_SIZE]; + *nr_cpu =3D (int)ptr[ARM_SPE_CPUS_NUM]; =20 metadata =3D calloc(*nr_cpu, sizeof(*metadata)); if (!metadata) @@ -1353,7 +1353,7 @@ static u64 **arm_spe__alloc_metadata(struct perf_reco= rd_auxtrace_info *info, =20 /* Locate the start address of per CPU metadata */ ptr +=3D hdr_sz; - per_cpu_sz =3D (metadata_size - (hdr_sz * sizeof(u64))) / (*nr_cpu); + per_cpu_sz =3D (int)((metadata_size - (hdr_sz * sizeof(u64))) / (*nr_cpu)= ); =20 for (i =3D 0; i < *nr_cpu; i++) { metadata[i] =3D arm_spe__alloc_per_cpu_metadata(ptr, per_cpu_sz); @@ -1405,7 +1405,7 @@ static void arm_spe_free(struct perf_session *session) auxtrace_heap__free(&spe->heap); arm_spe_free_events(session); session->auxtrace =3D NULL; - arm_spe__free_metadata(spe->metadata, spe->metadata_nr_cpu); + arm_spe__free_metadata(spe->metadata, (int)spe->metadata_nr_cpu); free(spe); } =20 @@ -1451,8 +1451,8 @@ static void arm_spe_print_info(struct arm_spe *spe, _= _u64 *arr) hdr_size =3D ARM_SPE_AUXTRACE_V1_PRIV_MAX; hdr_fmts =3D metadata_hdr_v1_fmts; } else { - cpu_num =3D arr[ARM_SPE_CPUS_NUM]; - hdr_size =3D arr[ARM_SPE_HEADER_SIZE]; + cpu_num =3D (unsigned int)arr[ARM_SPE_CPUS_NUM]; + hdr_size =3D (unsigned int)arr[ARM_SPE_HEADER_SIZE]; hdr_fmts =3D metadata_hdr_fmts; } =20 @@ -1466,7 +1466,7 @@ static void arm_spe_print_info(struct arm_spe *spe, _= _u64 *arr) * are fixed. The sequential parameter size is decided by the * field 'ARM_SPE_CPU_NR_PARAMS'. */ - cpu_size =3D (ARM_SPE_CPU_NR_PARAMS + 1) + arr[ARM_SPE_CPU_NR_PARAMS]; + cpu_size =3D (unsigned int)((ARM_SPE_CPU_NR_PARAMS + 1) + arr[ARM_SPE_CP= U_NR_PARAMS]); for (i =3D 0; i < cpu_size; i++) fprintf(stdout, metadata_per_cpu_fmts[i], arr[i]); arr +=3D cpu_size; @@ -1731,9 +1731,9 @@ int arm_spe_process_auxtrace_info(union perf_event *e= vent, spe->machine =3D &session->machines.host; /* No kvm support */ spe->auxtrace_type =3D auxtrace_info->type; if (metadata_ver =3D=3D 1) - spe->pmu_type =3D auxtrace_info->priv[ARM_SPE_PMU_TYPE]; + spe->pmu_type =3D (u32)auxtrace_info->priv[ARM_SPE_PMU_TYPE]; else - spe->pmu_type =3D auxtrace_info->priv[ARM_SPE_PMU_TYPE_V2]; + spe->pmu_type =3D (u32)auxtrace_info->priv[ARM_SPE_PMU_TYPE_V2]; spe->metadata =3D metadata; spe->metadata_ver =3D metadata_ver; spe->metadata_nr_cpu =3D nr_cpu; @@ -1752,7 +1752,7 @@ int arm_spe_process_auxtrace_info(union perf_event *e= vent, * "time_cycles" only if they are contained in the event. */ spe->tc.time_shift =3D tc->time_shift; - spe->tc.time_mult =3D tc->time_mult; + spe->tc.time_mult =3D (u32)tc->time_mult; spe->tc.time_zero =3D tc->time_zero; =20 if (event_contains(*tc, time_cycles)) { --=20 2.49.0.906.g1f30a19c02-goog