On 17-06-2014 13:42, Viresh Kumar wrote: >> So what you can try is force a cyc2ns read before the write in >> set_cyc2ns_scale(). I think its possible that if we do not do the read, >> the write will wait for a 'free' slot indefinitely. > > Hmm, I see. Thanks for your quick response. > > Are you suggesting something like this ? : > > diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c > index 57e5ce1..290ac03 100644 > --- a/arch/x86/kernel/tsc.c > +++ b/arch/x86/kernel/tsc.c > @@ -249,6 +249,9 @@ static void set_cyc2ns_scale(unsigned long cpu_khz, int > cpu) > if (!cpu_khz) > goto done; > > + data = cyc2ns_read_begin(); > + cyc2ns_read_end(data); > + > data = cyc2ns_write_begin(cpu); > > rdtscll(tsc_now); > > > @Mauro: Please try this once Peter confirms.
I have tried this and it doesn't solve the problem, the machine still hangs after the second frequency change after cpu offline/online. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/