| Message ID | 20260116145208.87445-8-frederic@kernel.org (mailing list archive) |
|---|---|
| State | Handled Elsewhere |
| Headers | show |
| Series | tick/sched: Refactor idle cputime accounting | expand |
On 16-01-26, 15:52, Frederic Weisbecker wrote: > cpufreq calls get_cpu_idle_time_us() just to know if idle cputime > accounting has a nanoseconds granularity. > > Use the appropriate indicator instead to make that deduction. > > Signed-off-by: Frederic Weisbecker <frederic@kernel.org> > --- > drivers/cpufreq/cpufreq_ondemand.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c > index a6ecc203f7b7..2d52ee035702 100644 > --- a/drivers/cpufreq/cpufreq_ondemand.c > +++ b/drivers/cpufreq/cpufreq_ondemand.c > @@ -334,17 +334,12 @@ static void od_free(struct policy_dbs_info *policy_dbs) > static int od_init(struct dbs_data *dbs_data) > { > struct od_dbs_tuners *tuners; > - u64 idle_time; > - int cpu; > > tuners = kzalloc(sizeof(*tuners), GFP_KERNEL); > if (!tuners) > return -ENOMEM; > > - cpu = get_cpu(); > - idle_time = get_cpu_idle_time_us(cpu, NULL); > - put_cpu(); > - if (idle_time != -1ULL) { > + if (tick_nohz_enabled) { > /* Idle micro accounting is supported. Use finer thresholds */ > dbs_data->up_threshold = MICRO_FREQUENCY_UP_THRESHOLD; > } else { Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
On Fri, Jan 16, 2026 at 3:53 PM Frederic Weisbecker <frederic@kernel.org> wrote: > > cpufreq calls get_cpu_idle_time_us() just to know if idle cputime > accounting has a nanoseconds granularity. > > Use the appropriate indicator instead to make that deduction. > > Signed-off-by: Frederic Weisbecker <frederic@kernel.org> Acked-by: Rafael J. Wysocki (Intel) <rafael@kernel.org> or please let me know if you want me to take this patch. > --- > drivers/cpufreq/cpufreq_ondemand.c | 7 +------ > 1 file changed, 1 insertion(+), 6 deletions(-) > > diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c > index a6ecc203f7b7..2d52ee035702 100644 > --- a/drivers/cpufreq/cpufreq_ondemand.c > +++ b/drivers/cpufreq/cpufreq_ondemand.c > @@ -334,17 +334,12 @@ static void od_free(struct policy_dbs_info *policy_dbs) > static int od_init(struct dbs_data *dbs_data) > { > struct od_dbs_tuners *tuners; > - u64 idle_time; > - int cpu; > > tuners = kzalloc(sizeof(*tuners), GFP_KERNEL); > if (!tuners) > return -ENOMEM; > > - cpu = get_cpu(); > - idle_time = get_cpu_idle_time_us(cpu, NULL); > - put_cpu(); > - if (idle_time != -1ULL) { > + if (tick_nohz_enabled) { > /* Idle micro accounting is supported. Use finer thresholds */ > dbs_data->up_threshold = MICRO_FREQUENCY_UP_THRESHOLD; > } else { > -- > 2.51.1 > >
Le Mon, Jan 19, 2026 at 01:30:07PM +0100, Rafael J. Wysocki a écrit : > On Fri, Jan 16, 2026 at 3:53 PM Frederic Weisbecker <frederic@kernel.org> wrote: > > > > cpufreq calls get_cpu_idle_time_us() just to know if idle cputime > > accounting has a nanoseconds granularity. > > > > Use the appropriate indicator instead to make that deduction. > > > > Signed-off-by: Frederic Weisbecker <frederic@kernel.org> > > Acked-by: Rafael J. Wysocki (Intel) <rafael@kernel.org> > > or please let me know if you want me to take this patch. The patch is standalone but the rest of the patchset depends on it. Now I don't target this patchset for v6.20-rc1. So if you manage to sneak this patch in for v6.20-rc1, it works because I'll rebase on -rc1. Otherwise I'll need to keep it to avoid breaking some code assumptions. What do you think? Thanks.
On Mon, Jan 19, 2026 at 11:07 PM Frederic Weisbecker <frederic@kernel.org> wrote: > > Le Mon, Jan 19, 2026 at 01:30:07PM +0100, Rafael J. Wysocki a écrit : > > On Fri, Jan 16, 2026 at 3:53 PM Frederic Weisbecker <frederic@kernel.org> wrote: > > > > > > cpufreq calls get_cpu_idle_time_us() just to know if idle cputime > > > accounting has a nanoseconds granularity. > > > > > > Use the appropriate indicator instead to make that deduction. > > > > > > Signed-off-by: Frederic Weisbecker <frederic@kernel.org> > > > > Acked-by: Rafael J. Wysocki (Intel) <rafael@kernel.org> > > > > or please let me know if you want me to take this patch. > > The patch is standalone but the rest of the patchset depends on it. > Now I don't target this patchset for v6.20-rc1. > > So if you manage to sneak this patch in for v6.20-rc1, it works because > I'll rebase on -rc1. Otherwise I'll need to keep it to avoid breaking > some code assumptions. > > What do you think? It can go into -rc1.
Le Tue, Jan 20, 2026 at 01:32:50PM +0100, Rafael J. Wysocki a écrit : > On Mon, Jan 19, 2026 at 11:07 PM Frederic Weisbecker > <frederic@kernel.org> wrote: > > > > Le Mon, Jan 19, 2026 at 01:30:07PM +0100, Rafael J. Wysocki a écrit : > > > On Fri, Jan 16, 2026 at 3:53 PM Frederic Weisbecker <frederic@kernel.org> wrote: > > > > > > > > cpufreq calls get_cpu_idle_time_us() just to know if idle cputime > > > > accounting has a nanoseconds granularity. > > > > > > > > Use the appropriate indicator instead to make that deduction. > > > > > > > > Signed-off-by: Frederic Weisbecker <frederic@kernel.org> > > > > > > Acked-by: Rafael J. Wysocki (Intel) <rafael@kernel.org> > > > > > > or please let me know if you want me to take this patch. > > > > The patch is standalone but the rest of the patchset depends on it. > > Now I don't target this patchset for v6.20-rc1. > > > > So if you manage to sneak this patch in for v6.20-rc1, it works because > > I'll rebase on -rc1. Otherwise I'll need to keep it to avoid breaking > > some code assumptions. > > > > What do you think? > > It can go into -rc1. Very nice, thanks for taking it!
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c index a6ecc203f7b7..2d52ee035702 100644 --- a/drivers/cpufreq/cpufreq_ondemand.c +++ b/drivers/cpufreq/cpufreq_ondemand.c @@ -334,17 +334,12 @@ static void od_free(struct policy_dbs_info *policy_dbs) static int od_init(struct dbs_data *dbs_data) { struct od_dbs_tuners *tuners; - u64 idle_time; - int cpu; tuners = kzalloc(sizeof(*tuners), GFP_KERNEL); if (!tuners) return -ENOMEM; - cpu = get_cpu(); - idle_time = get_cpu_idle_time_us(cpu, NULL); - put_cpu(); - if (idle_time != -1ULL) { + if (tick_nohz_enabled) { /* Idle micro accounting is supported. Use finer thresholds */ dbs_data->up_threshold = MICRO_FREQUENCY_UP_THRESHOLD; } else {
cpufreq calls get_cpu_idle_time_us() just to know if idle cputime accounting has a nanoseconds granularity. Use the appropriate indicator instead to make that deduction. Signed-off-by: Frederic Weisbecker <frederic@kernel.org> --- drivers/cpufreq/cpufreq_ondemand.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-)