]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
sched/cputime: Remove superfluous and error prone kcpustat_field() parameter
authorFrederic Weisbecker <frederic@kernel.org>
Fri, 8 May 2026 13:16:35 +0000 (15:16 +0200)
committerThomas Gleixner <tglx@kernel.org>
Tue, 2 Jun 2026 19:27:25 +0000 (21:27 +0200)
The first parameter to kcpustat_field() is a pointer to the cpu kcpustat to
be fetched from. This parameter is error prone because a copy to a kcpustat
could be passed by accident instead of the original one. Also the kcpustat
structure can already be retrieved with the help of the mandatory CPU
argument.

Remove the needless parameter.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Tested-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Reviewed-by: Shrikanth Hegde <sshegde@linux.ibm.com>
Link: https://patch.msgid.link/20260508131647.43868-4-frederic@kernel.org
drivers/cpufreq/cpufreq_governor.c
drivers/macintosh/rack-meter.c
include/linux/kernel_stat.h
kernel/rcu/tree.c
kernel/rcu/tree_stall.h
kernel/sched/cputime.c

index 86f35e45191423ebcfe22a463ccc57bc5031eec7..3c4a1f9af3ae822497be8bbda19abeb21cacf248 100644 (file)
@@ -105,7 +105,7 @@ void gov_update_cpu_data(struct dbs_data *dbs_data)
                        j_cdbs->prev_cpu_idle = get_cpu_idle_time(j, &j_cdbs->prev_update_time,
                                                                  dbs_data->io_is_busy);
                        if (dbs_data->ignore_nice_load)
-                               j_cdbs->prev_cpu_nice = kcpustat_field(&kcpustat_cpu(j), CPUTIME_NICE, j);
+                               j_cdbs->prev_cpu_nice = kcpustat_field(CPUTIME_NICE, j);
                }
        }
 }
@@ -165,7 +165,7 @@ unsigned int dbs_update(struct cpufreq_policy *policy)
                j_cdbs->prev_cpu_idle = cur_idle_time;
 
                if (ignore_nice) {
-                       u64 cur_nice = kcpustat_field(&kcpustat_cpu(j), CPUTIME_NICE, j);
+                       u64 cur_nice = kcpustat_field(CPUTIME_NICE, j);
 
                        idle_time += div_u64(cur_nice - j_cdbs->prev_cpu_nice, NSEC_PER_USEC);
                        j_cdbs->prev_cpu_nice = cur_nice;
@@ -539,7 +539,7 @@ int cpufreq_dbs_governor_start(struct cpufreq_policy *policy)
                j_cdbs->prev_load = 0;
 
                if (ignore_nice)
-                       j_cdbs->prev_cpu_nice = kcpustat_field(&kcpustat_cpu(j), CPUTIME_NICE, j);
+                       j_cdbs->prev_cpu_nice = kcpustat_field(CPUTIME_NICE, j);
        }
 
        gov->start(policy);
index 8a1e2c08b096190c310d5a10329794a2f09837af..26cb93191edeb1d59bfa777da5fa375a8f691955 100644 (file)
@@ -87,7 +87,7 @@ static inline u64 get_cpu_idle_time(unsigned int cpu)
                 kcpustat->cpustat[CPUTIME_IOWAIT];
 
        if (rackmeter_ignore_nice)
-               retval += kcpustat_field(kcpustat, CPUTIME_NICE, cpu);
+               retval += kcpustat_field(CPUTIME_NICE, cpu);
 
        return retval;
 }
index b97ce2df376f9d1a39bba642c594aa1b07850bdc..dd020ecaf67b24fefd6f6dcdeb38a99d5caebae5 100644 (file)
@@ -100,14 +100,12 @@ static inline unsigned long kstat_cpu_irqs_sum(unsigned int cpu)
 }
 
 #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
-extern u64 kcpustat_field(struct kernel_cpustat *kcpustat,
-                         enum cpu_usage_stat usage, int cpu);
+extern u64 kcpustat_field(enum cpu_usage_stat usage, int cpu);
 extern void kcpustat_cpu_fetch(struct kernel_cpustat *dst, int cpu);
 #else
-static inline u64 kcpustat_field(struct kernel_cpustat *kcpustat,
-                                enum cpu_usage_stat usage, int cpu)
+static inline u64 kcpustat_field(enum cpu_usage_stat usage, int cpu)
 {
-       return kcpustat->cpustat[usage];
+       return kcpustat_cpu(cpu).cpustat[usage];
 }
 
 static inline void kcpustat_cpu_fetch(struct kernel_cpustat *dst, int cpu)
index 55df6d37145e8717de08b1b1928777393eee7eea..3cbf79bee976a2d1953b64e9b193a6db79f7898f 100644 (file)
@@ -969,14 +969,11 @@ static int rcu_watching_snap_recheck(struct rcu_data *rdp)
                if (rcu_cpu_stall_cputime && rdp->snap_record.gp_seq != rdp->gp_seq) {
                        int cpu = rdp->cpu;
                        struct rcu_snap_record *rsrp;
-                       struct kernel_cpustat *kcsp;
-
-                       kcsp = &kcpustat_cpu(cpu);
 
                        rsrp = &rdp->snap_record;
-                       rsrp->cputime_irq     = kcpustat_field(kcsp, CPUTIME_IRQ, cpu);
-                       rsrp->cputime_softirq = kcpustat_field(kcsp, CPUTIME_SOFTIRQ, cpu);
-                       rsrp->cputime_system  = kcpustat_field(kcsp, CPUTIME_SYSTEM, cpu);
+                       rsrp->cputime_irq     = kcpustat_field(CPUTIME_IRQ, cpu);
+                       rsrp->cputime_softirq = kcpustat_field(CPUTIME_SOFTIRQ, cpu);
+                       rsrp->cputime_system  = kcpustat_field(CPUTIME_SYSTEM, cpu);
                        rsrp->nr_hardirqs = kstat_cpu_irqs_sum(cpu) + arch_irq_stat_cpu(cpu);
                        rsrp->nr_softirqs = kstat_cpu_softirqs_sum(cpu);
                        rsrp->nr_csw = nr_context_switches_cpu(cpu);
index b67532cb877050a882f2c1c6c198002d7a3c7916..cf7ae51cba4033c81adac71d40013f9874d7682f 100644 (file)
@@ -479,7 +479,6 @@ static void print_cpu_stat_info(int cpu)
 {
        struct rcu_snap_record rsr, *rsrp;
        struct rcu_data *rdp = per_cpu_ptr(&rcu_data, cpu);
-       struct kernel_cpustat *kcsp = &kcpustat_cpu(cpu);
 
        if (!rcu_cpu_stall_cputime)
                return;
@@ -488,9 +487,9 @@ static void print_cpu_stat_info(int cpu)
        if (rsrp->gp_seq != rdp->gp_seq)
                return;
 
-       rsr.cputime_irq     = kcpustat_field(kcsp, CPUTIME_IRQ, cpu);
-       rsr.cputime_softirq = kcpustat_field(kcsp, CPUTIME_SOFTIRQ, cpu);
-       rsr.cputime_system  = kcpustat_field(kcsp, CPUTIME_SYSTEM, cpu);
+       rsr.cputime_irq     = kcpustat_field(CPUTIME_IRQ, cpu);
+       rsr.cputime_softirq = kcpustat_field(CPUTIME_SOFTIRQ, cpu);
+       rsr.cputime_system  = kcpustat_field(CPUTIME_SYSTEM, cpu);
 
        pr_err("\t         hardirqs   softirqs   csw/system\n");
        pr_err("\t number: %8lld %10d %12lld\n",
index fbf31db0d2f3c31718b366de1e94ccc6afc42bf0..caaaf0a04ced99ed0f6453f3829f1ef4b2a13717 100644 (file)
@@ -975,10 +975,9 @@ static int kcpustat_field_vtime(u64 *cpustat,
        return 0;
 }
 
-u64 kcpustat_field(struct kernel_cpustat *kcpustat,
-                  enum cpu_usage_stat usage, int cpu)
+u64 kcpustat_field(enum cpu_usage_stat usage, int cpu)
 {
-       u64 *cpustat = kcpustat->cpustat;
+       u64 *cpustat = kcpustat_cpu(cpu).cpustat;
        u64 val = cpustat[usage];
        struct rq *rq;
        int err;