From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.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 D9D7B27A446 for ; Wed, 30 Apr 2025 17:51:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746035482; cv=none; b=YK7J6U19+hshYSCKll/sDDOA7xPYSlLJWKU3U6cmKG5Y25wrfb9nuQKG9kzK7R/fSMh+Bpvu3mbRrBEAiRJL/1WH8QBEh4vr6NYqmiw1nv+MhtjrHNdXsS58RExBIJBO8Q+qrfAPMlRK4LNOQZM7A3vPVwPtGKoAdZjlHfMJLO0= 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=RTDbI+Ab; arc=none smtp.client-ip=209.85.215.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="RTDbI+Ab" Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-af8e645a1d1so55778a12.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=lists.linux.dev; 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=RTDbI+Abw9p8TtnKCyyzlyVK9idkn0xpcTiY0WstT50oBT4t1+EOMe1sxK71/mAwsU lFU7r944Fuc+24Dck+/D67CqYJ2or7unj9o4vRt+MKBIaI5hwYiEjydSDYGQy+yWEE/r HWFOISKyFJe9U9M8Yj681sUbwgZuV5t3PYNmRJFCnwDLZ9/Gh2p5FTFEBvs6pDDa/3I9 33MSe0WEYuJCEvSaJHO6pcBCrN9prm1SmTgCG3wu528uzgDVhSUbqhuT3m48Ei6R4jeU 1grw9QSmxawC8MN8OpwfOfsk0T/bhTPwqyydo216DYWRWrn7ug3xan+auCgw8b5/2yTO uaRg== 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=Im97yr9lDr8JFmPNr2+Wj4sgAFhy9/dAM8Hu2FBvUm09jxwZ4rCWAueTVapi4ujfvn I9lgWpmFm3vpEdb5Q3/7nQPWTEhUO+5iMYK8AZfD0KR1tTCpl17630BSuPRO59G2nPzg LcHPWbYh6TKLwWiAR7nSZd7fkEm8OiuGTpQa6G7/61hlQhJjnC43KvZnmaEmITFKWAcM Tf/nVRSKupSsG+RmbsBUZxha9vbpHGt695ddibukAPKbUGi1jBBzwWYzxpyoPzMUduEf bh/kMgpKQacgoDncZYO+b9s0P8FxgEqlrH1ZJ9zj/aai+z1orOYaKai469Vzg1Q02sAo G75Q== X-Forwarded-Encrypted: i=1; AJvYcCUl4Bs+RNv297mJnoZ6UVAV7uCiFR5BR20Mh0Ab/iwxS6JJEZA3Rj3PAqzc73mJhIXk7vKS@lists.linux.dev X-Gm-Message-State: AOJu0Yzpvqg8dtPHy3PDydw0wvUXJQX682QhPuiMUDNNQtSfKSBtKH5I CZu1+T0AtDiQiYLavYXkezwtzF/1DJUuZnMcj4H1Z7m+NpGqANNOW/40YUi6+WU+r5NfFBU9/c1 xVBprrw== 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: llvm@lists.linux.dev 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-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 *decoder) if (!decoder->len) pr_debug("No more data\n"); - return decoder->len; + return (int)decoder->len; } 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 == SPE_CNT_PKT_HDR_INDEX_TOTAL_LAT) - decoder->record.latency = payload; + decoder->record.latency = (u32)payload; break; case ARM_SPE_CONTEXT: decoder->record.context_id = 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; } - return 1 + ext_hdr + payload_len; + return 1 + ext_hdr + (int)payload_len; } 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 *speq, } for (i = 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 *speq, u64 *timestamp) */ record = &speq->decoder->record; if (!spe->timeless_decoding && record->context_id != (u64)-1) { - ret = arm_spe_set_tid(speq, record->context_id); + ret = arm_spe_set_tid(speq, (pid_t)record->context_id); if (ret) return ret; @@ -1344,8 +1344,8 @@ static u64 **arm_spe__alloc_metadata(struct perf_record_auxtrace_info *info, } *ver = ptr[ARM_SPE_HEADER_VERSION]; - hdr_sz = ptr[ARM_SPE_HEADER_SIZE]; - *nr_cpu = ptr[ARM_SPE_CPUS_NUM]; + hdr_sz = (int)ptr[ARM_SPE_HEADER_SIZE]; + *nr_cpu = (int)ptr[ARM_SPE_CPUS_NUM]; metadata = calloc(*nr_cpu, sizeof(*metadata)); if (!metadata) @@ -1353,7 +1353,7 @@ static u64 **arm_spe__alloc_metadata(struct perf_record_auxtrace_info *info, /* Locate the start address of per CPU metadata */ ptr += hdr_sz; - per_cpu_sz = (metadata_size - (hdr_sz * sizeof(u64))) / (*nr_cpu); + per_cpu_sz = (int)((metadata_size - (hdr_sz * sizeof(u64))) / (*nr_cpu)); for (i = 0; i < *nr_cpu; i++) { metadata[i] = 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 = NULL; - arm_spe__free_metadata(spe->metadata, spe->metadata_nr_cpu); + arm_spe__free_metadata(spe->metadata, (int)spe->metadata_nr_cpu); free(spe); } @@ -1451,8 +1451,8 @@ static void arm_spe_print_info(struct arm_spe *spe, __u64 *arr) hdr_size = ARM_SPE_AUXTRACE_V1_PRIV_MAX; hdr_fmts = metadata_hdr_v1_fmts; } else { - cpu_num = arr[ARM_SPE_CPUS_NUM]; - hdr_size = arr[ARM_SPE_HEADER_SIZE]; + cpu_num = (unsigned int)arr[ARM_SPE_CPUS_NUM]; + hdr_size = (unsigned int)arr[ARM_SPE_HEADER_SIZE]; hdr_fmts = metadata_hdr_fmts; } @@ -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 = (ARM_SPE_CPU_NR_PARAMS + 1) + arr[ARM_SPE_CPU_NR_PARAMS]; + cpu_size = (unsigned int)((ARM_SPE_CPU_NR_PARAMS + 1) + arr[ARM_SPE_CPU_NR_PARAMS]); for (i = 0; i < cpu_size; i++) fprintf(stdout, metadata_per_cpu_fmts[i], arr[i]); arr += cpu_size; @@ -1731,9 +1731,9 @@ int arm_spe_process_auxtrace_info(union perf_event *event, spe->machine = &session->machines.host; /* No kvm support */ spe->auxtrace_type = auxtrace_info->type; if (metadata_ver == 1) - spe->pmu_type = auxtrace_info->priv[ARM_SPE_PMU_TYPE]; + spe->pmu_type = (u32)auxtrace_info->priv[ARM_SPE_PMU_TYPE]; else - spe->pmu_type = auxtrace_info->priv[ARM_SPE_PMU_TYPE_V2]; + spe->pmu_type = (u32)auxtrace_info->priv[ARM_SPE_PMU_TYPE_V2]; spe->metadata = metadata; spe->metadata_ver = metadata_ver; spe->metadata_nr_cpu = nr_cpu; @@ -1752,7 +1752,7 @@ int arm_spe_process_auxtrace_info(union perf_event *event, * "time_cycles" only if they are contained in the event. */ spe->tc.time_shift = tc->time_shift; - spe->tc.time_mult = tc->time_mult; + spe->tc.time_mult = (u32)tc->time_mult; spe->tc.time_zero = tc->time_zero; if (event_contains(*tc, time_cycles)) { -- 2.49.0.906.g1f30a19c02-goog