lkml.org 
[lkml]   [2023]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [Patch v2 2/2] x86/tsc: use logical_packages as a better estimation of socket numbers
    On Fri, Jun 16, 2023 at 10:02:31AM +0200, Peter Zijlstra wrote:
    > On Fri, Jun 16, 2023 at 06:53:21AM +0000, Zhang, Rui wrote:
    > > On Thu, 2023-06-15 at 11:20 +0200, Peter Zijlstra wrote:
    >
    > > > So I have at least two machines where I boot with 'possible_cpus=#'
    > > > because the BIOS MADT is reporting a stupid number of CPUs that
    > > > aren't
    > > > actually there.
    > >
    > > Does the MADT report those CPUs as disabled but online capable?
    > > can you send me a copy of the acpidmp?
    >
    > Sent privately, it's a bit big.
    >
    > > I had a patch to parse MADT and count the number of physical packages
    > > by decoding all the valid APICIDs in MADT.
    > > I'm wondering if the patch still works on this machine.
    >
    > I can certainly give it a spin; it has IPMI serial-over-ethernet that
    > works. Brilliant dev machine.
    >
    > > > So I think I'm lucky and side-stepped this nonsense, but if someone
    > > > were
    > > > to use nr_cpus= for this same purpose, they get screwed over and get
    > > > the
    > > > watchdog. Sad day for them I suppose.
    > >
    > > what if using package_count_from_MADT?
    >
    > So I'm thinking that if you cap possible_mask the actual logical
    > packages is the right number.
    >
    > Suppose you have a machine with 8 sockets, but limit possible_mask to
    > only 1 socket. Then TSC will actually be stable, it doesn't matter you
    > have 7 idle sockets that are not synchronized.
    >
    > Then again, perhaps if you limit it to 2 sockets you're still in
    > trouble, I'm not entirely sure how the TSC sync stuff comes apart on
    > these large systems.

    I had the similar thought. For this case, the defensive way is to keep
    the watchdog for 'nr_cpus=' and 'possible_cpus=' setup, and if the
    specific setup has no TSC sync issue, people can add one more parameter
    'tsc=reliable' to skip the watchdog, while aggressive way is to ignore
    the 2 cmdline parameters as the above case is really rare.

    Again, as you mentioned, I can't find a perfect solution to cover all
    kinds of setup and broken firmware. But at least 'logical_packages' is
    much better than 'nr_online_nodes' :)

    Thanks,
    Feng

    \
     
     \ /
      Last update: 2023-06-19 12:51    [W:4.306 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site