Messages in this thread | | | Date | Fri, 22 Mar 2019 11:57:44 +0530 | From | Viresh Kumar <> | Subject | Re: [PATCH V3] cpufreq: Call transition notifier only once for each policy |
| |
On 21-03-19, 16:49, Thomas Gleixner wrote: > On Wed, 20 Mar 2019, Viresh Kumar wrote: > > > > diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c > > index 3fae23834069..b2fe665878f7 100644 > > --- a/arch/x86/kernel/tsc.c > > +++ b/arch/x86/kernel/tsc.c > > @@ -958,10 +958,15 @@ static int time_cpufreq_notifier(struct notifier_block *nb, unsigned long val, > > struct cpufreq_freqs *freq = data; > > unsigned long *lpj; > > > > + if (WARN_ON_ONCE(cpumask_weight(freq->policy->related_cpus) != 1)) { > > + mark_tsc_unstable("cpufreq changes: related CPUs affected"); > > + return 0; > > + } > > You might add a check which ensures that policy->cpu == smp_processor_id() > because if this is not the case ....
How about something like this ?
if (WARN_ON_ONCE(cpumask_weight(freq->policy->related_cpus) != 1 || freq->policy->cpu != smp_processor_id())) { mark_tsc_unstable("cpufreq changes: related CPUs affected"); return 0; }
Thanks for your feedback.
-- viresh
| |