summaryrefslogtreecommitdiffstats
path: root/kernel/delayacct.c
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2021-05-04 22:43:36 +0200
committerPeter Zijlstra <peterz@infradead.org>2021-05-12 11:43:25 +0200
commiteee4d9fee2544389e5ce5697ed92db67c86d7a9f (patch)
tree3f6f000928209912313d34bc3ca383cea1f94fd7 /kernel/delayacct.c
parent63b3f96e1a989846a5a521d4fbef4bc86406929d (diff)
downloadlinux-eee4d9fee2544389e5ce5697ed92db67c86d7a9f.tar.gz
linux-eee4d9fee2544389e5ce5697ed92db67c86d7a9f.tar.bz2
linux-eee4d9fee2544389e5ce5697ed92db67c86d7a9f.zip
delayacct: Add static_branch in scheduler hooks
Cheaper when delayacct is disabled. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Ingo Molnar <mingo@kernel.org> Acked-by: Balbir Singh <bsingharora@gmail.com> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Link: https://lkml.kernel.org/r/20210505111525.248028369@infradead.org
Diffstat (limited to 'kernel/delayacct.c')
-rw-r--r--kernel/delayacct.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/delayacct.c b/kernel/delayacct.c
index 3a0b910386d1..63012fd39ae2 100644
--- a/kernel/delayacct.c
+++ b/kernel/delayacct.c
@@ -14,6 +14,7 @@
#include <linux/delayacct.h>
#include <linux/module.h>
+DEFINE_STATIC_KEY_TRUE(delayacct_key);
int delayacct_on __read_mostly = 1; /* Delay accounting turned on/off */
struct kmem_cache *delayacct_cache;
@@ -28,6 +29,8 @@ void delayacct_init(void)
{
delayacct_cache = KMEM_CACHE(task_delay_info, SLAB_PANIC|SLAB_ACCOUNT);
delayacct_tsk_init(&init_task);
+ if (!delayacct_on)
+ static_branch_disable(&delayacct_key);
}
void __delayacct_tsk_init(struct task_struct *tsk)