From: Changwoo Min <changwoo@igalia.com>
To: Andrea Righi <arighi@nvidia.com>, Tejun Heo <tj@kernel.org>,
David Vernet <void@manifault.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH sched_ext/for-6.15] tools/sched_ext: Provide a compatible helper for scx_bpf_events()
Date: Thu, 27 Feb 2025 19:27:12 +0900 [thread overview]
Message-ID: <09bc617e-8360-4aaa-8587-2a2bde1f5ef7@igalia.com> (raw)
In-Reply-To: <20250227091138.253809-1-arighi@nvidia.com>
Hi Andrea,
On 25. 2. 27. 18:11, Andrea Righi wrote:
> Introduce __COMPAT_scx_bpf_events() to use scx_bpf_events() in a
> compatible way also with kernels that don't provide this kfunc.
>
> This also fixes the following error with scx_qmap when running on a
> kernel that does not provide scx_bpf_events():
>
> ; scx_bpf_events(&events, sizeof(events)); @ scx_qmap.bpf.c:777
> 318: (b7) r2 = 72 ; R2_w=72 async_cb
> 319: <invalid kfunc call>
> kfunc 'scx_bpf_events' is referenced but wasn't resolved
>
> Fixes: 9865f31d852a4 ("sched_ext: Add scx_bpf_events() and scx_read_event() for BPF schedulers")
> Signed-off-by: Andrea Righi <arighi@nvidia.com>
> ---
> tools/sched_ext/include/scx/compat.bpf.h | 8 ++++++++
> tools/sched_ext/scx_qmap.bpf.c | 2 +-
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/tools/sched_ext/include/scx/compat.bpf.h b/tools/sched_ext/include/scx/compat.bpf.h
> index 266f94fe479b7..9252e1a00556f 100644
> --- a/tools/sched_ext/include/scx/compat.bpf.h
> +++ b/tools/sched_ext/include/scx/compat.bpf.h
> @@ -183,7 +183,15 @@ static inline bool __COMPAT_is_enq_cpu_selected(u64 enq_flags)
> bpf_ktime_get_ns())
>
> /*
> + * v6.15: Introduce event counters.
> *
> + * Preserve the following macro until v6.17.
> + */
> +#define __COMPAT_scx_bpf_events(events, size) \
> + (bpf_ksym_exists(scx_bpf_events) ? \
> + scx_bpf_events(events, size) : ({}))
> +
> +/*
> * v6.15: Introduce NUMA-aware kfuncs to operate with per-node idle
> * cpumasks.
> *
> diff --git a/tools/sched_ext/scx_qmap.bpf.c b/tools/sched_ext/scx_qmap.bpf.c
> index a6c6be308315a..45fd643d2ca0d 100644
> --- a/tools/sched_ext/scx_qmap.bpf.c
> +++ b/tools/sched_ext/scx_qmap.bpf.c
> @@ -774,7 +774,7 @@ static int monitor_timerfn(void *map, int *key, struct bpf_timer *timer)
> if (print_shared_dsq)
> dump_shared_dsq();
>
> - scx_bpf_events(&events, sizeof(events));
> + __COMPAT_scx_bpf_events(&events, sizeof(events));
>
> bpf_printk("%35s: %llu", "SCX_EV_SELECT_CPU_FALLBACK",
> scx_read_event(&events, SCX_EV_SELECT_CPU_FALLBACK));
This is a nice catch. Looks good to me.
Thanks!
Changwoo Min
next prev parent reply other threads:[~2025-02-27 10:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-27 9:11 [PATCH sched_ext/for-6.15] tools/sched_ext: Provide a compatible helper for scx_bpf_events() Andrea Righi
2025-02-27 10:27 ` Changwoo Min [this message]
2025-02-27 16:27 ` Tejun Heo
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=09bc617e-8360-4aaa-8587-2a2bde1f5ef7@igalia.com \
--to=changwoo@igalia.com \
--cc=arighi@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tj@kernel.org \
--cc=void@manifault.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.