Bug 200748 - Issues after resume when TSC timecounter selected, possibly due to CPU TSC resetting to zero
Summary: Issues after resume when TSC timecounter selected, possibly due to CPU TSC re...
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-06-10 01:09 UTC by Gavin Atkinson
Modified: 2015-06-10 01:09 UTC (History)
0 users

See Also:


Attachments
Verbose dmesg (45.19 KB, text/plain)
2015-06-10 01:09 UTC, Gavin Atkinson
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gavin Atkinson freebsd_committer freebsd_triage 2015-06-10 01:09:43 UTC
Created attachment 157592 [details]
Verbose dmesg

I have a Lenovo Flex 10 laptop.  With kern.timecounter.hardware=TSC (the default), on resume there are serious issues: primarily that time appears to run very fast, the AHCI controller/drive fail to reinit correctly, etc.  Unfortunately the video doesn't recover either (unrelated to this issue), so it's a bit hard to establish exactly what state the machine is in at this time.

After some digging, it looks like the CPU TSC counter is reset to zero on resume:

root@flex10:~ # cpucontrol -m 0x10 /dev/cpuctl0 ; cpucontrol -m 0x10 /dev/cpuctl1
MSR 0x10: 0x0000019a 0x3d2660a7
MSR 0x10: 0x0000019a 0x5f4b9d7a
root@flex10:~ # zzz
[wake machine up]
root@flex10:~ # cpucontrol -m 0x10 /dev/cpuctl0 ; cpucontrol -m 0x10 /dev/cpuctl1
MSR 0x10: 0x00000004 0x27c4514f
MSR 0x10: 0x00000004 0x49dcc993

I suspect (though haven't been able to prove) that this is the cause.

The CPU is an Intel N2807 ultra low power CPU.  It does have invariant P state TSC.