Re: [PATCH 10/30] sched_ext: Add scx_simple and scx_example_qmap example schedulers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Tejun,

On 18/06/2024 22:17, Tejun Heo wrote:
Add two simple example BPF schedulers - simple and qmap.

* simple: In terms of scheduling, it behaves identical to not having any
   operation implemented at all. The two operations it implements are only to
   improve visibility and exit handling. On certain homogeneous
   configurations, this actually can perform pretty well.

* qmap: A fixed five level priority scheduler to demonstrate queueing PIDs
   on BPF maps for scheduling. While not very practical, this is useful as a
   simple example and will be used to demonstrate different features.

v7: - Compat helpers stripped out in prepartion of upstreaming as the
       upstreamed patchset will be the baselinfe. Utility macros that can be
       used to implement compat features are kept.

     - Explicitly disable map autoattach on struct_ops to avoid trying to
       attach twice while maintaining compatbility with older libbpf.

v6: - Common header files reorganized and cleaned up. Compat helpers are
       added to demonstrate how schedulers can maintain backward
       compatibility with older kernels while making use of newly added
       features.

     - simple_select_cpu() added to keep track of the number of local
       dispatches. This is needed because the default ops.select_cpu()
       implementation is updated to dispatch directly and won't call
       ops.enqueue().

     - Updated to reflect the sched_ext API changes. Switching all tasks is
       the default behavior now and scx_qmap supports partial switching when
       `-p` is specified.

     - tools/sched_ext/Kconfig dropped. This will be included in the doc
       instead.

v5: - Improve Makefile. Build artifects are now collected into a separate
       dir which change be changed. Install and help targets are added and
       clean actually cleans everything.

     - MEMBER_VPTR() improved to improve access to structs. ARRAY_ELEM_PTR()
       and RESIZEABLE_ARRAY() are added to support resizable arrays in .bss.

     - Add scx_common.h which provides common utilities to user code such as
       SCX_BUG[_ON]() and RESIZE_ARRAY().

     - Use SCX_BUG[_ON]() to simplify error handling.

v4: - Dropped _example prefix from scheduler names.

v3: - Rename scx_example_dummy to scx_example_simple and restructure a bit
       to ease later additions. Comment updates.

     - Added declarations for BPF inline iterators. In the future, hopefully,
       these will be consolidated into a generic BPF header so that they
       don't need to be replicated here.

v2: - Updated with the generic BPF cpumask helpers.

Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
Reviewed-by: David Vernet <dvernet@xxxxxxxx>
Acked-by: Josh Don <joshdon@xxxxxxxxxx>
Acked-by: Hao Luo <haoluo@xxxxxxxxxx>
Acked-by: Barret Rhoden <brho@xxxxxxxxxx>


Our farm builders are currently failing to build -next and I am seeing the following error ...

f76698bd9a8c (HEAD -> refs/heads/buildbrain-branch, refs/remotes/m/master) Add linux-next specific files for 20240621
build-linux.sh: kernel_build - make mrproper
Makefile:83: *** Cannot find a vmlinux for VMLINUX_BTF at any of "  ../../vmlinux /sys/kernel/btf/vmlinux /boot/vmlinux-4.15.0-136-generic".  Stop.
Makefile:192: recipe for target 'sched_ext_clean' failed
make[2]: *** [sched_ext_clean] Error 2
Makefile:1361: recipe for target 'sched_ext' failed
make[1]: *** [sched_ext] Error 2
Makefile:240: recipe for target '__sub-make' failed
make: *** [__sub-make] Error 2

Reverting this change fixes the build. Any thoughts on what is happening here?

Thanks!
Jon

--
nvpublic




[Index of Archives]     [ARM Kernel]     [Linux ARM]     [Linux ARM MSM]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux