Re: [PATCH 0/2] sched: Fix SCHED_FLAG_KEEP_PARAMS side effects
From: Peter Zijlstra
Date: Thu Jul 30 2026 - 05:52:26 EST
On Thu, Jul 30, 2026 at 07:50:09AM +0200, Andrea Righi wrote:
> SCHED_FLAG_KEEP_PARAMS allows sched_setattr() to update generic task
> attributes while retaining the task's existing scheduling parameters and
> class.
Well, KEEP_PARAMS is only sensible when the policy is unchanged, but
that isn't in fact enforced.
Do we want something like so to start with?
---
diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c
index b215b0ead9a6..48094923a755 100644
--- a/kernel/sched/syscalls.c
+++ b/kernel/sched/syscalls.c
@@ -979,8 +979,11 @@ SYSCALL_DEFINE3(sched_setattr, pid_t, pid, struct sched_attr __user *, uattr,
if (!p)
return -ESRCH;
- if (attr.sched_flags & SCHED_FLAG_KEEP_PARAMS)
+ if (attr.sched_flags & SCHED_FLAG_KEEP_PARAMS) {
+ if (attr.sched_policy != p->policy)
+ return -EINVAL;
get_params(p, &attr, 0);
+ }
return sched_setattr(p, &attr);
}