Messages in this thread | | | Subject | Re: [PATCH] clocksource: save mult_orig in clocksource_disable() | From | john stultz <> | Date | Fri, 31 Jul 2009 10:28:58 -0700 |
| |
On Fri, 2009-07-31 at 14:18 +0200, Ingo Molnar wrote: > * Magnus Damm <magnus.damm@gmail.com> wrote: > > > On Fri, Jun 19, 2009 at 4:17 AM, john stultz<johnstul@us.ibm.com> wrote: > > > On Fri, 2009-06-19 at 00:24 +0900, Magnus Damm wrote: > > >> From: Magnus Damm <damm@igel.co.jp> > > >> > > >> Save clocksource mult_orig in clocksource_disable(). > > >> > > >> To fix the common case where ->enable() does not setup > > >> mult, make sure mult_orig is saved in mult on disable. > > >> > > >> Also add comments to explain why we do this. > > >> > > >> Signed-off-by: Magnus Damm <damm@igel.co.jp> > > > > > > Acked-by: John Stultz <johnstul@us.ibm.com> > > > > > > Thomas, Andrew, please push this for 2.6.31. > > > > This one is slowly making it's way in I suppose? > > Btw., what specific issue does this fix? The commit description is > generic, there's no bugzilla link and no other information either > that could give me an idea about precisely what incarnation of the > bug you have hit.
Magnus' earlier change to mult_orig makes it so mult_orig is written on enable, instead of when we register the clocksource. This causes problems as enable() might be called multiple times while a system is running, where as the register would only happen once.
If a user switches away from a clocksource and back to a clocksource, the mult_orig will no longer be the original mult, as we will over write it with an NTP adjusted mult.
Its a minor detail, but it causes problems when I do NTP testing across different clocksources, as the ppm drift factor does not stay constant per clocksource.
This fix makes sure we store mult_orig over mult on disable() so we restore the correct value on the next enable().
thanks -john
| |