On 01/11/2018 18:30, Michael Kelley wrote:> pit_shutdown() doesn't work on Hyper-V because of a quirk in the > PIT emulation. This problem exists in all versions of Hyper-V and > had not been noticed previously. When the counter register is set > to zero, the emulated PIT continues to interrupt @18.2 HZ. > > So add a test for running on Hyper-V, and use that test to skip > setting the counter register when running on Hyper-V. > > This patch replaces a previously proposed patch with a different > approach. This new approach follows comments from Thomas Gleixner.Did you consider using a static_key instead? You could set it in ms_hyperv_init_platform(). This would enable you to support future Hyper-V versions which don't require avoiding to set the count to zero. Juergen
Thomas Gleixner
2018-Nov-03 17:22 UTC
[PATCH 0/2] i8253: Fix PIT shutdown quirk on Hyper-V
On Fri, 2 Nov 2018, Juergen Gross wrote:> On 01/11/2018 18:30, Michael Kelley wrote: > > pit_shutdown() doesn't work on Hyper-V because of a quirk in the > > PIT emulation. This problem exists in all versions of Hyper-V and > > had not been noticed previously. When the counter register is set > > to zero, the emulated PIT continues to interrupt @18.2 HZ. > > > > So add a test for running on Hyper-V, and use that test to skip > > setting the counter register when running on Hyper-V. > > > > This patch replaces a previously proposed patch with a different > > approach. This new approach follows comments from Thomas Gleixner. > > Did you consider using a static_key instead? You could set it in > ms_hyperv_init_platform(). This would enable you to support future > Hyper-V versions which don't require avoiding to set the count to zero.Duh. Now that you say it it's more than obvious. Instead of checking for running on hyperv have a quirk check in that function and set it from hyperv. Not necessarily a static key required as this is not a fast path, so a simple ro_after_init marked variable is good enough Michael, sorry for guiding you down the wrong road. Juergens idea is much better. If you redo that, could you please make sure, that your mail series is properly threaded? i.e. the 1..n/n mails contain a Reference: <message_id_of_0/n> Thanks, tglx
Apparently Analagous Threads
- Patch "x86/hyper-v: Enable PIT shutdown quirk" has been added to the 4.19-stable tree
- [tip:x86/urgent] x86/hyper-v: Enable PIT shutdown quirk
- [PATCH 4.4 136/160] clockevents/drivers/i8253: Add support for PIT shutdown quirk
- [PATCH 4.19 129/205] clockevents/drivers/i8253: Add support for PIT shutdown quirk
- [PATCH 4.18 104/171] clockevents/drivers/i8253: Add support for PIT shutdown quirk