[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <tip-04e048cf09d7b5fc995817cdc5ae1acd4482429c@git.kernel.org>
Date: Tue, 6 Aug 2019 04:20:56 -0700
From: tip-bot for Suren Baghdasaryan <tipbot@...or.com>
To: linux-tip-commits@...r.kernel.org
Cc: hpa@...or.com, nnk@...gle.com, surenb@...gle.com,
peterz@...radead.org, tglx@...utronix.de,
linux-kernel@...r.kernel.org, mingo@...nel.org
Subject: [tip:sched/urgent] sched/psi: Do not require setsched permission
from the trigger creator
Commit-ID: 04e048cf09d7b5fc995817cdc5ae1acd4482429c
Gitweb: https://git.kernel.org/tip/04e048cf09d7b5fc995817cdc5ae1acd4482429c
Author: Suren Baghdasaryan <surenb@...gle.com>
AuthorDate: Mon, 29 Jul 2019 18:33:10 -0700
Committer: Peter Zijlstra <peterz@...radead.org>
CommitDate: Tue, 6 Aug 2019 12:49:18 +0200
sched/psi: Do not require setsched permission from the trigger creator
When a process creates a new trigger by writing into /proc/pressure/*
files, permissions to write such a file should be used to determine whether
the process is allowed to do so or not. Current implementation would also
require such a process to have setsched capability. Setting of psi trigger
thread's scheduling policy is an implementation detail and should not be
exposed to the user level. Remove the permission check by using _nocheck
version of the function.
Suggested-by: Nick Kralevich <nnk@...gle.com>
Signed-off-by: Suren Baghdasaryan <surenb@...gle.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
Cc: lizefan@...wei.com
Cc: mingo@...hat.com
Cc: akpm@...ux-foundation.org
Cc: kernel-team@...roid.com
Cc: dennisszhou@...il.com
Cc: dennis@...nel.org
Cc: hannes@...xchg.org
Cc: axboe@...nel.dk
Link: https://lkml.kernel.org/r/20190730013310.162367-1-surenb@google.com
---
kernel/sched/psi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/sched/psi.c b/kernel/sched/psi.c
index 7fe2c5fd26b5..23fbbcc414d5 100644
--- a/kernel/sched/psi.c
+++ b/kernel/sched/psi.c
@@ -1061,7 +1061,7 @@ struct psi_trigger *psi_trigger_create(struct psi_group *group,
mutex_unlock(&group->trigger_lock);
return ERR_CAST(kworker);
}
- sched_setscheduler(kworker->task, SCHED_FIFO, ¶m);
+ sched_setscheduler_nocheck(kworker->task, SCHED_FIFO, ¶m);
kthread_init_delayed_work(&group->poll_work,
psi_poll_work);
rcu_assign_pointer(group->poll_kworker, kworker);
Powered by blists - more mailing lists