tsc marked unstable after entered PC10 on Intel CoffeeLake
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
HWE Next |
Fix Released
|
Undecided
|
Unassigned | ||
linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Medium
|
Unassigned | ||
Disco |
Fix Released
|
Medium
|
Unassigned | ||
Eoan |
Fix Released
|
Medium
|
Unassigned | ||
linux-oem (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
Disco |
Fix Released
|
Undecided
|
Unassigned | ||
Eoan |
Fix Released
|
Undecided
|
Unassigned | ||
linux-oem-osp1 (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
Disco |
Fix Released
|
Undecided
|
Unassigned | ||
Eoan |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
=== SRU Justification ===
[Impact]
TSC marked unstable by skewed HPET after Intel SoC reached PC10 state.
[Fix]
Disable HPET on affected SoC generations, currently happens to CFL and
ICL.
[Test]
I can confirm disabling HPET can avoid this issue.
[Regression Potential]
Low. TSC on recent Intel SoC is now an invariant clocksource, so it's
harmless to disable HPET on these platforms.
=== Original Bug Report ===
This is actually a duplicate to https:/
[Overview]
On Intel CoffeeLake it's observed tsc is always marked unstable after turning off screen and let cpu enter idle state Package C10(PC10), and then clock source is switched to hpet. Following messages are printed in dmesg when this occurs:
[ 115.454117] clocksource: timekeeping watchdog on CPU2: Marking clocksource 'tsc' as unstable because the skew is too large:
[ 115.454146] clocksource: 'hpet' wd_now: a44e6960 wd_last: a42fe23b mask: ffffffff
[ 115.454151] clocksource: 'tsc' cs_now: 69ee1f8d9f cs_last: 699580f6fd mask: ffffffffffffffff
[ 115.454160] tsc: Marking TSC unstable due to clocksource watchdog
[ 115.454675] TSC found unstable after boot, most likely due to broken BIOS. Use 'tsc=unstable'.
[ 115.454679] sched_clock: Marking unstable (115712298090, -257671127)
[ 115.455825] clocksource: Switched to clocksource hpet
[Step to reproduce]
1. use `powertop` to observe if CPU has ever enter PC10,
2. issue `xset dpms force off` to turn off screen and idle for some minutes,
3. check dmesg for above tsc marked unstable messages
[Actual Results]
TSC marked unstable and clock source switched to HPET.
[Expected Results]
TSC remains the clock source across the PC10 event.
[Build Date & Hardware]
This is reproducible on kernel version 4.14 through 5.1-rc2. Order kernel versions are not tested.
[Additional Information]
This was first found on Ubuntu (all versions) that system doesn't go suspend after stayed idle for 20 minutes. Clock source was switched to HPET, the system time is no correctly synced with reality so that the system doesn't consider it has stayed idle long enough to begin suspend process.
CVE References
tags: | added: oem-priority originate-from-1813901 somerville |
Changed in linux (Ubuntu): | |
status: | Incomplete → Triaged |
Changed in hwe-next: | |
status: | New → Triaged |
description: | updated |
Changed in linux-oem-osp1 (Ubuntu Disco): | |
status: | New → Won't Fix |
Changed in linux-oem-osp1 (Ubuntu Eoan): | |
status: | New → Won't Fix |
Changed in linux-oem (Ubuntu Eoan): | |
status: | New → Won't Fix |
Changed in linux-oem (Ubuntu Disco): | |
status: | New → Won't Fix |
Changed in linux-oem (Ubuntu Bionic): | |
status: | New → Fix Committed |
Changed in linux (Ubuntu Bionic): | |
status: | New → Fix Committed |
Changed in linux (Ubuntu Disco): | |
status: | New → Fix Committed |
Changed in linux (Ubuntu Eoan): | |
status: | New → Fix Committed |
Changed in linux (Ubuntu Bionic): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Disco): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Eoan): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu): | |
status: | Triaged → Invalid |
Changed in linux-oem (Ubuntu): | |
status: | New → Invalid |
Changed in linux-oem-osp1 (Ubuntu): | |
status: | New → Invalid |
Changed in hwe-next: | |
status: | Triaged → Fix Released |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1840239
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.