[PATCH sched_ext/for-6.12-fixes] sched_ext: Make cast_mask() inline

Tejun Heo posted 1 patch 1 month ago
tools/sched_ext/include/scx/common.bpf.h |    2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH sched_ext/for-6.12-fixes] sched_ext: Make cast_mask() inline
Posted by Tejun Heo 1 month ago
cast_mask() doesn't do any actual work and is defined in a header file.
Force it to be inline. When it is not inlined and the function is not used,
it can cause verificaiton failures like the following:

  # tools/testing/selftests/sched_ext/runner -t minimal
  ===== START =====
  TEST: minimal
  DESCRIPTION: Verify we can load a fully minimal scheduler
  OUTPUT:
  libbpf: prog 'cast_mask': missing BPF prog type, check ELF section name '.text'
  libbpf: prog 'cast_mask': failed to load: -22
  libbpf: failed to load object 'minimal'
  libbpf: failed to load BPF skeleton 'minimal': -22
  ERR: minimal.c:20
  Failed to open and load skel
  not ok 1 minimal #
  =====  END  =====

Signed-off-by: Tejun Heo <tj@kernel.org>
Fixes: a748db0c8c6a ("tools/sched_ext: Receive misc updates from SCX repo")
---
 tools/sched_ext/include/scx/common.bpf.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/sched_ext/include/scx/common.bpf.h b/tools/sched_ext/include/scx/common.bpf.h
index 27749c51c3ec..248ab790d143 100644
--- a/tools/sched_ext/include/scx/common.bpf.h
+++ b/tools/sched_ext/include/scx/common.bpf.h
@@ -320,7 +320,7 @@ u32 bpf_cpumask_weight(const struct cpumask *cpumask) __ksym;
 /*
  * Access a cpumask in read-only mode (typically to check bits).
  */
-const struct cpumask *cast_mask(struct bpf_cpumask *mask)
+static __always_inline const struct cpumask *cast_mask(struct bpf_cpumask *mask)
 {
 	return (const struct cpumask *)mask;
 }
Re: [PATCH sched_ext/for-6.12-fixes] sched_ext: Make cast_mask() inline
Posted by Tejun Heo 1 month ago
On Fri, Oct 25, 2024 at 12:11:14PM -1000, Tejun Heo wrote:
> cast_mask() doesn't do any actual work and is defined in a header file.
> Force it to be inline. When it is not inlined and the function is not used,
> it can cause verificaiton failures like the following:
> 
>   # tools/testing/selftests/sched_ext/runner -t minimal
>   ===== START =====
>   TEST: minimal
>   DESCRIPTION: Verify we can load a fully minimal scheduler
>   OUTPUT:
>   libbpf: prog 'cast_mask': missing BPF prog type, check ELF section name '.text'
>   libbpf: prog 'cast_mask': failed to load: -22
>   libbpf: failed to load object 'minimal'
>   libbpf: failed to load BPF skeleton 'minimal': -22
>   ERR: minimal.c:20
>   Failed to open and load skel
>   not ok 1 minimal #
>   =====  END  =====
> 
> Signed-off-by: Tejun Heo <tj@kernel.org>
> Fixes: a748db0c8c6a ("tools/sched_ext: Receive misc updates from SCX repo")

Applying to sched_ext/for-6.12-fixes.

Thanks.

-- 
tejun