public inbox for sched-ext@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH v4 0/2] sched_ext: Update demo schedulers and selftests for deprecated APIs
@ 2026-03-14  3:36 Cheng-Yang Chou
  2026-03-14  3:36 ` [PATCH v4 1/2] sched_ext: Update demo schedulers and selftests to use scx_bpf_task_set_dsq_vtime() Cheng-Yang Chou
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Cheng-Yang Chou @ 2026-03-14  3:36 UTC (permalink / raw)
  To: sched-ext, Tejun Heo, David Vernet, Andrea Righi, Changwoo Min
  Cc: Ching-Chun Huang, Chia-Ping Tsai, yphbchou0911

Two sets of sched_ext APIs have been deprecated:

- Direct writes to p->scx.dsq_vtime in favor of 
  scx_bpf_task_set_dsq_vtime()
- ops.cpu_acquire/release() in favor of handling CPU preemption via the
  sched_switch tracepoint, as introduced by commit a3f5d4822253 
  ("sched_ext: Allow scx_bpf_reenqueue_local() to be called from 
  anywhere")

This series updates the demo schedulers (scx_simple, scx_flatcg) and
selftests (select_cpu_vtime, maximal) to use the new APIs, keeping them
in sync with current best practices.

Patch 1 updates scx_simple, scx_flatcg, and select_cpu_vtime to use
scx_bpf_task_set_dsq_vtime() with scale_by_task_weight_inverse(), with
the delta computation moved inside the if block.

Patch 2 replaces the cpu_acquire/release stubs in the maximal selftest
with a minimal sched_switch TP program, and fixes the maximal and
reload_loop tests to properly attach the sched_switch tracepoint via
bpf_map__set_autoattach() and maximal__attach(), as both tests use the
maximal skeleton.

Changes in v4:
- Drop scx_qmap changes from patch 2, already applied in commit 
  3229ac4a5ef5 ("sched_ext: Add SCX_OPS_ALWAYS_ENQ_IMMED ops flag")
- Move delta computation inside the if block (Tejun Heo)
- Link to v3:
  https://lore.kernel.org/all/20260313014944.1234667-1-yphbchou0911@gmail.com/

Changes in v3:
- Use scale_by_task_weight_inverse() instead of scale_by_task_weight()
  (Andrea Righi)
- Link to v2:
  https://lore.kernel.org/all/20260312175527.1220540-1-yphbchou0911@gmail.com/

Changes in v2:
- Use scx_bpf_task_set_dsq_vtime() with scale_by_task_weight instead
  of direct assignment and remove redundant bpf_ksym_exists() logic
  (Andrea Righi)
- Mention commit a3f5d4822253 ("sched_ext: Allow
  scx_bpf_reenqueue_local() to be called from anywhere") in the commit
  message to clarify why ops.cpu_acquire/release() are being deprecated
  (Andrea Righi)
- Fix maximal.c and reload_loop.c to actually attach the sched_switch
  tracepoint by calling bpf_map__set_autoattach() and maximal__attach()
  (Andrea Righi)
- Link to v1:
  https://lore.kernel.org/all/20260312042001.955675-1-yphbchou0911@gmail.com/

Thanks,
Cheng-Yang

---

Cheng-Yang Chou (2):
  sched_ext: Update demo schedulers and selftests to use
    scx_bpf_task_set_dsq_vtime()
  sched_ext: Update selftests to drop ops.cpu_acquire/release()

 tools/sched_ext/scx_flatcg.bpf.c                  | 12 +++++++-----
 tools/sched_ext/scx_simple.bpf.c                  |  6 ++++--
 tools/testing/selftests/sched_ext/maximal.bpf.c   | 15 ++++++---------
 tools/testing/selftests/sched_ext/maximal.c       |  3 +++
 tools/testing/selftests/sched_ext/reload_loop.c   |  3 +++
 .../selftests/sched_ext/select_cpu_vtime.bpf.c    |  7 +++++--
 6 files changed, 28 insertions(+), 18 deletions(-)

-- 
2.48.1


^ permalink raw reply	[flat|nested] 6+ messages in thread
* [PATCH v5 0/2] sched_ext: Update demo schedulers and selftests for deprecated APIs
@ 2026-03-15  8:24 Cheng-Yang Chou
  2026-03-15  8:24 ` [PATCH v4 " Cheng-Yang Chou
  0 siblings, 1 reply; 6+ messages in thread
From: Cheng-Yang Chou @ 2026-03-15  8:24 UTC (permalink / raw)
  To: sched-ext, Tejun Heo, David Vernet, Andrea Righi, Changwoo Min
  Cc: Ching-Chun Huang, Chia-Ping Tsai, yphbchou0911

Two sets of sched_ext APIs have been deprecated:

- Direct writes to p->scx.dsq_vtime in favor of
  scx_bpf_task_set_dsq_vtime()
- ops.cpu_acquire/release() in favor of handling CPU preemption via the
  sched_switch tracepoint, as introduced by commit a3f5d4822253
  ("sched_ext: Allow scx_bpf_reenqueue_local() to be called from
  anywhere")

This series updates the demo schedulers (scx_simple, scx_flatcg) and
selftests (select_cpu_vtime, maximal) to use the new APIs, keeping them
in sync with current best practices.

Patch 1 updates scx_simple, scx_flatcg, and select_cpu_vtime to use
scx_bpf_task_set_dsq_vtime() with scale_by_task_weight_inverse(), with
the delta computation moved inside the if block.

Patch 2 replaces the cpu_acquire/release stubs in the maximal selftest
with a minimal sched_switch TP program, and fixes the maximal and
reload_loop tests to properly attach the sched_switch tracepoint via
bpf_map__set_autoattach() and maximal__attach(), as both tests use the
maximal skeleton.

Changes in v5:
- Fix trailing blank line in select_cpu_vtime_stopping() (Tejun Heo)
- Fix prev_state type: unsigned long -> unsigned int in
  maximal_sched_switch (Tejun Heo)
- Link to v4:
  https://lore.kernel.org/all/20260314033708.26483-1-yphbchou0911@gmail.com/

Changes in v4:
- Drop scx_qmap changes from patch 2, already applied in commit
  3229ac4a5ef5 ("sched_ext: Add SCX_OPS_ALWAYS_ENQ_IMMED ops flag")
- Move delta computation inside the if block (Tejun)
- Link to v3:
  https://lore.kernel.org/all/20260313014944.1234667-1-yphbchou0911@gmail.com/

Changes in v3:
- Use scale_by_task_weight_inverse() instead of scale_by_task_weight()
  (Andrea Righi)
- Link to v2:
  https://lore.kernel.org/all/20260312175527.1220540-1-yphbchou0911@gmail.com/

Changes in v2:
- Use scx_bpf_task_set_dsq_vtime() with scale_by_task_weight instead
  of direct assignment and remove redundant bpf_ksym_exists() logic
  (Andrea Righi)
- Mention commit a3f5d4822253 ("sched_ext: Allow
  scx_bpf_reenqueue_local() to be called from anywhere") in the commit
  message to clarify why ops.cpu_acquire/release() are being deprecated
  (Andrea Righi)
- Fix maximal.c and reload_loop.c to actually attach the sched_switch
  tracepoint by calling bpf_map__set_autoattach() and maximal__attach()
  (Andrea Righi)
- Link to v1:
  https://lore.kernel.org/all/20260312042001.955675-1-yphbchou0911@gmail.com/

Thanks,
Cheng-Yang

---

Cheng-Yang Chou (2):
  sched_ext: Update demo schedulers and selftests to use
    scx_bpf_task_set_dsq_vtime()
  sched_ext: Update selftests to drop ops.cpu_acquire/release()

 tools/sched_ext/scx_flatcg.bpf.c                  | 12 +++++++-----
 tools/sched_ext/scx_simple.bpf.c                  |  6 ++++--
 tools/testing/selftests/sched_ext/maximal.bpf.c   | 15 ++++++---------
 tools/testing/selftests/sched_ext/maximal.c       |  3 +++
 tools/testing/selftests/sched_ext/reload_loop.c   |  3 +++
 .../selftests/sched_ext/select_cpu_vtime.bpf.c    |  6 ++++--
 6 files changed, 27 insertions(+), 18 deletions(-)

-- 
2.48.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-03-15  8:34 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-14  3:36 [PATCH v4 0/2] sched_ext: Update demo schedulers and selftests for deprecated APIs Cheng-Yang Chou
2026-03-14  3:36 ` [PATCH v4 1/2] sched_ext: Update demo schedulers and selftests to use scx_bpf_task_set_dsq_vtime() Cheng-Yang Chou
2026-03-14  3:36 ` [PATCH v4 2/2] sched_ext: Update selftests to drop ops.cpu_acquire/release() Cheng-Yang Chou
2026-03-14  9:04 ` [PATCH v4 0/2] sched_ext: Update demo schedulers and selftests for deprecated APIs Tejun Heo
  -- strict thread matches above, loose matches on Subject: below --
2026-03-15  8:24 [PATCH v5 " Cheng-Yang Chou
2026-03-15  8:24 ` [PATCH v4 " Cheng-Yang Chou
2026-03-15  8:34   ` Cheng-Yang Chou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox