From nobody Wed Dec 17 18:01:17 2025 Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.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 4CDC91D63E9 for ; Mon, 16 Dec 2024 23:25:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391507; cv=none; b=eewNIBP8VnxyN5EETdMUQ1x1DbjM9CQtN+UM+yhYTd6OMK5SifoVfQpEn0JCN369cAs9AcaWQNyTtk+RX0/rvQp8MIL05FPd+vt+2CY//jxazuPcQo8kZduHmClm5FJRPLgPjgUHXFU579VUuR2tlNiwSN5QWXwDZfxAzdSE/AM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391507; c=relaxed/simple; bh=y25ckykzTrgcp7uKXoDRtlAxki4h7V8dDeTjlO9sRvk=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=DUDD4zY7bBHarjsWSaxqKfbH0cCn81lJEw3YDFkrpb3FfRzOnSCUsVntmkNRKCxA30rHBIpEpzcHqsio5nNkgp2aixgl3XVvXCyhqwfp6p1zwRED0/tf/EPWBg+MX+5JG+HOtrqnTcu4PJwmyVi8SkTfOkUOvb+6iHMjmygwdVg= 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=gjE5j+bh; arc=none smtp.client-ip=209.85.128.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="gjE5j+bh" Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-6f2b4c302e1so13960817b3.0 for ; Mon, 16 Dec 2024 15:25:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1734391505; x=1734996305; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=ooI5WebwC8lPxkLbqkwqH/UlX24ggq89B5YXrkW+MD0=; b=gjE5j+bhhX75FnGuaLyOS0p8wuX6KmZNGdxoXPKHbeIiEj9BVev447StEq8JK7Wcyg FRkBej2VGOxaGV8IWY+gv79BdPN/4Jr2+/FMxtt4jp3zRcscfItTHqKT87XyebbQOnnU fL8RFPPXmfm3EX5jAdLcCbp/Nf3wZCZgF7jTCWRXIL3VdKI7xjpY2Y0rSmsld+gV/CQZ DHaoqUzTWIFVJHAYkKo1U9vfRi3blTbSx1UslG90zFi+qXoggKqnd0dFLxuVBKiCHMDZ 7zKmGOW4T5moUgRIgMJd3Rhb8+57uzfygLAiK3/1RaDflKzzI2oguVweVf8jcEUDdvJ+ ELIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734391505; x=1734996305; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ooI5WebwC8lPxkLbqkwqH/UlX24ggq89B5YXrkW+MD0=; b=UwC0faNAgPpowQJpyUL5fwG/qkZlV/lmnUekURLw4s0XMkyDatlTqygtGOaaAGf3Yv 9Sj+LdhxnQFetZMEcMaq5iCEqT6/SOp68vQzx7ptLmsZhqoB2P323x0wE+TCMVojABhc YQ0Rc2erv9obDCdcWWwPA2pOc5vKYQdBSVlqDEwJ/BzfubM5sZFzlAKCSyJ3xeUaIEJw g1IpgRuJb9exQmpl+8sTkUXb3J/Vqhzw+SKuE2x3A0RGoF0P8xl4+iqO5cIKZXymQslI M5cBIMA5etxjVGfIpGUqzmDuxhN7NhQla2VJd6xG7/2W/CaxIFNjKAUP47XWoxP09zUV /cJw== X-Forwarded-Encrypted: i=1; AJvYcCXL8xpQhW81sJOEFNccL53dlqg25yYUFk5PWAF7xyN+4gZyO95wWLvyS1we2rX81XSuu+VQYS+2r4cxfqo=@vger.kernel.org X-Gm-Message-State: AOJu0Yym6p9d4p/QHqAA2R3KJd5IRXXj2+Nxm02SA5URc6nbRb3oJ/Aa MMNX3avgRa2dCAqWjvYQIWIvW3Ce5hW0GBHcGAD05nzA2Q9yl6yabuS6q765A/TjKFPEBModlA/ 1dLI4gg== X-Google-Smtp-Source: AGHT+IFYn2r/9Sas9w9uC13l4oG5QEIJCFu52l0PBZLiUpYc1HqO/HPIx485CzZcSTm37QL8Dmp10afmR/6F X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:b850:b916:18b9:17a7]) (user=irogers job=sendgmr) by 2002:a25:d60a:0:b0:e4c:35c4:cf05 with SMTP id 3f1490d57ef6-e4c35c4d551mr3389276.5.1734391505378; Mon, 16 Dec 2024 15:25:05 -0800 (PST) Date: Mon, 16 Dec 2024 15:24:55 -0800 In-Reply-To: <20241216232459.427642-1-irogers@google.com> Message-Id: <20241216232459.427642-2-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20241216232459.427642-1-irogers@google.com> X-Mailer: git-send-email 2.47.1.613.gc27f4b7a9f-goog Subject: [PATCH v3 1/5] perf cpumap: If the die_id is missing use socket/physical_package_id From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Sun Haiyong , Yanteng Si , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" An error value for a missing die_id may be written into things like the cpu_topology_map. As the topology needs to be fully written out, including the die_id, to allow perf.data file features to be aligned we can't allow error values to be written out. Instead base the missing die_id value off of the socket/physical_package_id assuming they correlate 1:1. Signed-off-by: Ian Rogers --- tools/perf/util/cpumap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/cpumap.c b/tools/perf/util/cpumap.c index 27094211edd8..d362272f8466 100644 --- a/tools/perf/util/cpumap.c +++ b/tools/perf/util/cpumap.c @@ -283,7 +283,8 @@ int cpu__get_die_id(struct perf_cpu cpu) { int value, ret =3D cpu__get_topology_int(cpu.cpu, "die_id", &value); =20 - return ret ?: value; + /* If die_id is missing fallback on using the socket/physical_pack= age_id. */ + return ret || value < 0 ? cpu__get_socket_id(cpu) : value; } =20 struct aggr_cpu_id aggr_cpu_id__die(struct perf_cpu cpu, void *data) --=20 2.47.1.613.gc27f4b7a9f-goog From nobody Wed Dec 17 18:01:17 2025 Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) (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 A02AB1DB372 for ; Mon, 16 Dec 2024 23:25:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391510; cv=none; b=PKgt+iNGoYySfX9Kf1rOPAAnOqlD0lI1sXiA5mtTouAWNGvJQN2i6GaqBhMJk2CAyC0NEwR48dHlSQT7wNjKN9Ige/fl7/kkpNh/Ddfth3FtjZFYc+Bj2lbtdk6B2jFdDW2cE2nfrj4wspuZIW4fRi1ec9gdnquff/Pd6i8e1nA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391510; c=relaxed/simple; bh=WydwZX+4HGFs/roSNEAeN+iGcRwNyw0N9yYTQ/F7jhM=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=ssgYEmdd1WFQjKZqJfilyT7wg1qxXzeMmAdivbXEhSkZLkZok+i7HcIl+uuBWcMrtzd2rPLwa5LwTqDzYvMTs5ucxgCSsHGTGKBykBacgaWywi9PnLru8Whu9OBXj7zooZvBKgrbVHbslSy/STyaVLfFLGnExeZ2zmdfhtcNrSs= 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=lKwNvdUL; arc=none smtp.client-ip=209.85.128.202 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="lKwNvdUL" Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-6f2abf11f86so17896857b3.3 for ; Mon, 16 Dec 2024 15:25:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1734391507; x=1734996307; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=6hgXWFWdI7UOHyMHNmnwoqLPHk2iqhyZAlZkweGRato=; b=lKwNvdULgeVVEKuJjuRdUnPiDP5ZGXhfqDRmktuIHNEh+LSjuY9lOmuGJlvy5Sy5Pg P4LpK8TkrfQ7nZu5Omd/rzKcaacdAxNMZ3o160AB5YS7VglggSlvLTh3nzZzFvFb8eGs +smWkr4ucklys4g+3TB7RrZlTdQbkNfJiOEk1v182cqoWAiXR3nlAM4INebLNc1vZbip P9rsr8zebxcxixBYzSR6A2c+fzyKc84WK1mKAtP8aPvNoc8o89K8jkJfkYMe9W430KCj IgrQFwjIDR140F/UKUjUdCtxRnIplHpAzAOvY413yamaZ3O/nwt2SF080C0seY47QydJ DZSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734391507; x=1734996307; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=6hgXWFWdI7UOHyMHNmnwoqLPHk2iqhyZAlZkweGRato=; b=JUuU3qWfMPzfebqnBoAS8leTbvg9H6k5xGP3w4AUrrYi4CgjI+UDAIFjOklwo0yuE1 /NXS9dbpn8RDjy7ukdf7ki5wc/sNfpw5yDGEwKcuOtRhHoscKuxW2Yd+7p47reeBYbxy uuZE4gm0ZtWjPEfnLOqtm5eudeIYyrMUYgeJfoODBiSopO2thCTSbSkWdYt7pMH1tga7 tc/jwD8ghZNZQl2+zUB739rMSrrVN7iF55EpOyz2x8L4OpQvc1jXR9FS6XvfafaM6/Sf y3yiulc0t3b9zIqSzZvmKS9XcXSo6M27p0NUbbZpmizb7Yda9L8VwD8dPEKPfb1Ts1iH xKRQ== X-Forwarded-Encrypted: i=1; AJvYcCWYkcij/dlNs/tRrr3fsvdfEqMlhD3YtK9/5G+FCCgkTf8xV1TJmdTePAid7S8tfl794+dqXFBVxDMyLVA=@vger.kernel.org X-Gm-Message-State: AOJu0YyBlQ5CvlQwqgNjC3cIFErdVP/0Gm2eINHz4hU9GY74lnLzW7ja LhcOLQ15BUBqbnVlFZCBY1YeTiAKfy/8d6qZYBEEsNTnssD/Td7ye4gZZKBTUWDU4bF2Ph8ViAv 4QDQTjw== X-Google-Smtp-Source: AGHT+IF4D2bttv5je9lZXd0PUlFLBd/ZvIZtBFpxVXMbpi4Bzh0t/kD8FQb4ayA43zotqyhYA6l+KZfxh7L+ X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:b850:b916:18b9:17a7]) (user=irogers job=sendgmr) by 2002:a05:690c:8282:b0:6ef:993a:29b8 with SMTP id 00721157ae682-6f279b85358mr113177b3.5.1734391507557; Mon, 16 Dec 2024 15:25:07 -0800 (PST) Date: Mon, 16 Dec 2024 15:24:56 -0800 In-Reply-To: <20241216232459.427642-1-irogers@google.com> Message-Id: <20241216232459.427642-3-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20241216232459.427642-1-irogers@google.com> X-Mailer: git-send-email 2.47.1.613.gc27f4b7a9f-goog Subject: [PATCH v3 2/5] perf header: Write out even empty die_cpus_list From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Sun Haiyong , Yanteng Si , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Reading the CPU topology is tolerant to the dies_cpus_list being missing by using the feature's size in the data file/pipe. However, the feature's size is just the header size and may be unaligned. Making the header size aligned breaks detecting a missing die_cpus_list. To allow the header size to be aligned always write the die_cpus_lists even if empty. Signed-off-by: Ian Rogers --- tools/perf/util/header.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 048e563069bc..03e43a9894d4 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -628,9 +628,6 @@ static int write_cpu_topology(struct feat_fd *ff, return ret; } =20 - if (!tp->die_cpus_lists) - goto done; - ret =3D do_write(ff, &tp->die_cpus_lists, sizeof(tp->die_cpus_lists)); if (ret < 0) goto done; --=20 2.47.1.613.gc27f4b7a9f-goog From nobody Wed Dec 17 18:01:17 2025 Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.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 19ABF1DC18B for ; Mon, 16 Dec 2024 23:25:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391512; cv=none; b=mEwUM6fes/QHW0Atew1oClrlE/TdQfooF49sE53P5dTdCk/ctkt8oN2wOZrwiViBQKxGc5rcvVI991Fp25N/kjsZDo7qWEVNU77rdSo+U42r8hzzBgOBHCc7EETYhy7u7PcW2KvMQYdJQpMsRECO3zp+SDa7P8yjFrxkXBRSOO4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391512; c=relaxed/simple; bh=BrUJvr7HXzMJyoNYnziI4wlrd5p8WOXp8dhXnVgi80k=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=G/kRG5ar7to8zCAPW0t4GuC5k/g/+gMVk5kjNwBp8NBSOM90Sfg8iH/8CpiNa0lVhRW423Gamq4/JL2I1Za/TR9yrcCX6LtVCU1tmekWYNi0HYrkTnQ1JHjNQofGmqamOIXVcoD3HNAAjPg6R3nzOKpbX17BY1WOGnwKDn/mOgU= 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=crfsoyi7; arc=none smtp.client-ip=209.85.219.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="crfsoyi7" Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-e3c61a11a40so6887371276.2 for ; Mon, 16 Dec 2024 15:25:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1734391510; x=1734996310; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=cLJ1stvpEh/i9mxehEqquhSJV82oFfMq3Eq8V809bTo=; b=crfsoyi7TwlBKtEypJWDFUPLCQZE7GZG8G1J4ekb5xwxsMQ0YUQsntvGoZ2W/9eF8V Ge47PAvXRNdxG/btRXTCcoHaz2mi0tWQXyyrSELNgOqP84Z/+108CbQxiJQRsKuMj/32 MqbI/fcjg4KJSL4jYTuC/DH7yXWX7VAyxSOLUvd6RcZbao6MzDjJxTZ1DZiidybaHcYE AS4WSHO2xBUJay6sNfTSACc10D3nxH1HWxAFY80VWoIw3NCytTkBOwi+QqY2LasqR7EY fE/YbSqe6ZVbFPG3F6jRCiwE2WWmm6RX1tY0OYX7rP+840A7WWC42onW+dtOtyrgGTbC xx4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734391510; x=1734996310; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=cLJ1stvpEh/i9mxehEqquhSJV82oFfMq3Eq8V809bTo=; b=G0XFr5uzehEwVYCsgP0JZh+Huh5bWCeDLDxdEv9IPF761+3xFBgs5JzpzU4XGpYs2e DJwfOxL8VmT3WoBSUfvEDeiJT3PC7YNckWuxM7ysz49FxYW1+oqVFpEHIKU0LAeS2PQ5 CjZODNcPdpbgrDfS3GvjLz65iIleFIv4ZTDO2O89X/SYr4zC6jBQYpH7NgvS0vtV27ce QBLlpfZFR+/3bRjM37M36ycOMvYNZ29vI47LEnJ5YWlPT+vbXsiQ9ZHzAiRtEDqlxTB7 YUQ1CF5CIabLFhbwbyYGObh30vBVhyuzA81Txd8xoZjAnafejeNBHVAy0CrMiumZzQav GjtA== X-Forwarded-Encrypted: i=1; AJvYcCWLPoxUa1z7JPJub8OSlnyaYYEoIDDs+xIxAvx12JAFBuggcW2QjrE+A4Jol8VRtVFdtypSy8VqC3804rw=@vger.kernel.org X-Gm-Message-State: AOJu0YzqoorYu98i700+05wiGUmonZ8EMsnMLYwuy68sIuQlsDBu5tti YSvoW64UiPO1APrpT9bFff/UtMO64h/NrOeeXxPK81NA0nD3mnJE9MRL4YvOlt2R+NWpjixMB+I 2rlTsKw== X-Google-Smtp-Source: AGHT+IEBk2ZWqf3tvA5JHyC7+FOyJZXG8fvNRj78GZbr7laoh+Qh/+6h6VlNMjqZMzkUaxrw+ZzcYont7naS X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:b850:b916:18b9:17a7]) (user=irogers job=sendgmr) by 2002:a25:c74d:0:b0:e3c:88e3:b8ba with SMTP id 3f1490d57ef6-e434e9bfa53mr7252276.5.1734391509720; Mon, 16 Dec 2024 15:25:09 -0800 (PST) Date: Mon, 16 Dec 2024 15:24:57 -0800 In-Reply-To: <20241216232459.427642-1-irogers@google.com> Message-Id: <20241216232459.427642-4-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20241216232459.427642-1-irogers@google.com> X-Mailer: git-send-email 2.47.1.613.gc27f4b7a9f-goog Subject: [PATCH v3 3/5] perf synthetic-events: Ensure features are aligned From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Sun Haiyong , Yanteng Si , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Features like hostname have arbitrary size and break the assumed 8-byte alignment of perf events. Pad all feature events until 8-byte alignment is restored. Rather than invent a new mechanism, reuse write_padded but pass an empty buffer as what to write. As no alignment may be necessary, update write_padded to be tolerant of 0 as a count and count_aligned value. Signed-off-by: Ian Rogers --- tools/perf/util/header.c | 7 ++++--- tools/perf/util/synthetic-events.c | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c index 03e43a9894d4..d10703090e83 100644 --- a/tools/perf/util/header.c +++ b/tools/perf/util/header.c @@ -168,11 +168,12 @@ int write_padded(struct feat_fd *ff, const void *bf, size_t count, size_t count_aligned) { static const char zero_buf[NAME_ALIGN]; - int err =3D do_write(ff, bf, count); + int err =3D count > 0 ? do_write(ff, bf, count) : 0; =20 - if (!err) + if (!err && count_aligned > count) { + assert(count_aligned - count < sizeof(zero_buf)); err =3D do_write(ff, zero_buf, count_aligned - count); - + } return err; } =20 diff --git a/tools/perf/util/synthetic-events.c b/tools/perf/util/synthetic= -events.c index f8ac2ac2da45..ee6e9c2fb11b 100644 --- a/tools/perf/util/synthetic-events.c +++ b/tools/perf/util/synthetic-events.c @@ -2401,6 +2401,8 @@ int perf_event__synthesize_features(const struct perf= _tool *tool, struct perf_se pr_debug("Error writing feature\n"); continue; } + write_padded(&ff, /*bf=3D*/NULL, /*count=3D*/0, + /*count_aligned=3D*/PERF_ALIGN(ff.offset, sizeof(u64)) - ff.offset= ); /* ff.buf may have changed due to realloc in do_write() */ fe =3D ff.buf; memset(fe, 0, sizeof(*fe)); --=20 2.47.1.613.gc27f4b7a9f-goog From nobody Wed Dec 17 18:01:17 2025 Received: from mail-yb1-f201.google.com (mail-yb1-f201.google.com [209.85.219.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 5F7121DD529 for ; Mon, 16 Dec 2024 23:25:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391514; cv=none; b=BAgnMhneXxom7AD0Tjs7ZcHKuRekbnb3BVfKxyKN7yxPBLshJGRTxvFJbZ/UVUx0IfdxtE7xSqM92arY4w5BRv4Xi8v00MTDhcemaVTVBIZ8eK2mZ1yg17K7geHRZCnr/S4q5jZMOsJ9jdXr4iAkfDNmQZALqspeV0+e88cYr+A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391514; c=relaxed/simple; bh=6N1g9uANonuB1X5ujQfQoFLZ8OgRQZPDGmKT28hZDMg=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=J1bCmzbnzV/g/UwZCL6C5yBqdjsxtcNW5iPJAMdYzuH3qF1vHAcOfpGhtslcI56T3anm233wQasLJnEBwAjhOjLXzwHNiRvQUq4i+3a/7pPrTZeuzR36z8+zF2wJvp6JDynGcjxjkfqzlFDJbawaJvE5bKMidu+btO3ywJ/C/V0= 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=Ql2yAjwK; arc=none smtp.client-ip=209.85.219.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="Ql2yAjwK" Received: by mail-yb1-f201.google.com with SMTP id 3f1490d57ef6-e3886f4cee2so7253973276.0 for ; Mon, 16 Dec 2024 15:25:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1734391512; x=1734996312; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=ZvACGcoM6KJ0hrZi/+tcGlPsYcMWSS3N/4SFXVszCzA=; b=Ql2yAjwKbJFtXxcHsOQYgP8Ar1paSe+Z3C4BvR0Mci8KUNk5rFEc5pY/P9rUD+u9uF IwW/72oP/oMhUlYQOaZvPhk7G2UN9w087pkLc7qkR6iZGw24hrPIr9YjTU18vM8FNDBB txU18nUwzgVj++xoPocDigy6vS+aGRhhzMcJubmVPNX7yYcTy9YthRrIIwlkovTi0ZQC 1ziVzpI8r2BfOqCWXwc2hzPK9G+q0o9Lzc2H+wYkw/p/NRdDfM9ONxuUPD67W4WsGUYt Tnsd5HjITisD7vltuT8vywfqrA0IGuNVVNY1l7bYLRRGZphxr7FIKToRqW1C8CovKCJT z1cA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734391512; x=1734996312; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ZvACGcoM6KJ0hrZi/+tcGlPsYcMWSS3N/4SFXVszCzA=; b=WOOlZmPf6dP80xfhPmco4VMSUY3Xw8uEgBEhUg/AQH+W8sqkPFMFLRbVkX9WW6TUNq P6yWJqhqNMXakxLZyjqIpOnu8JfAXrBdlE9gsJEtLMu3vM/6JMOmygZBhJXuibHmxBmq WZhDx9LKIfWv74fIukMVfrEo5m5QcGx1OiP2cVrQ/nXKIK6Y2ElMuaeL5Trgg1fAOwdT F7fHenznqchAxXNk0gDXkPQFaXCxcr1aMzlyehiJpsoi0pffU8HFyD8eSi9c0jNebZCC XVUcsnNxfM0B+PoTHTyzVjCC3/pizj2Irs1q2AKVZrL1+IP/MJgxKT2WJsoBNg45ihk4 83Lg== X-Forwarded-Encrypted: i=1; AJvYcCUAq2IPsEquTxilTT/98eoQfWm/+YEGwCGCPcYYS7vs1/RUEn7qs0kX+Y8tPQ/LL0/34AcP17EedD3Gfbc=@vger.kernel.org X-Gm-Message-State: AOJu0YwfKamnEAgM0GfV6ldKOg9zVD3XhFcbe/rOTyRJ7mQSk+bn771j 6jl24oHZxQwIj7cxiRwk4tZzXdEI8G6BSVn5izDST9o0iNiMYAdGEz9CRJybBUxUvWdw4CfpzY6 07u2S5g== X-Google-Smtp-Source: AGHT+IFPn3zLwGeYM+WqTOT+tiRtVfhiPONKWI9nlzAPsyTkfAgQ2S20PJn+fhfchxBHApz9migyE/zCITXe X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:b850:b916:18b9:17a7]) (user=irogers job=sendgmr) by 2002:a25:a209:0:b0:e38:cdae:5fba with SMTP id 3f1490d57ef6-e532ba3c549mr588276.3.1734391512421; Mon, 16 Dec 2024 15:25:12 -0800 (PST) Date: Mon, 16 Dec 2024 15:24:58 -0800 In-Reply-To: <20241216232459.427642-1-irogers@google.com> Message-Id: <20241216232459.427642-5-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20241216232459.427642-1-irogers@google.com> X-Mailer: git-send-email 2.47.1.613.gc27f4b7a9f-goog Subject: [PATCH v3 4/5] perf machine: Avoid UB by delaying computing branch entries From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Sun Haiyong , Yanteng Si , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If the branch_stack is NULL then perf_sample__branch_entries may return NULL+1 which triggers ubsan (undefined behavior sanitizer). Avoid this by making the computation conditional on branch existing. Signed-off-by: Ian Rogers --- tools/perf/util/machine.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c index 84661d950104..7b1e1c254c17 100644 --- a/tools/perf/util/machine.c +++ b/tools/perf/util/machine.c @@ -2670,7 +2670,6 @@ static int thread__resolve_callchain_sample(struct th= read *thread, bool symbols) { struct branch_stack *branch =3D sample->branch_stack; - struct branch_entry *entries =3D perf_sample__branch_entries(sample); struct ip_callchain *chain =3D sample->callchain; int chain_nr =3D 0; u8 cpumode =3D PERF_RECORD_MISC_USER; @@ -2712,6 +2711,7 @@ static int thread__resolve_callchain_sample(struct th= read *thread, */ =20 if (branch && callchain_param.branch_callstack) { + struct branch_entry *entries =3D perf_sample__branch_entries(sample); int nr =3D min(max_stack, (int)branch->nr); struct branch_entry be[nr]; struct iterations iter[nr]; --=20 2.47.1.613.gc27f4b7a9f-goog From nobody Wed Dec 17 18:01:17 2025 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) (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 5DBD21DDA35 for ; Mon, 16 Dec 2024 23:25:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.202 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391516; cv=none; b=sVLYj9E+0VFXZ7cve2EbEXslV9Re16F/U04SDi0l+X02BJdb6arQ36l6JLDnWl+lhKDX0uiucAjG6HqhENe5PH8HRi2zSchJqzzWNglY67RGFhGux0te5GqlP45bXLqBVyi8PqrO4zFhgXDSDmfFNo5NZiJsYWAmtVXB3OaqjCk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734391516; c=relaxed/simple; bh=iEVYgx/hxX84VyoDEpscAjkrNLwDJylilFK5OuBYN9g=; h=Date:In-Reply-To:Message-Id:Mime-Version:References:Subject:From: To:Content-Type; b=N6CV8uGZ/q6ajoeKe6liOHTcxdKEtew1kiCrSAaD/qQPc9+ZGrjSxgzFeCqYn4eEsQ2SnhWv8kQhK17i3k1F58DZSBXCu43mCUB3GuMyxmeqdvZQp6RRfmccTFLQe36vGYXYdRWh6UnLWek56nISZy4sZHMMewDf+d+NUbsSBcE= 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=ySu7h231; arc=none smtp.client-ip=209.85.219.202 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="ySu7h231" Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-e49f3aa78fcso2261316276.1 for ; Mon, 16 Dec 2024 15:25:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1734391514; x=1734996314; darn=vger.kernel.org; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=FTHl2TPsCH6LymZInluDoB5DdWMc8GssygaKpaKL3WI=; b=ySu7h23181UwWbX3I1NG9aj9Z7WJvw5rfzZVCunSWu6M5wRL/3MKid1z1Jq1mQF8ss IxdyVPzfn5k25QW60zLy6oMWzCYMrT8VgEB3d4k8OkWkHkj4zaS91IEtyYaFzq46NEH6 HYG6YhjSM4J2U5jhQhJYtfbMYlnzfg6JCiDIMzBhBN5rbep3+bLRpMTtyhQoCiGyVlln 3wBKCUZqGFlt++BgOnjugtoSPLv85LnUvqH9QosH1VfafJLIK3Q33c5ERQ643iwTCYGq buY/lvfTV7n+P2xfEKoriDujBnvgWhBidSLVu29qRc4PRY8pom/rYVj0B/278AEMLL+M syaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734391514; x=1734996314; h=to:from:subject:references:mime-version:message-id:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=FTHl2TPsCH6LymZInluDoB5DdWMc8GssygaKpaKL3WI=; b=WtWZ2dBVznsX7c8HYf6+1gN3pZmQjircHd4fB6rdnE+p8dlD6ZVywbYtWgj60vwNbK 2VJrJsBaKZdVsxSBGIL4AxIidmGd0iZThfRpzz7Yl14u5GPTB35KdQJZ12FtsSx8VOb2 dJntnDguQUefAnYSLYj6zo5Sfre07xarKPAkwPWD3+MauuuQ4fasWN6RdE2MreXVwZXD 9e3P4RTTXbnlsbgzBbYRRjomt895B/djXdUlG85s6O40eFSel7WRjG8e2LrhR5l1Qd/w M73ulccQmDleFRGeGTb2OuNQ6WhcVGQvMy48XVPMXOWPZ+Z2QL6Aydlplrhe7HhoDYP7 PuBg== X-Forwarded-Encrypted: i=1; AJvYcCUlnNQ7hZh/8xwAnL5pulAnELOjW2IjpDSH+UNAKw6mNmRSYx9pa9pHuiLaB5++QHF//R1FU8qOaPzlU/o=@vger.kernel.org X-Gm-Message-State: AOJu0YyEWE+X12pR/4bXbOMAmA1+VGOADQ2OqGKQ8Xx2jrbw0WDmuzlt QCmtPamtyHkV69d0hTBph2tNSHl+r7ARApTVuCX85vMuKKquCiM0J52kMo79rJD7JCaON2wJ0Ug TKTsybQ== X-Google-Smtp-Source: AGHT+IFd1yidZo4+PCjzzLBKzlvBgB+iWRLxaQKGvW8aqa9jBsNOiHI2lkdQ9omQXubeZJj1mM0cO/8DOG7P X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:b850:b916:18b9:17a7]) (user=irogers job=sendgmr) by 2002:a25:aa51:0:b0:e38:9694:4c6e with SMTP id 3f1490d57ef6-e5325f97ca3mr554276.2.1734391514479; Mon, 16 Dec 2024 15:25:14 -0800 (PST) Date: Mon, 16 Dec 2024 15:24:59 -0800 In-Reply-To: <20241216232459.427642-1-irogers@google.com> Message-Id: <20241216232459.427642-6-irogers@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20241216232459.427642-1-irogers@google.com> X-Mailer: git-send-email 2.47.1.613.gc27f4b7a9f-goog Subject: [PATCH v3 5/5] perf record: Assert synthesized events are 8-byte aligned From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Sun Haiyong , Yanteng Si , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Capture that events are 8-byte aligned and avoid later misaligned event problems. Signed-off-by: Ian Rogers --- tools/perf/builtin-record.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index adbaf80b398c..a5689d0e93ad 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -624,7 +624,10 @@ static int process_synthesized_event(const struct perf= _tool *tool, struct machine *machine __maybe_unused) { struct record *rec =3D container_of(tool, struct record, tool); - return record__write(rec, NULL, event, event->header.size); + size_t size =3D event->header.size; + + assert(PERF_ALIGN(size, sizeof(u64)) =3D=3D size); + return record__write(rec, NULL, event, size); } =20 static struct mutex synth_lock; --=20 2.47.1.613.gc27f4b7a9f-goog