psi: eliminate kthread_worker from psi trigger scheduling mechanism
authorSuren Baghdasaryan <surenb@google.com>
Thu, 28 May 2020 19:54:42 +0000 (12:54 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 15 Jun 2020 12:10:03 +0000 (14:10 +0200)
commit461daba06bdcb9c7a3f92b9bbd110e1f7d093ffc
tree83809825cabcd8d1ea54efb4d57e72266153fb19
parentf4291df103315a696f0b8c4f45ca8ae773c17441
psi: eliminate kthread_worker from psi trigger scheduling mechanism

Each psi group requires a dedicated kthread_delayed_work and
kthread_worker. Since no other work can be performed using psi_group's
kthread_worker, the same result can be obtained using a task_struct and
a timer directly. This makes psi triggering simpler by removing lists
and locks involved with kthread_worker usage and eliminates the need for
poll_scheduled atomic use in the hot path.

Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200528195442.190116-1-surenb@google.com
include/linux/psi_types.h
kernel/sched/psi.c