From nobody Sun Dec 14 02:01:14 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 510401E7C25; Wed, 12 Mar 2025 20:31:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811511; cv=none; b=E25lrmHL453zNlg7yupkwA9E/h2rkZto6sCekVK1uNGaFd0q9iQe8mS6n2GJudAYvC08wXhmSt2h3M3779Oyd6kl7OiQ9c9IpbBMxBSrOB0Sxc7zpEXzWnapCPBHg+fepAWg47dasF8r/BBYkkdsQi54o25bwb3WmZgQ343oLUk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811511; c=relaxed/simple; bh=GqdBr8LrfZqs36fRS7w681t9jhkPCqwSChpCjCHB7zo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=fNaQwWpAMos3mCYgApMBNWNtBA3KNSDgy4Y8a4KLYvLWg0t1JUwVz8E4BoseXxUfFCqbd0zi9OLI2xFlCHRxA9I+8xXm4XwP+pomnZxpbprP625ZwHe6lypcTbAMjVERf+lQK/sQgXh0hNVHocvp/tDPOzRN032FF9cA4Krwvz0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SnFsZPpu; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SnFsZPpu" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2361DC4CEEA; Wed, 12 Mar 2025 20:31:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741811511; bh=GqdBr8LrfZqs36fRS7w681t9jhkPCqwSChpCjCHB7zo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SnFsZPpuBByNeqNTTTx9GNT1X5mqPEr5UTxDbxnUCU2mgI5u6YuUP1PmMsTcmmBf1 z4Km58ZUbS4AdjL+nQHNrrOK4R/70hWxd9a5wKKpnbvYv9Jkd5pR2y8WkipyM78DqA 8VfZ1vjUbntaoOnrNzdrwZARywre3W58nl2S2p+LpkupjjMtHF7TIUU9ZB66h7WuSG 5GqUpMuiBXjC6BYJ7/Vb/+Q34lwZdANSKxp8R8SZKI6uokj5hoajVafs7tNBibHBjZ /JTvZMQoCYH83cp3Gdm/l/zvZF+OVYKpEDrXjNDfb1orljAOBY5whUgSadfV7bVZPz aJzbAs/jfJ9UA== From: Arnaldo Carvalho de Melo To: Namhyung Kim Cc: Ingo Molnar , Thomas Gleixner , James Clark , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo Subject: [PATCH 1/6] perf python: Fixup description of sample.id event member Date: Wed, 12 Mar 2025 17:31:36 -0300 Message-ID: <20250312203141.285263-2-acme@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250312203141.285263-1-acme@kernel.org> References: <20250312203141.285263-1-acme@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnaldo Carvalho de Melo Some old cut'n'paste error, its "ip", so the description should be "event ip", not "event type". Fixes: 877108e42b1b9ba6 ("perf tools: Initial python binding") Cc: Adrian Hunter Cc: Ian Rogers Cc: James Clark Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Signed-off-by: Arnaldo Carvalho de Melo Reviewed-by: Ian Rogers --- tools/perf/util/python.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 69ec2ad60d98ba38..6c5bb5e8893998ae 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -49,7 +49,7 @@ struct pyrf_event { }; =20 #define sample_members \ - sample_member_def(sample_ip, ip, T_ULONGLONG, "event type"), \ + sample_member_def(sample_ip, ip, T_ULONGLONG, "event ip"), \ sample_member_def(sample_pid, pid, T_INT, "event pid"), \ sample_member_def(sample_tid, tid, T_INT, "event tid"), \ sample_member_def(sample_time, time, T_ULONGLONG, "event timestamp"), \ --=20 2.48.1 From nobody Sun Dec 14 02:01:14 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 262081EDA37; Wed, 12 Mar 2025 20:31:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811516; cv=none; b=qtezKQ6XtYYcJieiKGGGh8E4IAOUYsv7lU3Fb+BFc9nq0vM1jrdik8U22Z8NWPBMhbGhTSXQ9yu4BK+lmdpALFRdKKQ8ohES/40pxbLc8vKh94v1kYqGb6pzvIpUnhdZtn5Jr8aTtavUVk7ihuS3W04N1pQogjU2HQSu4hrWlR4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811516; c=relaxed/simple; bh=OFYIVs8S99HbB0u5/QSSewDS5CadnJF4cJmlidQbtrc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VU4+dC0JBYSTO6mOj2UhnDi/0AeP3GSRRSfh11Ex5pHjMYsShib+1oebI6JN5Jq5UrHISUbR7jnlbNyTC0hAv4VQFhh0lsizz8gFSs7tW5YNQXI30/Y+GQN25SnWI7FT7kDMhDXgYNBcVBLt2Z4+dFlrI82G34MTfo0c/P1Pyjg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ITL6mN7Z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ITL6mN7Z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B43EC4CEDD; Wed, 12 Mar 2025 20:31:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741811514; bh=OFYIVs8S99HbB0u5/QSSewDS5CadnJF4cJmlidQbtrc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ITL6mN7ZyKIiSdzU6xpAwfi4Gj//pPeDyICgMDY7aa5eeM5ONpBVvx8gLyHT5AtUF Dbqm4uQMVEGsxdop8aGHlym12Wh8HBIaRAQgRi1cCCFQZ0YeDbLDGaiMtDtTpd7gSZ pB9NDDDWp0C/6eZo7W3zGtbe+jjQf9Q8F8Ho0aZkt9mHlqoFg6aqPGSBxRKUhOh3UR DYeKrnpXoAJUlgCfeORE005fPy1ua1IMHwtBkD0MgYbkFadSbs76Q9yaGNo9Y//pkC SHUPu/VE1/QoHc+JWOW6F0KFgQPI0mg0ZRMDUamJU0bV/tDOmqWpnvVSXipqybg+uV qX/rVPAxX18fA== From: Arnaldo Carvalho de Melo To: Namhyung Kim Cc: Ingo Molnar , Thomas Gleixner , James Clark , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo Subject: [PATCH 2/6] perf python: Remove some unused macros (_PyUnicode_FromString(arg), etc) Date: Wed, 12 Mar 2025 17:31:37 -0300 Message-ID: <20250312203141.285263-3-acme@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250312203141.285263-1-acme@kernel.org> References: <20250312203141.285263-1-acme@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnaldo Carvalho de Melo When python2 support was removed in e7e9943c87d857da ("perf python: Remove python 2 scripting support"), all use of the _PyUnicode_FromString(arg), _PyUnicode_FromFormat(...), and _PyLong_FromLong(arg) macros was removed as well, so remove it. Cc: Adrian Hunter Cc: Ian Rogers Cc: James Clark Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Signed-off-by: Arnaldo Carvalho de Melo Reviewed-by: Ian Rogers --- tools/perf/util/python.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 6c5bb5e8893998ae..f9491b6699764fbc 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -22,13 +22,6 @@ #include "util/sample.h" #include =20 -#define _PyUnicode_FromString(arg) \ - PyUnicode_FromString(arg) -#define _PyUnicode_FromFormat(...) \ - PyUnicode_FromFormat(__VA_ARGS__) -#define _PyLong_FromLong(arg) \ - PyLong_FromLong(arg) - PyMODINIT_FUNC PyInit_perf(void); =20 #define member_def(type, member, ptype, help) \ --=20 2.48.1 From nobody Sun Dec 14 02:01:14 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4537F1EF0BA; Wed, 12 Mar 2025 20:31:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811518; cv=none; b=ujoMgPEser+WVNCmW6LFEuiLKFfc3HEVhtR/BzcN0E6fHi1LZsVuwE8NFw0fCc6VptQcoXys93ZN3a1yGqKBxDBw6ar/aEn7gF2YqB/WHQU4B9iw6bacG/vAuVliL5g0xy9apr9/BaM3NCcRdXWWU5b1ZfGVupBM3hugQ11YxM4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811518; c=relaxed/simple; bh=D4ZmBfnR5++/ReQIqJTxBZ11pl2EfSik2080N1gHruc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mvuniVx/ZfwGiEyhbgnWrRSYDgZ8QwAnKFlcTEDUnjCcw4pI485k2aAGLmBvsjMk1tfHtjDljNyUSkJQfLacI7qbWLAcq4iXGTtv3KmbZegHOChSRrY0rc8lmRB4v1nsUpBc56Mi0eRfS+Ez4eqNz4tIUr98iL/K8zRGf6bIEwE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=SA321C+s; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="SA321C+s" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 20CF4C4CEEB; Wed, 12 Mar 2025 20:31:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741811518; bh=D4ZmBfnR5++/ReQIqJTxBZ11pl2EfSik2080N1gHruc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SA321C+sUTtud+pT+L2sgI7u8s1OaaCop/ORHtUt1z1IbbMzYkwM7O9/iUVF5nAwf 8/8eC+rc4BeaOxt6Sn3du3JNLu0vK47G4zOgXcicZHCsI8EQJFZ20vA2N0K9EAHJKF SgnNvqYILB7aYQIDYcuAtv4IDlyofcq3NpV3eyRyaS2/CAFo1KSa9GSNppnSQkz7Nb 4ih6qkZGpb5pnWBYtZ09sM99bdJaxusgrnEM5s8+WMqk7jqoTpYqe7W8eoyS8w3k5E IpYkBNxCPC27VHQXUe8lPKsQhZbsQcEfYHtmwmopzbELrNPmXAfL+UmpSBc20SYz5H deHYkt2MPMQmw== From: Arnaldo Carvalho de Melo To: Namhyung Kim Cc: Ingo Molnar , Thomas Gleixner , James Clark , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo Subject: [PATCH 3/6] perf python tracepoint.py: Change the COMM using setproctitle if available Date: Wed, 12 Mar 2025 17:31:38 -0300 Message-ID: <20250312203141.285263-4-acme@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250312203141.285263-1-acme@kernel.org> References: <20250312203141.285263-1-acme@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnaldo Carvalho de Melo Otherwise when debugging we see just "python" in perf, top, etc. Cc: Adrian Hunter Cc: Ian Rogers Cc: James Clark Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Signed-off-by: Arnaldo Carvalho de Melo Reviewed-by: Ian Rogers --- tools/perf/python/tracepoint.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tools/perf/python/tracepoint.py b/tools/perf/python/tracepoint= .py index 38b2b6d11f64566a..15b0c82689966f23 100755 --- a/tools/perf/python/tracepoint.py +++ b/tools/perf/python/tracepoint.py @@ -5,7 +5,15 @@ =20 import perf =20 +def change_proctitle(): + try: + import setproctitle + setproctitle.setproctitle("tracepoint.py") + except: + print("Install the setproctitle python package to help with top an= d friends") + def main(): + change_proctitle() cpus =3D perf.cpu_map() threads =3D perf.thread_map(-1) evlist =3D perf.parse_events("sched:sched_switch", cpus, threads) --=20 2.48.1 From nobody Sun Dec 14 02:01:14 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BA761EE7C4; Wed, 12 Mar 2025 20:32:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811522; cv=none; b=MJtDehpYfqi1yCttK219L84Rq6oTo0E2HzmaD/4byEouwLB2pSv6NpBcXbZ2WDHLEOcgGDqePpkywGrZrwkD8K324arJzW6Rw5j93BDJQyqFRqgRktdNaPhGEabwaguN7+gbE672jjtASaBOQBeGOc286t0Rxze8NXA89H71DYA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811522; c=relaxed/simple; bh=FqpjcHe3CNU4sPGW1mEVPaLKgjB4A7Q+fc2Jt0OVM1I=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=eAGyJFhkndy3poN427x5w9rFvB6imFyFjKcDJrGvP1m0QUgQdkS8x86+DVXCgdMcE2Wg2e2JS5Ha1Jn0EsZVgQSUQZlhIlCHq8hphcbs0fIgqrb+d91qZnc2Ilv/wiuUEk/XmdqSQnpCmaBATnom+bJlSE02fCsMEC9onpuKSCo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=j5T+VBTa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="j5T+VBTa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9A1ADC4CEED; Wed, 12 Mar 2025 20:31:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741811521; bh=FqpjcHe3CNU4sPGW1mEVPaLKgjB4A7Q+fc2Jt0OVM1I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=j5T+VBTa9gbDAjvjkz5oqtINeHldCrny7fRFIg7OP7NR5RQDPCHdMm7wZCTb6wFlS 0h2pq6i2Ije0tzyMzbDS2CNHQNFCUXJMv2p3EtJGoAIg87ad7u5MSB7VxlpbXl5hK0 YvBbvb+MWCcD5Qr5SzpCcVJdnzbPPg1IbjYCZm7WpY2EVMx/4OlCIFDmuV+AWfS2tk hKDkQcD2s2YabKWgO5jpxE60WIUY0c4ZS4Hmb181m7KlKb7QkqqW+tVNQMwRlGB6ju J4DEdoofgKFSOUY3rY8ZIQUl+gzUp7UQ+GdB7jZSkTnDKYIpjJ1pluSfLqg0NUuxSu IP3P22JlT1Dmw== From: Arnaldo Carvalho de Melo To: Namhyung Kim Cc: Ingo Molnar , Thomas Gleixner , James Clark , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo Subject: [PATCH 4/6] perf python: Decrement the refcount of just created event on failure Date: Wed, 12 Mar 2025 17:31:39 -0300 Message-ID: <20250312203141.285263-5-acme@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250312203141.285263-1-acme@kernel.org> References: <20250312203141.285263-1-acme@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnaldo Carvalho de Melo To avoid a leak if we have the python object but then something happens and we need to return the operation, decrement the offset of the newly created object. Fixes: 377f698db12150a1 ("perf python: Add struct evsel into struct pyrf_ev= ent") Cc: Adrian Hunter Cc: Ian Rogers Cc: James Clark Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Signed-off-by: Arnaldo Carvalho de Melo Reviewed-by: Ian Rogers --- tools/perf/util/python.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index f9491b6699764fbc..31a877a8eb8fbf09 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -1012,6 +1012,7 @@ static PyObject *pyrf_evlist__read_on_cpu(struct pyrf= _evlist *pevlist, =20 evsel =3D evlist__event2evsel(evlist, event); if (!evsel) { + Py_DECREF(pyevent); Py_INCREF(Py_None); return Py_None; } @@ -1023,9 +1024,12 @@ static PyObject *pyrf_evlist__read_on_cpu(struct pyr= f_evlist *pevlist, /* Consume the even only after we parsed it out. */ perf_mmap__consume(&md->core); =20 - if (err) + if (err) { + Py_DECREF(pyevent); return PyErr_Format(PyExc_OSError, "perf: can't parse sample, err=3D%d", err); + } + return pyevent; } end: --=20 2.48.1 From nobody Sun Dec 14 02:01:14 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9E4061EE7DC; Wed, 12 Mar 2025 20:32:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811526; cv=none; b=YLIWHXAr1TkELHQvAwOHZARBTn4e6wrZx3/AhzM08MQnwsQkpFlmZQBYEwTnzeGHmDV7WrSDDfT2peaa3gESi1U8obgweBGK2yNBx/DgREfKc1DRRZWue+wkdArTw0yiWzp3O/qkF4HQk3WZJk/hvLGdi7axl05h+1ZCRvymWmM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811526; c=relaxed/simple; bh=20bLofz6XYDiF+WRvCaqj1miiQ3b25v70W+ducKHHJI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fbAMm8MfNXhTEen4U6G4Tb26+bGRzwsMN3Qt6vPbhbq784Y9e43ATC1WI59nwbjT2/JPuvbAqqMhVcavmFoJlRAYLaN3hLCi8OKz4jcYjU6FaIS3WqW/qJ9ETIzI9bTEiurobvJLQoAGc8ZHd8lVE8cTKQeVMMAJIUkx+Y+K3sI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sJU+/v1k; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sJU+/v1k" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1E4BDC4CEEA; Wed, 12 Mar 2025 20:32:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741811525; bh=20bLofz6XYDiF+WRvCaqj1miiQ3b25v70W+ducKHHJI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sJU+/v1kytfiFs6Ol7fQm8y3b48tctAUE1dE+Co/Kjk/oX1nhT93412MFr6vY4x0O 2p2+6DTCb1RauYDHYUQIHUn0r1F7Yj+/oeJaQ2XKZR7Oc/HsS3AM8PRelMOt4MLhmq iRuV6Z9yT+PhX/svASibKsFt9/9PIO6587k77X8sUz/DtNS+snEeTmS5oKX/xChC7l yfFTgz4I1WchZ3STf/0jMiArZ8HZHWVTIqoCJkn9fUWLwr8kPewBAZDikG91NsLqWx 3ffIND1Fl5BXsZT9zfIm0PcR9sCoiIcAUeVfzMjYxN7/MckNma7e3+s4Fu0w95mlLW nYt3Y512xVP7g== From: Arnaldo Carvalho de Melo To: Namhyung Kim Cc: Ingo Molnar , Thomas Gleixner , James Clark , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo Subject: [PATCH 5/6] perf python: Don't keep a raw_data pointer to consumed ring buffer space Date: Wed, 12 Mar 2025 17:31:40 -0300 Message-ID: <20250312203141.285263-6-acme@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250312203141.285263-1-acme@kernel.org> References: <20250312203141.285263-1-acme@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Arnaldo Carvalho de Melo When processing tracepoints the perf python binding was parsing the event before calling perf_mmap__consume(&md->core) in pyrf_evlist__read_on_cpu(). But part of this event parsing was to set the perf_sample->raw_data pointer to the payload of the event, which then could be overwritten by other event before tracepoint fields were asked for via event.prev_comm in a python program, for instance. This also happened with other fields, but strings were were problems were surfacing, as there is UTF-8 validation for the potentially garbled data. This ended up showing up as (with some added debugging messages): ( field 'prev_comm' ret=3D0x7f7c31f65110, raw_size=3D68 ) ( field 'prev_= pid' ret=3D0x7f7c23b1bed0, raw_size=3D68 ) ( field 'prev_prio' ret=3D0x7f7= c239c0030, raw_size=3D68 ) ( field 'prev_state' ret=3D0x7f7c239c0250, raw_= size=3D68 ) time 14771421785867 prev_comm=3D prev_pid=3D1919907691 prev_pri= o=3D796026219 prev_state=3D0x303a32313175 =3D=3D> ( XXX '=EF=BF=BD=EF=BF=BD' len=3D16, raw_size=3D68) ( field 'next_comm' = ret=3D(nil), raw_size=3D68 ) Traceback (most recent call last): File "/home/acme/git/perf-tools-next/tools/perf/python/tracepoint.py", l= ine 51, in main() File "/home/acme/git/perf-tools-next/tools/perf/python/tracepoint.py", l= ine 46, in main event.next_comm, ^^^^^^^^^^^^^^^ AttributeError: 'perf.sample_event' object has no attribute 'next_comm' When event.next_comm was asked for, the PyUnicode_FromString() python API would fail and that tracepoint field wouldn't be available, stopping the tools/perf/python/tracepoint.py test tool. But, since we already do a copy of the whole event in pyrf_event__new, just use it and while at it remove what was done in in e8968e654191390a ("perf python: Fix pyrf_evlist__read_on_cpu event consuming") because we don't really need to wait for parsing the sample before declaring the event as consumed. This copy is questionable as is now, as it limits the maximum event + sample_type and tracepoint payload to sizeof(union perf_event), this all has been "working" because 'struct perf_event_mmap2', the largest entry in 'union perf_event' is: $ pahole -C perf_event ~/bin/perf | grep mmap2 struct perf_record_mmap2 mmap2; /* 0 4168 */ $ Fixes: bae57e3825a3dded ("perf python: Add support to resolve tracepoint fi= elds") Cc: Adrian Hunter Cc: Ian Rogers Cc: James Clark Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Signed-off-by: Arnaldo Carvalho de Melo Reviewed-by: Ian Rogers --- tools/perf/util/python.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 31a877a8eb8fbf09..6a03341e17881337 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -1019,11 +1019,9 @@ static PyObject *pyrf_evlist__read_on_cpu(struct pyr= f_evlist *pevlist, =20 pevent->evsel =3D evsel; =20 - err =3D evsel__parse_sample(evsel, event, &pevent->sample); - - /* Consume the even only after we parsed it out. */ perf_mmap__consume(&md->core); =20 + err =3D evsel__parse_sample(evsel, &pevent->event, &pevent->sample); if (err) { Py_DECREF(pyevent); return PyErr_Format(PyExc_OSError, --=20 2.48.1 From nobody Sun Dec 14 02:01:14 2025 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2DB451F03FF; Wed, 12 Mar 2025 20:32:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811529; cv=none; b=R/QtDZIfowx5nyh1imvk2Am9X8JAh98KqrvDmsw2A3alErkW31STubWHwCXv6xjUMxLWIaULBXhXdCMQePnUp/+qOW7s25jr+m30mUhL5YnXGu37d++UjrKJhWelUhncTMZe5yLxeNx19PY7SBErXcxKy1/arlBAAFR1e1hbr0U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741811529; c=relaxed/simple; bh=bG71zNV61ysbJQuURYe3/BCP5KtjkN8yw4XRMtq78Zc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KYTY+C6K9buwhbH31UQkghk+gRhDeIEYpOMlytF5IIw0VN2L7msllqajZGi8utZ5TZaqtqAWbnTL8LuCmTygumwlya3uFECW59D7EJTxTPO0EOMxM1d3xtKeW8dbHkN+yMcfuLS8LFUw7BEqwLrTAvy/uOW3bVb0SLRsT6v+T24= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LHDSJj3z; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LHDSJj3z" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 998AEC4CEDD; Wed, 12 Mar 2025 20:32:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741811528; bh=bG71zNV61ysbJQuURYe3/BCP5KtjkN8yw4XRMtq78Zc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=LHDSJj3zi/nSzuPfr8jlE/wePR9231Mcm/brkDwpA7bmXu1Fgj3KZ8CkXGTzrod5W +c9VOmAa1C2YYgv6bSRWQ1UnU1I92FskAtu0ImEBKGWkQB3rgjFiVPoLcZAo3kbLoV zGPIhS+TdlUK3vpX1CFyFXR3ufyYS8xFilWmrV7KKw+RH93u1PKcNILb2FTSxVlwr9 KgJr3KkFVJ1OUWFybsjLByFIEB7U0ETzE9oyRzO4VSjH3dofi6yE0uxIAgCU2QJ9vD Hf9wjnQ7hs+J622Q/Z5SerSFZJsr9t/vQosPmwU9JIXS4v2rLxGRH1/d9Z0cyjI1Ob /bhNFmIqPQm5A== From: Arnaldo Carvalho de Melo To: Namhyung Kim Cc: Ingo Molnar , Thomas Gleixner , James Clark , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , Clark Williams , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, Arnaldo Carvalho de Melo Subject: [PATCH 6/6] perf python: Check if there is space to copy all the event Date: Wed, 12 Mar 2025 17:31:41 -0300 Message-ID: <20250312203141.285263-7-acme@kernel.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250312203141.285263-1-acme@kernel.org> References: <20250312203141.285263-1-acme@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Arnaldo Carvalho de Melo The pyrf_event__new() method copies the event obtained from the perf ring buffer to a structure that will then be turned into a python object for further consumption, so it copies perf_event.header.size bytes to its 'event' member: $ pahole -C pyrf_event /tmp/build/perf-tools-next/python/perf.cpython-312= -x86_64-linux-gnu.so struct pyrf_event { PyObject ob_base; /* 0 16 */ struct evsel * evsel; /* 16 8 */ struct perf_sample sample; /* 24 312 */ /* XXX last struct has 7 bytes of padding, 2 holes */ /* --- cacheline 5 boundary (320 bytes) was 16 bytes ago --- */ union perf_event event; /* 336 4168 */ /* size: 4504, cachelines: 71, members: 4 */ /* member types with holes: 1, total: 2 */ /* paddings: 1, sum paddings: 7 */ /* last cacheline: 24 bytes */ }; $ It was doing so without checking if the event just obtained has more than that space, fix it. This isn't a proper, final solution, as we need to support larger events, but for the time being we at least bounds check and document it. Fixes: 877108e42b1b9ba6 ("perf tools: Initial python binding") Cc: Adrian Hunter Cc: Ian Rogers Cc: James Clark Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Signed-off-by: Arnaldo Carvalho de Melo Reviewed-by: Ian Rogers --- tools/perf/util/python.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 6a03341e17881337..f3c05da25b4af8c0 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -476,6 +476,11 @@ static PyObject *pyrf_event__new(const union perf_even= t *event) event->header.type =3D=3D PERF_RECORD_SWITCH_CPU_WIDE)) return NULL; =20 + // FIXME this better be dynamic or we need to parse everything + // before calling perf_mmap__consume(), including tracepoint fields. + if (sizeof(pevent->event) < event->header.size) + return NULL; + ptype =3D pyrf_event__type[event->header.type]; pevent =3D PyObject_New(struct pyrf_event, ptype); if (pevent !=3D NULL) --=20 2.48.1