From nobody Mon Feb 9 18:01:23 2026 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 C942221D3D2 for ; Tue, 1 Apr 2025 18:24:59 +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=1743531902; cv=none; b=uKgY4vwTrmsYViha9d4HNB3WQVJUyULy1JvfFT+q3RbLXxUj7qF36EXnH68H4H2HFhkgcODfdRAdI8bnHXE+I/eea45eIxpn77qNLXexAG2/B3kVjHrrPRdos8CUamnWUM7USyg6sSQGQsdaj8ebJ9LFbbxEVyYOoaJxY4zzqsY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743531902; c=relaxed/simple; bh=G1beShr2OJE3B99IVVRLG7JvNtyE0vRd7w9ReDXBJPQ=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Content-Type; b=cRmCDWA92C10aRY9AATsp6EBHJmuj5UiBUUeW3hjNksLj38+ZWaX2GaDUv8Ob8//MLrni7brl6ppSh+2jIQw0+8kqcrNlT3QnA+hy6qNszhC6TXWQEs6M4zV+VbGYemDUK0zDiEjso83amb8zfzqAvii2S/AmBxsn1CKjQj8wYo= 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=m+ofP6MR; 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="m+ofP6MR" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-2ff7cf599beso10929924a91.0 for ; Tue, 01 Apr 2025 11:24:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1743531899; x=1744136699; 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=xyvB/hrRudd3aX9cJ1p0ixiv1zuMhB3nN0i+ysTn1DI=; b=m+ofP6MRgfMxiChrBfeWbzDsNgYFkZvhVkKbEQ4M/+yZfml7Bhxg40y+sllyTIXUFO OYPLxjdkSfy39vefCO9CRSHd9aBO03tmUV79iQyCwKvZweHs/1yCL65l6zwk1oyJw1AT PNzqkBM1Y+K4xjy0qXE3qNK9nioSgrblytWYpF43Os2NN5ocBAv58KC2Cbe/Z8EYEwxO utOncuPB9M8F1wexYeSeD3tH8RJS/2vWeLp8/CrSnAlFqoDWkOGynxyldcxxBC8aknfZ OKrfGzhEggF4jj2EXGYwpBIm9jILd00bdO42U2b6btGP/jtu8jAVzZvKSIorq3uajDti whbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743531899; x=1744136699; 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=xyvB/hrRudd3aX9cJ1p0ixiv1zuMhB3nN0i+ysTn1DI=; b=KSjygVVcl4GeOFFyn7Op+o+Py3iXIlUKfrmIYuBLWTDH8HFCf4GUbjyp9np1z4J2eR mdpFu5ZBhPC3cQrOBIfGGlTMd0FEnc5Hj0J4WQhxGUR2wT7MjwNcer+WZHkvLau1VKCV TEtO+6rSskFWUHZIutwXMyvjfj1+SxuWYPjmPuQSjU4ij3NHfMMgNWveQMtt62j/pVn1 hIcHkHsLrG8kk87m6yTHljIprMtRlqFbrACXuDhf0O20jDlHef2pyVcpSZW+bXAXFNoW FoSrZDXc6BRgz1WgEXuKpSoGEnDIso+G1xWcTWtF1pPRN3O2w4S0biAOguI9t9updMQy rk2g== X-Forwarded-Encrypted: i=1; AJvYcCVw9Rn3kFZEIWlnSCfiKIjWyuJ0duhWFJW5Y8SnA1MGVUMGnPfHrDdgRLuVaanCCZMhtpm4Bu3llD3k1uA=@vger.kernel.org X-Gm-Message-State: AOJu0YziW3N5cgG7bj5MVBfKeG3bevxK1kD443FpktxSxnjkdY6o79b0 jTn43YGEFP4LqxaTC/E6AlaVaIN/JUa+aWSyy+2u6f2Mfmf13fyQm28DBKeK0OpmQO6Fr3dBnBF b0p1a7Q== X-Google-Smtp-Source: AGHT+IFqNyoO9wg1AcwskU/SqQSwLTGoj2ZZZrlovJNkz+5uOGhYMYbqeQpgsHNNLM6uCXnMYqikFnYyzlT6 X-Received: from pfbmc41.prod.google.com ([2002:a05:6a00:76a9:b0:736:4313:e6bc]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:6a00:1701:b0:736:a8db:93bb with SMTP id d2e1a72fcca58-7398034e617mr15291484b3a.5.1743531899092; Tue, 01 Apr 2025 11:24:59 -0700 (PDT) Date: Tue, 1 Apr 2025 11:23:09 -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-12-irogers@google.com> Subject: [PATCH v1 11/48] perf arm-spe: 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 --- .../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.504.g3bcea36a83-goog