public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrea Righi <arighi@nvidia.com>
To: Tejun Heo <tj@kernel.org>
Cc: sched-ext@lists.linux.dev, David Vernet <void@manifault.com>,
	Changwoo Min <changwoo@igalia.com>,
	Cheng-Yang Chou <yphbchou0911@gmail.com>,
	Juntong Deng <juntong.deng@outlook.com>,
	Ching-Chun Huang <jserv@ccns.ncku.edu.tw>,
	Chia-Ping Tsai <chia7712@gmail.com>,
	Emil Tsalapatis <emil@etsalapatis.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCHSET sched_ext/for-7.1] sched_ext: Add verifier-time kfunc context filter
Date: Fri, 10 Apr 2026 19:45:32 +0200	[thread overview]
Message-ID: <adk3PF5tJOwJbeop@gpd4> (raw)
In-Reply-To: <20260410063046.3556100-1-tj@kernel.org>

On Thu, Apr 09, 2026 at 08:30:36PM -1000, Tejun Heo wrote:
> Hello,
> 
> This moves enforcement of SCX context-sensitive kfunc restrictions from
> runtime kf_mask checks to BPF verifier-time filtering, using the BPF core's
> struct_ops context information.
> 
> This is based on work by Juntong Deng and Cheng-Yang Chou:
> 
>   https://lore.kernel.org/r/20260406154834.1920962-1-yphbchou0911@gmail.com
> 
> I ended up redoing the series. The number of changes needed and the
> difficulty of validating each one made iterating through review emails
> impractical:
> 
>  - Pre-existing call-site bugs needed fixing first. ops.cgroup_move() was
>    mislabeled as SCX_KF_UNLOCKED when sched_move_task() actually holds the
>    rq lock, and set_cpus_allowed_scx() passed rq=NULL to SCX_CALL_OP_TASK
>    despite holding the rq lock. These had to be sorted out before the
>    runtime-to-verifier conversion could be validated.
> 
>  - The macro-based kfunc ID deduplication (SCX_KFUNCS_*) made it hard to
>    verify that the new code produced the same accept/reject verdicts as
>    the old.
> 
>  - No systematic validation of the full (kfunc, caller) verdict matrix
>    existed, so it wasn't clear whether the conversion was correct.
> 
> This series takes a different approach: first fix the call-site bugs that
> made the conversion harder than it needed to be, then do the conversion in
> small isolated steps, and verify the full verdict matrix at each stage.

Thanks Tejun, Juntong and Cheng-Yang for working on this!

I've done some basic smoke tests with this and everything seems to work fine so
far. I'm planning to run more extensive performance tests, last time that I
tried to brutally comment out scx_kf_allowed() I was getting some small but
consistent performance improvements, so I'm expecting to notice something
similar with this one. Will keep you informed.

Thanks,
-Andrea

      parent reply	other threads:[~2026-04-10 17:45 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-10  6:30 [PATCHSET sched_ext/for-7.1] sched_ext: Add verifier-time kfunc context filter Tejun Heo
2026-04-10  6:30 ` [PATCH 01/10] sched_ext: Drop TRACING access to select_cpu kfuncs Tejun Heo
2026-04-10 16:04   ` Andrea Righi
2026-04-10  6:30 ` [PATCH 02/10] sched_ext: Add select_cpu kfuncs to scx_kfunc_ids_unlocked Tejun Heo
2026-04-10 16:07   ` Andrea Righi
2026-04-10 17:51   ` [PATCH v2 " Tejun Heo
2026-04-10  6:30 ` [PATCH 03/10] sched_ext: Track @p's rq lock across set_cpus_allowed_scx -> ops.set_cpumask Tejun Heo
2026-04-10 16:12   ` Andrea Righi
2026-04-10 17:51   ` [PATCH v2 " Tejun Heo
2026-04-10  6:30 ` [PATCH 04/10] sched_ext: Fix ops.cgroup_move() invocation kf_mask and rq tracking Tejun Heo
2026-04-10 16:16   ` Andrea Righi
2026-04-10 17:51   ` [PATCH v2 " Tejun Heo
2026-04-10  6:30 ` [PATCH 05/10] sched_ext: Decouple kfunc unlocked-context check from kf_mask Tejun Heo
2026-04-10 16:34   ` Andrea Righi
2026-04-10 17:51   ` [PATCH v2 " Tejun Heo
2026-04-10  6:30 ` [PATCH 06/10] sched_ext: Drop redundant rq-locked check from scx_bpf_task_cgroup() Tejun Heo
2026-04-10 16:36   ` Andrea Righi
2026-04-10  6:30 ` [PATCH 07/10] sched_ext: Add verifier-time kfunc context filter Tejun Heo
2026-04-10 16:49   ` Andrea Righi
2026-04-10  6:30 ` [PATCH 08/10] sched_ext: Remove runtime kfunc mask enforcement Tejun Heo
2026-04-10 16:50   ` Andrea Righi
2026-04-10  6:30 ` [PATCH 09/10] sched_ext: Rename scx_kf_allowed_on_arg_tasks() to scx_kf_arg_task_ok() Tejun Heo
2026-04-10 16:55   ` Andrea Righi
2026-04-10  6:30 ` [PATCH 10/10] sched_ext: Warn on task-based SCX op recursion Tejun Heo
2026-04-10 17:38   ` Andrea Righi
2026-04-10 17:45 ` Andrea Righi [this message]

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=adk3PF5tJOwJbeop@gpd4 \
    --to=arighi@nvidia.com \
    --cc=changwoo@igalia.com \
    --cc=chia7712@gmail.com \
    --cc=emil@etsalapatis.com \
    --cc=jserv@ccns.ncku.edu.tw \
    --cc=juntong.deng@outlook.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sched-ext@lists.linux.dev \
    --cc=tj@kernel.org \
    --cc=void@manifault.com \
    --cc=yphbchou0911@gmail.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