From: Wathsala Vithanage <wathsala.vithanage@arm.com>
To: Tomasz Duszynski <tduszynski@marvell.com>
Cc: "bruce.richardson@intel.com" <bruce.richardson@intel.com>,
"david.marchand@redhat.com" <david.marchand@redhat.com>,
"dev@dpdk.org" <dev@dpdk.org>,
"jerinj@marvell.com" <jerinj@marvell.com>,
"mb@smartsharesystems.com" <mb@smartsharesystems.com>,
"thomas@monjalon.net" <thomas@monjalon.net>,
"stephen@networkplumber.org" <stephen@networkplumber.org>,
nd <nd@arm.com>
Subject: RE: [PATCH v10 06/10] lib/pmu: do not try enabling perf counter access on arm64
Date: Mon, 4 Aug 2025 17:12:50 +0000 [thread overview]
Message-ID: <PAWPR08MB8909ED3F729BD92BD2904F2D9F23A@PAWPR08MB8909.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <20250801102109.3544901-7-tduszynski@marvell.com>
> Subject: [PATCH v10 06/10] lib/pmu: do not try enabling perf counter access on
> arm64
>
> /proc/sys/kernel/perf_user_access attribute allow user process to access perf
> counters. Though in order to change it binary requires elevated capabilities or
> must be run as root. If that's not the case counter access remains disabled. Hence
> to avoid confusion log message that that warns user about that.
>
> Signed-off-by: Tomasz Duszynski <tduszynski@marvell.com>
Acked-by: Wathsala Vithanage <wathsala.vithanage@arm.com>
> ---
> lib/pmu/pmu.c | 4 ----
> lib/pmu/pmu_arm64.c | 39 +++++++--------------------------------
> lib/pmu/pmu_private.h | 8 ++++++++
> 3 files changed, 15 insertions(+), 36 deletions(-)
>
> diff --git a/lib/pmu/pmu.c b/lib/pmu/pmu.c index 8cf2e89c69..97bab80368
> 100644
> --- a/lib/pmu/pmu.c
> +++ b/lib/pmu/pmu.c
> @@ -25,10 +25,6 @@
> #define FIELD_PREP(m, v) (((uint64_t)(v) << (rte_ffs64(m) - 1)) & (m))
>
> RTE_LOG_REGISTER_DEFAULT(rte_pmu_logtype, INFO) -#define
> RTE_LOGTYPE_PMU rte_pmu_logtype
> -
> -#define PMU_LOG(level, ...) \
> - RTE_LOG_LINE(level, PMU, ## __VA_ARGS__)
>
> /* A structure describing an event */
> struct rte_pmu_event {
> diff --git a/lib/pmu/pmu_arm64.c b/lib/pmu/pmu_arm64.c index
> 3f4f5fa297..2c40b5f702 100644
> --- a/lib/pmu/pmu_arm64.c
> +++ b/lib/pmu/pmu_arm64.c
> @@ -14,8 +14,6 @@
>
> #define PERF_USER_ACCESS_PATH "/proc/sys/kernel/perf_user_access"
>
> -static int restore_uaccess;
> -
> static int
> read_attr_int(const char *path, int *val) { @@ -39,49 +37,26 @@
> read_attr_int(const char *path, int *val)
> return 0;
> }
>
> -static int
> -write_attr_int(const char *path, int val) -{
> - char buf[BUFSIZ];
> - int num, ret, fd;
> -
> - fd = open(path, O_WRONLY);
> - if (fd == -1)
> - return -errno;
> -
> - num = snprintf(buf, sizeof(buf), "%d", val);
> - ret = write(fd, buf, num);
> - if (ret == -1) {
> - close(fd);
> -
> - return -errno;
> - }
> -
> - close(fd);
> -
> - return 0;
> -}
> -
> static int
> pmu_arm64_init(void)
> {
> - int ret;
> + int uaccess, ret;
>
> - ret = read_attr_int(PERF_USER_ACCESS_PATH, &restore_uaccess);
> + ret = read_attr_int(PERF_USER_ACCESS_PATH, &uaccess);
> if (ret)
> return ret;
>
> - /* user access already enabled */
> - if (restore_uaccess == 1)
> - return 0;
> + if (uaccess != 1)
> + PMU_LOG(WARNING, "access to perf counters disabled, "
> + "run 'echo 1 > %s' to enable",
> + PERF_USER_ACCESS_PATH);
>
> - return write_attr_int(PERF_USER_ACCESS_PATH, 1);
> + return ret;
> }
>
> static void
> pmu_arm64_fini(void)
> {
> - write_attr_int(PERF_USER_ACCESS_PATH, restore_uaccess);
> }
>
> static void
> diff --git a/lib/pmu/pmu_private.h b/lib/pmu/pmu_private.h index
> d74f7f4092..82118df8b3 100644
> --- a/lib/pmu/pmu_private.h
> +++ b/lib/pmu/pmu_private.h
> @@ -5,6 +5,14 @@
> #ifndef PMU_PRIVATE_H
> #define PMU_PRIVATE_H
>
> +#include <rte_log.h>
> +
> +extern int rte_pmu_logtype;
> +#define RTE_LOGTYPE_PMU rte_pmu_logtype
> +
> +#define PMU_LOG(level, ...) \
> + RTE_LOG_LINE(level, PMU, ## __VA_ARGS__)
> +
> /**
> * Structure describing architecture specific PMU operations.
> */
> --
> 2.34.1
next prev parent reply other threads:[~2025-08-04 17:13 UTC|newest]
Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-16 6:53 [PATCH 0/6] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-06-16 6:53 ` [PATCH 1/6] lib/pmu: quiesce rte_pmu_read deprecation warning in chkincs Tomasz Duszynski
2025-06-16 6:53 ` [PATCH 2/6] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-06-16 6:53 ` [PATCH 3/6] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-06-16 7:03 ` Thomas Monjalon
2025-06-16 9:54 ` Tomasz Duszynski
2025-06-16 6:53 ` [PATCH 4/6] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-06-16 7:08 ` Thomas Monjalon
2025-06-16 10:53 ` Tomasz Duszynski
2025-06-16 6:53 ` [PATCH 5/6] test/pmu: enable fast test Tomasz Duszynski
2025-06-16 6:53 ` [PATCH 6/6] trace: add PMU Tomasz Duszynski
2025-06-16 7:13 ` Thomas Monjalon
2025-06-16 9:49 ` Tomasz Duszynski
2025-06-16 10:32 ` Bruce Richardson
2025-06-16 13:18 ` Morten Brørup
2025-06-18 6:56 ` [PATCH v2 0/6] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-06-18 6:56 ` [PATCH v2 1/6] lib/pmu: quiesce rte_pmu_read deprecation warning in chkincs Tomasz Duszynski
2025-06-18 6:56 ` [PATCH v2 2/6] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-06-18 6:56 ` [PATCH v2 3/6] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-06-18 6:56 ` [PATCH v2 4/6] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-06-18 6:56 ` [PATCH v2 5/6] test/pmu: enable fast test Tomasz Duszynski
2025-06-18 6:56 ` [PATCH v2 6/6] trace: add PMU Tomasz Duszynski
2025-06-18 7:16 ` Morten Brørup
2025-06-18 9:47 ` Thomas Monjalon
2025-06-18 10:28 ` Bruce Richardson
2025-06-18 11:30 ` Morten Brørup
2025-06-18 10:23 ` Tomasz Duszynski
2025-06-18 10:37 ` Morten Brørup
2025-06-20 12:05 ` [PATCH v3 0/7] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-06-20 12:05 ` [PATCH v3 1/7] lib/pmu: quiesce rte_pmu_read deprecation warning in chkincs Tomasz Duszynski
2025-06-20 12:05 ` [PATCH v3 2/7] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-06-20 12:05 ` [PATCH v3 3/7] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-06-20 12:05 ` [PATCH v3 4/7] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-06-20 12:05 ` [PATCH v3 5/7] test/pmu: enable fast test Tomasz Duszynski
2025-06-20 12:05 ` [PATCH v3 6/7] trace: add PMU Tomasz Duszynski
2025-06-20 12:05 ` [PATCH v3 7/7] lib/pmu: fix out-of-bound access Tomasz Duszynski
2025-06-24 12:29 ` [PATCH v4 0/7] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-06-24 12:29 ` [PATCH v4 1/7] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-06-24 12:29 ` [PATCH v4 2/7] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-06-24 12:29 ` [PATCH v4 3/7] lib/pmu: do not try enabling perf counter access on arm64 Tomasz Duszynski
2025-06-24 12:29 ` [PATCH v4 4/7] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-06-24 12:29 ` [PATCH v4 5/7] test/pmu: enable fast test Tomasz Duszynski
2025-06-24 12:29 ` [PATCH v4 6/7] trace: add PMU Tomasz Duszynski
2025-06-24 12:29 ` [PATCH v4 7/7] lib/pmu: fix out-of-bound access Tomasz Duszynski
2025-06-25 4:47 ` [PATCH v5 0/8] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-06-25 4:47 ` [PATCH v5 1/8] lib/pmu: quiesce rte_pmu_read deprecation warning in chkincs Tomasz Duszynski
2025-06-25 4:47 ` [PATCH v5 2/8] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-06-25 4:47 ` [PATCH v5 3/8] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-06-25 4:47 ` [PATCH v5 4/8] lib/pmu: do not try enabling perf counter access on arm64 Tomasz Duszynski
2025-06-25 4:47 ` [PATCH v5 5/8] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-06-25 4:47 ` [PATCH v5 6/8] test/pmu: enable fast test Tomasz Duszynski
2025-06-25 4:47 ` [PATCH v5 7/8] trace: add PMU Tomasz Duszynski
2025-06-25 4:47 ` [PATCH v5 8/8] lib/pmu: fix out-of-bound access Tomasz Duszynski
2025-06-27 10:57 ` [PATCH v6 0/8] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-06-27 10:57 ` [PATCH v6 1/8] lib/pmu: quiesce rte_pmu_read deprecation warning in chkincs Tomasz Duszynski
2025-06-27 10:57 ` [PATCH v6 2/8] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-06-27 10:57 ` [PATCH v6 3/8] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-06-27 10:57 ` [PATCH v6 4/8] lib/pmu: do not try enabling perf counter access on arm64 Tomasz Duszynski
2025-06-27 10:57 ` [PATCH v6 5/8] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-06-27 10:57 ` [PATCH v6 6/8] test/pmu: enable test Tomasz Duszynski
2025-06-27 10:57 ` [PATCH v6 7/8] trace: add PMU Tomasz Duszynski
2025-06-27 10:57 ` [PATCH v6 8/8] lib/pmu: fix out-of-bound access Tomasz Duszynski
2025-06-27 15:40 ` [PATCH v7 0/8] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-06-27 15:41 ` [PATCH v7 1/8] lib/pmu: quiesce rte_pmu_read deprecation warning in chkincs Tomasz Duszynski
2025-06-27 15:41 ` [PATCH v7 2/8] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-06-27 15:41 ` [PATCH v7 3/8] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-06-27 15:41 ` [PATCH v7 4/8] lib/pmu: do not try enabling perf counter access on arm64 Tomasz Duszynski
2025-06-27 15:41 ` [PATCH v7 5/8] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-06-27 15:41 ` [PATCH v7 6/8] test/pmu: enable test Tomasz Duszynski
2025-06-27 15:41 ` [PATCH v7 7/8] trace: add PMU Tomasz Duszynski
2025-07-01 13:33 ` David Marchand
2025-07-21 10:24 ` Tomasz Duszynski
2025-07-21 10:45 ` Thomas Monjalon
2025-07-22 10:10 ` Morten Brørup
2025-07-22 11:06 ` Tomasz Duszynski
2025-06-27 15:41 ` [PATCH v7 8/8] lib/pmu: fix out-of-bound access Tomasz Duszynski
2025-07-22 12:00 ` [PATCH v8 0/8] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-07-22 12:00 ` [PATCH v8 1/8] lib/pmu: quiesce rte_pmu_read deprecation warning in chkincs Tomasz Duszynski
2025-07-22 12:00 ` [PATCH v8 2/8] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-07-22 12:00 ` [PATCH v8 3/8] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-07-22 12:00 ` [PATCH v8 4/8] lib/pmu: do not try enabling perf counter access on arm64 Tomasz Duszynski
2025-07-22 12:00 ` [PATCH v8 5/8] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-07-22 12:00 ` [PATCH v8 6/8] test/pmu: enable test Tomasz Duszynski
2025-07-22 12:00 ` [PATCH v8 7/8] trace: add PMU Tomasz Duszynski
2025-07-22 12:00 ` [PATCH v8 8/8] lib/pmu: fix out-of-bound access Tomasz Duszynski
2025-07-23 4:41 ` [PATCH v9 0/8] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-07-23 4:41 ` [PATCH v9 1/8] lib/pmu: quiesce rte_pmu_read deprecation warning in chkincs Tomasz Duszynski
2025-07-23 14:27 ` Stephen Hemminger
2025-08-01 9:37 ` Tomasz Duszynski
2025-08-01 21:57 ` Stephen Hemminger
2025-07-23 4:41 ` [PATCH v9 2/8] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-07-23 4:41 ` [PATCH v9 3/8] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-07-23 4:41 ` [PATCH v9 4/8] lib/pmu: do not try enabling perf counter access on arm64 Tomasz Duszynski
2025-07-23 4:41 ` [PATCH v9 5/8] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-07-23 4:41 ` [PATCH v9 6/8] test/pmu: enable test Tomasz Duszynski
2025-07-23 4:41 ` [PATCH v9 7/8] trace: add PMU Tomasz Duszynski
2025-07-23 4:41 ` [PATCH v9 8/8] lib/pmu: fix out-of-bound access Tomasz Duszynski
2025-08-01 10:20 ` [PATCH v10 00/10] lib/pmu: cleanups and trace integration Tomasz Duszynski
2025-08-01 10:21 ` [PATCH v10 01/10] trace: change scope of conditional block Tomasz Duszynski
2025-08-01 10:21 ` [PATCH v10 02/10] lib/pmu: fix build error if ALLOW_EXPERIMENAL_API is undefined Tomasz Duszynski
2025-08-01 10:21 ` [PATCH v10 03/10] lib/pmu: quiesce rte_pmu_read deprecation warning in chkincs Tomasz Duszynski
2025-08-01 21:47 ` Stephen Hemminger
2025-08-04 10:09 ` Tomasz Duszynski
2025-08-01 10:21 ` [PATCH v10 04/10] lib/pmu: export only necessary arch headers Tomasz Duszynski
2025-08-01 10:21 ` [PATCH v10 05/10] lib/pmu: reimplement per-arch ops as callbacks Tomasz Duszynski
2025-08-01 10:21 ` [PATCH v10 06/10] lib/pmu: do not try enabling perf counter access on arm64 Tomasz Duszynski
2025-08-01 21:49 ` Stephen Hemminger
2025-08-04 8:32 ` Tomasz Duszynski
2025-08-04 17:12 ` Wathsala Vithanage [this message]
2025-08-01 10:21 ` [PATCH v10 07/10] lib/pmu: use build system defined RTE_LIB_PMU macro Tomasz Duszynski
2025-08-01 10:21 ` [PATCH v10 08/10] test/pmu: enable test Tomasz Duszynski
2025-08-01 10:21 ` [PATCH v10 09/10] trace: add PMU Tomasz Duszynski
2025-08-01 10:21 ` [PATCH v10 10/10] lib/pmu: fix out-of-bound access Tomasz Duszynski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=PAWPR08MB8909ED3F729BD92BD2904F2D9F23A@PAWPR08MB8909.eurprd08.prod.outlook.com \
--to=wathsala.vithanage@arm.com \
--cc=bruce.richardson@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=mb@smartsharesystems.com \
--cc=nd@arm.com \
--cc=stephen@networkplumber.org \
--cc=tduszynski@marvell.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).