From: Hui Su <sh_def@163.com>
To: peterz@infradead.org, soolaugust@gmail.com, arighi@nvidia.com
Cc: mingo@redhat.com, kprateek.nayak@amd.com, juri.lelli@redhat.com,
vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
rostedt@goodmis.org, bsegall@google.com, mgorman@suse.de,
vschneid@redhat.com, connoro@google.com, jstultz@google.com,
linux-kernel@vger.kernel.org, sched-ext@lists.linux.dev
Subject: [PATCH v5 0/4] sched: Handle split scheduling and execution contexts in task ticks
Date: Sun, 13 Sep 2026 15:47:18 +0900 [thread overview]
Message-ID: <20260913064722.1534766-1-sh_def@163.com> (raw)
Proxy execution separates the task selected for scheduling from the task
whose execution state advances. This series dispatches scheduler ticks to
both contexts, keeps NUMA and cache work tied to the execution task, and
accounts core-scheduling slice service across same-donor execution-owner
handoffs.
Scheduling-class policy work remains donor-owned, while execution-context
consumers use rq->curr. The core-scheduling fix keeps a per-runqueue donor
service baseline so a synthetic same-donor proxy reselect preserves service
already consumed on behalf of the donor.
Link: https://lore.kernel.org/r/20260909092901.2989564-1-sh_def@163.com
Changes since v4:
- Rework FAIR task-tick handling into one donor-owned block followed by one
execution-context block, with NUMA and cache work in the latter.
- Keep task_tick_scx() donor-gated pending the separate sched_ext/proxy
execution integration.
- Preserve the donor core-slice baseline across same-donor synthetic
reselects, while resetting it for a new donor or explicit set-next
reactivation.
- Drop the RT watchdog patch from this series; continue that work separately.
Validation:
- x86_64 vmlinux/modules/bzImage builds passed with the main configuration
and CONFIG_SCHED_PROXY_EXEC=n, CONFIG_SCHED_CORE=n,
CONFIG_SCHED_CACHE=n, CONFIG_FAIR_GROUP_SCHED=n,
CONFIG_NUMA_BALANCING=y, and CONFIG_SCHED_CLASS_EXT=y variants.
sched_ext selftests also built successfully with the SCX-enabled kernel.
- x86_64 QEMU boot smoke and feature-off boot tests: PASS.
- Exact-head two-node NUMA/proxy smoke: PASS.
- Previous validation of the unchanged patch content covers scheduler
selftests, NO_HZ_FULL proxy smoke, and SMT core-scheduling behavior.
- A focused same-donor CORE-01 test split service across two execution
owners. Each individual portion stayed below the force-idle threshold,
while accumulated donor service crossed it with one core_sched_start
baseline.
No mixed sched_ext/proxy runtime was run because the configurations are
currently mutually exclusive. Runtime validation was performed on x86_64
only; no 32-bit or ARM runtime validation was performed for this revision.
Hui Su (4):
sched: Dispatch task ticks for donor and execution classes
sched/numa: Drive NUMA task tick from execution context
sched/cache: Drive cache task tick from execution context
sched/core: Fix donor slice accounting under proxy execution
kernel/sched/core.c | 22 ++++++++++--
kernel/sched/deadline.c | 10 ++++--
kernel/sched/ext/ext.c | 22 +++++++++---
kernel/sched/fair.c | 77 ++++++++++++++++++++++++----------------
kernel/sched/idle.c | 8 ++---
kernel/sched/rt.c | 13 ++++---
kernel/sched/sched.h | 4 ++-
kernel/sched/stop_task.c | 5 ++-
8 files changed, 108 insertions(+), 53 deletions(-)
base-commit: cba2348ab114391f5b1a00fa65c5b739f13f0563
--
2.55.0
next reply other threads:[~2026-09-13 6:49 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-13 6:47 Hui Su [this message]
2026-09-13 6:47 ` [PATCH v5 1/4] sched: Dispatch task ticks for donor and execution classes Hui Su
2026-09-13 12:08 ` Kayra Cizmeci
2026-09-13 13:07 ` Hui Su
2026-09-13 6:47 ` [PATCH v5 2/4] sched/numa: Drive NUMA task tick from execution context Hui Su
2026-09-13 6:47 ` [PATCH v5 3/4] sched/cache: Drive cache " Hui Su
2026-09-13 6:47 ` [PATCH v5 4/4] sched/core: Fix donor slice accounting under proxy execution Hui Su
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=20260913064722.1534766-1-sh_def@163.com \
--to=sh_def@163.com \
--cc=arighi@nvidia.com \
--cc=bsegall@google.com \
--cc=connoro@google.com \
--cc=dietmar.eggemann@arm.com \
--cc=jstultz@google.com \
--cc=juri.lelli@redhat.com \
--cc=kprateek.nayak@amd.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=sched-ext@lists.linux.dev \
--cc=soolaugust@gmail.com \
--cc=vincent.guittot@linaro.org \
--cc=vschneid@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®