|
@@ -267,27 +267,19 @@ static void update_sampling_rate(struct dbs_data *dbs_data,
|
|
|
dbs_info = &per_cpu(od_cpu_dbs_info, cpu);
|
|
|
cpufreq_cpu_put(policy);
|
|
|
|
|
|
- mutex_lock(&dbs_info->cdbs.shared->timer_mutex);
|
|
|
-
|
|
|
- if (!delayed_work_pending(&dbs_info->cdbs.dwork)) {
|
|
|
- mutex_unlock(&dbs_info->cdbs.shared->timer_mutex);
|
|
|
+ if (!delayed_work_pending(&dbs_info->cdbs.dwork))
|
|
|
continue;
|
|
|
- }
|
|
|
|
|
|
next_sampling = jiffies + usecs_to_jiffies(new_rate);
|
|
|
appointed_at = dbs_info->cdbs.dwork.timer.expires;
|
|
|
|
|
|
if (time_before(next_sampling, appointed_at)) {
|
|
|
-
|
|
|
- mutex_unlock(&dbs_info->cdbs.shared->timer_mutex);
|
|
|
cancel_delayed_work_sync(&dbs_info->cdbs.dwork);
|
|
|
- mutex_lock(&dbs_info->cdbs.shared->timer_mutex);
|
|
|
|
|
|
gov_queue_work(dbs_data, policy,
|
|
|
usecs_to_jiffies(new_rate), true);
|
|
|
|
|
|
}
|
|
|
- mutex_unlock(&dbs_info->cdbs.shared->timer_mutex);
|
|
|
}
|
|
|
}
|
|
|
|