File tree Expand file tree Collapse file tree 2 files changed +13
-10
lines changed Expand file tree Collapse file tree 2 files changed +13
-10
lines changed Original file line number Diff line number Diff line change @@ -113,18 +113,21 @@ EXPORT_SYMBOL_GPL(get_governor_parent_kobj);
113
113
114
114
static inline u64 get_cpu_idle_time_jiffy (unsigned int cpu , u64 * wall )
115
115
{
116
- u64 idle_time ;
116
+ struct kernel_cpustat kcpustat ;
117
117
u64 cur_wall_time ;
118
+ u64 idle_time ;
118
119
u64 busy_time ;
119
120
120
121
cur_wall_time = jiffies64_to_nsecs (get_jiffies_64 ());
121
122
122
- busy_time = kcpustat_cpu (cpu ).cpustat [CPUTIME_USER ];
123
- busy_time += kcpustat_field (& kcpustat_cpu (cpu ), CPUTIME_SYSTEM , cpu );
124
- busy_time += kcpustat_cpu (cpu ).cpustat [CPUTIME_IRQ ];
125
- busy_time += kcpustat_cpu (cpu ).cpustat [CPUTIME_SOFTIRQ ];
126
- busy_time += kcpustat_cpu (cpu ).cpustat [CPUTIME_STEAL ];
127
- busy_time += kcpustat_cpu (cpu ).cpustat [CPUTIME_NICE ];
123
+ kcpustat_cpu_fetch (& kcpustat , cpu );
124
+
125
+ busy_time = kcpustat .cpustat [CPUTIME_USER ];
126
+ busy_time += kcpustat .cpustat [CPUTIME_SYSTEM ];
127
+ busy_time += kcpustat .cpustat [CPUTIME_IRQ ];
128
+ busy_time += kcpustat .cpustat [CPUTIME_SOFTIRQ ];
129
+ busy_time += kcpustat .cpustat [CPUTIME_STEAL ];
130
+ busy_time += kcpustat .cpustat [CPUTIME_NICE ];
128
131
129
132
idle_time = cur_wall_time - busy_time ;
130
133
if (wall )
Original file line number Diff line number Diff line change @@ -105,7 +105,7 @@ void gov_update_cpu_data(struct dbs_data *dbs_data)
105
105
j_cdbs -> prev_cpu_idle = get_cpu_idle_time (j , & j_cdbs -> prev_update_time ,
106
106
dbs_data -> io_is_busy );
107
107
if (dbs_data -> ignore_nice_load )
108
- j_cdbs -> prev_cpu_nice = kcpustat_cpu (j ). cpustat [ CPUTIME_NICE ] ;
108
+ j_cdbs -> prev_cpu_nice = kcpustat_field ( & kcpustat_cpu (j ), CPUTIME_NICE , j ) ;
109
109
}
110
110
}
111
111
}
@@ -149,7 +149,7 @@ unsigned int dbs_update(struct cpufreq_policy *policy)
149
149
j_cdbs -> prev_cpu_idle = cur_idle_time ;
150
150
151
151
if (ignore_nice ) {
152
- u64 cur_nice = kcpustat_cpu (j ). cpustat [ CPUTIME_NICE ] ;
152
+ u64 cur_nice = kcpustat_field ( & kcpustat_cpu (j ), CPUTIME_NICE , j ) ;
153
153
154
154
idle_time += div_u64 (cur_nice - j_cdbs -> prev_cpu_nice , NSEC_PER_USEC );
155
155
j_cdbs -> prev_cpu_nice = cur_nice ;
@@ -530,7 +530,7 @@ int cpufreq_dbs_governor_start(struct cpufreq_policy *policy)
530
530
j_cdbs -> prev_load = 0 ;
531
531
532
532
if (ignore_nice )
533
- j_cdbs -> prev_cpu_nice = kcpustat_cpu (j ). cpustat [ CPUTIME_NICE ] ;
533
+ j_cdbs -> prev_cpu_nice = kcpustat_field ( & kcpustat_cpu (j ), CPUTIME_NICE , j ) ;
534
534
}
535
535
536
536
gov -> start (policy );
You can’t perform that action at this time.
0 commit comments