[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230615203745.1259-1-bvanassche@acm.org>
Date: Thu, 15 Jun 2023 13:37:26 -0700
From: Bart Van Assche <bvanassche@....org>
To: Peter Zijlstra <peterz@...radead.org>
Cc: linux-kernel@...r.kernel.org, Bart Van Assche <bvanassche@....org>,
Ingo Molnar <mingo@...hat.com>,
Juri Lelli <juri.lelli@...hat.com>,
Vincent Guittot <vincent.guittot@...aro.org>,
Dietmar Eggemann <dietmar.eggemann@....com>,
Steven Rostedt <rostedt@...dmis.org>
Subject: [PATCH] sched/cputime: Make IRQ time accounting configurable at boot time
Some producers of Android devices want IRQ time accounting enabled while
others want IRQ time accounting disabled. Hence, make IRQ time accounting
configurable at boot time.
Cc: Ingo Molnar <mingo@...hat.com>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Juri Lelli <juri.lelli@...hat.com>
Cc: Vincent Guittot <vincent.guittot@...aro.org>
Cc: Dietmar Eggemann <dietmar.eggemann@....com>
Cc: Steven Rostedt <rostedt@...dmis.org>
Signed-off-by: Bart Van Assche <bvanassche@....org>
---
Documentation/admin-guide/kernel-parameters.txt | 4 ++++
kernel/sched/cputime.c | 13 +++++++++++++
2 files changed, 17 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 9e5bab29685f..67a2ad3af833 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -5611,6 +5611,10 @@
non-zero "wait" parameter. See weight_single
and weight_many.
+ sched_clock_irqtime= [KNL]
+ Can be used to disable IRQ time accounting if
+ CONFIG_IRQ_TIME_ACCOUNTING=y.
+
skew_tick= [KNL] Offset the periodic timer tick per cpu to mitigate
xtime_lock contention on larger systems, and/or RCU lock
contention on all systems with CONFIG_MAXSMP set.
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index af7952f12e6c..d9c65017024d 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -24,6 +24,19 @@ DEFINE_PER_CPU(struct irqtime, cpu_irqtime);
static int sched_clock_irqtime;
+static int __init sched_clock_irqtime_setup(char *arg)
+{
+ bool enabled;
+
+ if (kstrtobool(arg, &enabled) < 0)
+ pr_err("Invalid sched_clock_irqtime value\n");
+ else
+ sched_clock_irqtime = enabled;
+ return 1;
+}
+
+__setup("sched_clock_irqtime=", sched_clock_irqtime_setup);
+
void enable_sched_clock_irqtime(void)
{
sched_clock_irqtime = 1;
Powered by blists - more mailing lists