On Thu, Apr 01, 2021 at 02:15:48PM -0500, Scott Cheloha wrote:
> On Sat, Mar 27, 2021 at 02:20:21AM +0000, Stefmorino wrote:
> > > Feel free to share your raw data.
> > 
> > Also includes some standard sendbug dumps: https://0x0.st/-qng.tgz
> 
> Thanks!
> 
> TL;DR:
> 
> Two things:
> 
> 1. Could you check whether Linux will use the TSC as a clocksource on
>    this machine?  The dmesg output on any given distribution should
>    contain lines about the TSC.
> 
>    Feel free to use my easy five-step method.  You don't even need to
>    install Linux, we just need to boot installation media and look at
>    the dmesg:
> 
>    A. Grab the latest Alpine Linux ISO:
> 
>       $ ftp 
> https://dl-cdn.alpinelinux.org/alpine/v3.13/releases/x86_64/alpine-standard-3.13.4-x86_64.iso
> 
>    B. Write the ISO to a USB key to create your bootable installation media.
> 
>       Achtung!  Danger!  Don't wipe out the wrong disk!  Change /dev/sdNc
>       to match the special device for your USB stick!
> 
>       # dd if=alpine-standard-3.13.4-x86_64.iso of=/dev/sdNc bs=1m
> 
>    C. Reboot.
> 
>         # shutdown -r now
> 
>    D. Boot from the USB stick.  How you do this varies by device.  Log in as
>       root.  The Alpine installation ramdisk has no root password.
> 
>    E. Examine the Linux dmesg for lines about the TSC, clocksources:
> 
>       # dmesg | egrep -i 'tsc|clocksource'
> 
> 2. Second, is there a more recent BIOS revision for this machine?
>    Perhaps (assuming this is in fact a BIOS problem) Lenovo is aware
>    of it and has fixed it.  This is unlikely but worth a look.
> 
> Long version:
> 
> I think two points form a pattern.  Bear with me.
> 
> Both you and Josh Rickmar (CC'd) have Lenovo laptops with the same CPU
> (AMD Ryzen 5 2500U) and the same BIOS (LENOVO version "R0UET78W (1.58
> )" date 11/17/2020).
> 
> Looking at the data here, both machines exhibit the same problem with
> the TSC: the APs are all nearly synchronized outside of small
> measurement errors while the BSP is way off.
> 
> This makes me wonder whether this is a firmware/BIOS bug.  Perhaps the
> BIOS is fussing with the TSC on CPU0 before we boot.  Is there a new
> BIOS revision available from Lenovo?
> 
> I'd also be interested to know if a recent Linux kernel would even use
> the TSC on this laptop as a clocksource or if the kernel complains and
> falls back to using the HPET.
> 
> There is a little chit-chat here and there about adding support to
> OpenBSD for fixing the TSC skew during synchronization at boot/resume.
> One way to do this is with the TSC_ADJUST MSR...
> 
> ... but that won't work here in your case.  The CPU on this particular
> laptop does not have TSC_ADJUST support, so if we wanted to correct
> the TSC skew we'd have to use WRMSR to modify the TSC directly.
> 
> I'm uncertain about whether using WRMSR to reset the TSC on a given
> logical processor is universally supported on all amd64 machines or
> if it's a special feature a la the TSC_ADJUST MSR.
> 
> -Scott

Hey, thanks for the reminder to try this out with Linux.  Will give it
a shot shortly.

As for the BIOS, 1.58 is the current version (found here):

https://support.lenovo.com/us/en/downloads/ds503790

This same issue was happening with all older BIOS versions that I have
used as well.

Reply via email to