* sched_ext: build errors when building flatcg and qmap schedulers
@ 2024-10-01 11:38 Vishal Chourasia
2024-10-01 20:45 ` Tejun Heo
0 siblings, 1 reply; 3+ messages in thread
From: Vishal Chourasia @ 2024-10-01 11:38 UTC (permalink / raw)
To: Tejun Heo; +Cc: David Vernet, Josh Don, Hao Luo, Barret Rhoden, linux-kernel
Hi,
Getting build error when trying to compile example schedulers in
tools/sched_ext/* (logs shared in the end)
tools/sched_ext # make -s -k
git repo state
$ git log --oneline
e32cde8d2bd7d (HEAD -> master, origin/master, origin/HEAD) Merge tag 'sched_ext-for-6.12-rc1-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext
190ecde722dd0 Merge tag 'probes-fixes-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
a5f24c795513f Merge tag 'vfs-6.12-rc2.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
f801850bc263d netfs: Fix the netfs_folio tracepoint to handle NULL mapping
28e8c5c095ec2 netfs: Add folio_queue API documentation
2007d28ec0095 bcachefs: rename version -> bversion for big endian builds
34820304cc2cd uprobes: fix kernel info leak via "[uprobes]" vma
9852d85ec9d49 (tag: v6.12-rc1) Linux 6.12-rc1
Adding __weak attribute seems to have fixed it and compilation completed
with no errors.
diff --git a/tools/sched_ext/include/scx/common.bpf.h b/tools/sched_ext/include/scx/common.bpf.h
index 225f61f9bfca..27749c51c3ec 100644
--- a/tools/sched_ext/include/scx/common.bpf.h
+++ b/tools/sched_ext/include/scx/common.bpf.h
@@ -41,8 +41,8 @@ void scx_bpf_dispatch_vtime(struct task_struct *p, u64 dsq_id, u64 slice, u64 vt
u32 scx_bpf_dispatch_nr_slots(void) __ksym;
void scx_bpf_dispatch_cancel(void) __ksym;
bool scx_bpf_consume(u64 dsq_id) __ksym;
-void scx_bpf_dispatch_from_dsq_set_slice(struct bpf_iter_scx_dsq *it__iter, u64 slice) __ksym;
-void scx_bpf_dispatch_from_dsq_set_vtime(struct bpf_iter_scx_dsq *it__iter, u64 vtime) __ksym;
+void scx_bpf_dispatch_from_dsq_set_slice(struct bpf_iter_scx_dsq *it__iter, u64 slice) __ksym __weak;
+void scx_bpf_dispatch_from_dsq_set_vtime(struct bpf_iter_scx_dsq *it__iter, u64 vtime) __ksym __weak;
bool scx_bpf_dispatch_from_dsq(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __ksym __weak;
bool scx_bpf_dispatch_vtime_from_dsq(struct bpf_iter_scx_dsq *it__iter, struct task_struct *p, u64 dsq_id, u64 enq_flags) __ksym __weak;
u32 scx_bpf_reenqueue_local(void) __ksym;
@@ -71,7 +71,7 @@ s32 scx_bpf_pick_any_cpu(const cpumask_t *cpus_allowed, u64 flags) __ksym;
bool scx_bpf_task_running(const struct task_struct *p) __ksym;
s32 scx_bpf_task_cpu(const struct task_struct *p) __ksym;
struct rq *scx_bpf_cpu_rq(s32 cpu) __ksym;
-struct cgroup *scx_bpf_task_cgroup(struct task_struct *p) __ksym;
+struct cgroup *scx_bpf_task_cgroup(struct task_struct *p) __ksym __weak;
/*
* Use the following as @it__iter when calling
---- Start of error log
$ make -s -k
Warning: Kernel ABI header at 'tools/include/uapi/linux/bpf.h' differs from latest version at 'include/uapi/linux/bpf.h'
Warning: Kernel ABI header at 'tools/include/uapi/linux/if_xdp.h' differs from latest version at 'include/uapi/linux/if_xdp.h'
Auto-detecting system features:
... clang-bpf-co-re: [ on ]
... llvm: [ on ]
... libcap: [ OFF ]
... libbfd: [ OFF ]
scx_qmap.bpf.c:321:4: error: static assertion failed due to requirement '!__builtin_constant_p(!!scx_bpf_dispatch_from_dsq_set_slice)': scx_bpf_dispatch_from_dsq_set_slice should be marked as __weak
321 | __COMPAT_scx_bpf_dispatch_from_dsq_set_slice(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
322 | BPF_FOR_EACH_ITER, slice_ns * 2);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/include/scx/compat.bpf.h:25:3: note: expanded from macro '__COMPAT_scx_bpf_dispatch_from_dsq_set_slice'
25 | (bpf_ksym_exists(scx_bpf_dispatch_from_dsq_set_slice) ? \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/build/include/bpf/bpf_helpers.h:191:17: note: expanded from macro 'bpf_ksym_exists'
191 | _Static_assert(!__builtin_constant_p(!!sym), \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
scx_qmap.bpf.c:323:4: error: static assertion failed due to requirement '!__builtin_constant_p(!!scx_bpf_dispatch_from_dsq_set_vtime)': scx_bpf_dispatch_from_dsq_set_vtime should be marked as __weak
323 | __COMPAT_scx_bpf_dispatch_from_dsq_set_vtime(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324 | BPF_FOR_EACH_ITER, highpri_seq++);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/include/scx/compat.bpf.h:28:3: note: expanded from macro '__COMPAT_scx_bpf_dispatch_from_dsq_set_vtime'
28 | (bpf_ksym_exists(scx_bpf_dispatch_from_dsq_set_vtime) ? \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/build/include/bpf/bpf_helpers.h:191:17: note: expanded from macro 'bpf_ksym_exists'
191 | _Static_assert(!__builtin_constant_p(!!sym), \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
make: *** [Makefile:165: $HOME/linux-x86/tools/sched_ext/build/obj/sched_ext/scx_qmap.bpf.o] Error 1
scx_flatcg.bpf.c:388:9: error: static assertion failed due to requirement '!__builtin_constant_p(!!scx_bpf_task_cgroup)': scx_bpf_task_cgroup should be marked as __weak
388 | cgrp = __COMPAT_scx_bpf_task_cgroup(p);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/include/scx/compat.bpf.h:20:3: note: expanded from macro '__COMPAT_scx_bpf_task_cgroup'
20 | (bpf_ksym_exists(scx_bpf_task_cgroup) ? \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/build/include/bpf/bpf_helpers.h:191:17: note: expanded from macro 'bpf_ksym_exists'
191 | _Static_assert(!__builtin_constant_p(!!sym), \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
scx_flatcg.bpf.c:514:9: error: static assertion failed due to requirement '!__builtin_constant_p(!!scx_bpf_task_cgroup)': scx_bpf_task_cgroup should be marked as __weak
514 | cgrp = __COMPAT_scx_bpf_task_cgroup(p);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/include/scx/compat.bpf.h:20:3: note: expanded from macro '__COMPAT_scx_bpf_task_cgroup'
20 | (bpf_ksym_exists(scx_bpf_task_cgroup) ? \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/build/include/bpf/bpf_helpers.h:191:17: note: expanded from macro 'bpf_ksym_exists'
191 | _Static_assert(!__builtin_constant_p(!!sym), \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
scx_flatcg.bpf.c:527:9: error: static assertion failed due to requirement '!__builtin_constant_p(!!scx_bpf_task_cgroup)': scx_bpf_task_cgroup should be marked as __weak
527 | cgrp = __COMPAT_scx_bpf_task_cgroup(p);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/include/scx/compat.bpf.h:20:3: note: expanded from macro '__COMPAT_scx_bpf_task_cgroup'
20 | (bpf_ksym_exists(scx_bpf_task_cgroup) ? \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/build/include/bpf/bpf_helpers.h:191:17: note: expanded from macro 'bpf_ksym_exists'
191 | _Static_assert(!__builtin_constant_p(!!sym), \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
scx_flatcg.bpf.c:570:9: error: static assertion failed due to requirement '!__builtin_constant_p(!!scx_bpf_task_cgroup)': scx_bpf_task_cgroup should be marked as __weak
570 | cgrp = __COMPAT_scx_bpf_task_cgroup(p);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/include/scx/compat.bpf.h:20:3: note: expanded from macro '__COMPAT_scx_bpf_task_cgroup'
20 | (bpf_ksym_exists(scx_bpf_task_cgroup) ? \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/build/include/bpf/bpf_helpers.h:191:17: note: expanded from macro 'bpf_ksym_exists'
191 | _Static_assert(!__builtin_constant_p(!!sym), \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
scx_flatcg.bpf.c:584:9: error: static assertion failed due to requirement '!__builtin_constant_p(!!scx_bpf_task_cgroup)': scx_bpf_task_cgroup should be marked as __weak
584 | cgrp = __COMPAT_scx_bpf_task_cgroup(p);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/include/scx/compat.bpf.h:20:3: note: expanded from macro '__COMPAT_scx_bpf_task_cgroup'
20 | (bpf_ksym_exists(scx_bpf_task_cgroup) ? \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$HOME/linux-x86/tools/sched_ext/build/include/bpf/bpf_helpers.h:191:17: note: expanded from macro 'bpf_ksym_exists'
191 | _Static_assert(!__builtin_constant_p(!!sym), \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
5 errors generated.
make: *** [Makefile:165: $HOME/linux-x86/tools/sched_ext/build/obj/sched_ext/scx_flatcg.bpf.o] Error 1
make: Target 'all' not remade because of errors.
---- End of error log
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: sched_ext: build errors when building flatcg and qmap schedulers
2024-10-01 11:38 sched_ext: build errors when building flatcg and qmap schedulers Vishal Chourasia
@ 2024-10-01 20:45 ` Tejun Heo
2024-10-02 5:17 ` Vishal Chourasia
0 siblings, 1 reply; 3+ messages in thread
From: Tejun Heo @ 2024-10-01 20:45 UTC (permalink / raw)
To: Vishal Chourasia
Cc: David Vernet, Josh Don, Hao Luo, Barret Rhoden, linux-kernel
Hello, Vishal.
On Tue, Oct 01, 2024 at 05:08:58PM +0530, Vishal Chourasia wrote:
> Getting build error when trying to compile example schedulers in
> tools/sched_ext/* (logs shared in the end)
>
>
> tools/sched_ext # make -s -k
>
>
> git repo state
> $ git log --oneline
> e32cde8d2bd7d (HEAD -> master, origin/master, origin/HEAD) Merge tag 'sched_ext-for-6.12-rc1-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext
> 190ecde722dd0 Merge tag 'probes-fixes-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
> a5f24c795513f Merge tag 'vfs-6.12-rc2.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
> f801850bc263d netfs: Fix the netfs_folio tracepoint to handle NULL mapping
> 28e8c5c095ec2 netfs: Add folio_queue API documentation
> 2007d28ec0095 bcachefs: rename version -> bversion for big endian builds
> 34820304cc2cd uprobes: fix kernel info leak via "[uprobes]" vma
> 9852d85ec9d49 (tag: v6.12-rc1) Linux 6.12-rc1
>
>
> Adding __weak attribute seems to have fixed it and compilation completed
> with no errors.
Hmm... I don't see the failure here. Maybe toolchain difference? Anyways,
can you send the patch to add __weak?
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: sched_ext: build errors when building flatcg and qmap schedulers
2024-10-01 20:45 ` Tejun Heo
@ 2024-10-02 5:17 ` Vishal Chourasia
0 siblings, 0 replies; 3+ messages in thread
From: Vishal Chourasia @ 2024-10-02 5:17 UTC (permalink / raw)
To: Tejun Heo; +Cc: David Vernet, Josh Don, Hao Luo, Barret Rhoden, linux-kernel
On Tue, Oct 01, 2024 at 10:45:55AM -1000, Tejun Heo wrote:
> Hello, Vishal.
>
> On Tue, Oct 01, 2024 at 05:08:58PM +0530, Vishal Chourasia wrote:
> > Getting build error when trying to compile example schedulers in
> > tools/sched_ext/* (logs shared in the end)
> >
> >
> > tools/sched_ext # make -s -k
> >
> >
> > git repo state
> > $ git log --oneline
> > e32cde8d2bd7d (HEAD -> master, origin/master, origin/HEAD) Merge tag 'sched_ext-for-6.12-rc1-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext
> > 190ecde722dd0 Merge tag 'probes-fixes-v6.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
> > a5f24c795513f Merge tag 'vfs-6.12-rc2.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
> > f801850bc263d netfs: Fix the netfs_folio tracepoint to handle NULL mapping
> > 28e8c5c095ec2 netfs: Add folio_queue API documentation
> > 2007d28ec0095 bcachefs: rename version -> bversion for big endian builds
> > 34820304cc2cd uprobes: fix kernel info leak via "[uprobes]" vma
> > 9852d85ec9d49 (tag: v6.12-rc1) Linux 6.12-rc1
> >
> >
> > Adding __weak attribute seems to have fixed it and compilation completed
> > with no errors.
>
> Hmm... I don't see the failure here. Maybe toolchain difference? Anyways,
$ clang --version
clang version 20.0.0git (https://github.com/llvm/llvm-project.git 00c198b2ca6b6bee2d90e62d78816686ab056b1b)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin
$ gcc --version
gcc (GCC) 14.2.1 20240912 (Red Hat 14.2.1-3)
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Do let me know if you need any other information
> can you send the patch to add __weak?
Sure.
>
> Thanks.
>
> --
> tejun
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-10-02 5:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-01 11:38 sched_ext: build errors when building flatcg and qmap schedulers Vishal Chourasia
2024-10-01 20:45 ` Tejun Heo
2024-10-02 5:17 ` Vishal Chourasia
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox