From: Feng Tang <feng.tang@intel.com>
To: Dave Hansen <dave.hansen@intel.com>,
Zhang Rui <rui.zhang@intel.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
"H . Peter Anvin" <hpa@zytor.com>,
"Peter Zijlstra" <peterz@infradead.org>, <x86@kernel.org>
Cc: <linux-kernel@vger.kernel.org>, <tim.c.chen@intel.com>,
Xiongfeng Wang <wangxiongfeng2@huawei.com>, <liaoyu15@huawei.com>,
<oliver.sang@intel.com>, <ying.huang@intel.com>
Subject: Re: [PATCH v1 1/2] x86/tsc: use logical_package as a better estimation of socket numbers
Date: Tue, 25 Oct 2022 15:57:12 +0800 [thread overview]
Message-ID: <Y1eW2L5y7jx69v0g@feng-clx> (raw)
In-Reply-To: <397f513f-9273-76d1-a0ba-9d1d403020c5@intel.com>
On Mon, Oct 24, 2022 at 08:43:33AM -0700, Dave Hansen wrote:
> On 10/24/22 00:37, Feng Tang wrote:
> >> For instance, I can live with the implementation being a bit goofy when
> >> kernel commandlines are in play. We can pr_info() about those cases.
> > Something like adding
> >
> > pr_info("Watchdog for TSC is disabled for this platform while estimating
> > the socket number is %d, if the real socket number is bigger than
> > 4 (may due to some tricks like 'maxcpus=' cmdline parameter, please
> > add 'tsc=watchdog' to cmdline as well\n", logical_packages);
>
> That's too wishy-washy. Also, I *KNOW* Intel has built systems with
> wonky, opaque numbers of "sockets". Cascade Lake was a single physical
> "socket", but in all other respects (including enumeration to software)
> it acted like two logical sockets.
>
> So, what was the "real" socket number for Cascade Lake? If you looked
> in a chassis, you'd see one socket. But, there were two dies in that
> socket talking to each other over UPI, so it had a system topology which
> was indistinguishable from a 2-socket system.
Good to know and thanks for the info.
I have to admit I haven't checked a server's internals before, and
thanks to Oliver for helping checking some Cascade Lake boxes of 0Day.
In one box where 'lscpu' shows 4 sockets (96 cores in total), it does
only have 2 physical processors in the chassis, just like you
mentioned, it has 2 dies for each processor. And in another box,
'lscpu' shows 2 sockets (44 cores in total), it also has 2 physical
processors but with much smaller size.
And fortunately the 'logical_packages' for these 2 boxes are both
the correct value: 2.
> Let's just state the facts:
>
> pr_info("Disabling TSC watchdog on %d-package system.", ...)
>
> Then, we can have a flag elsewhere to say how reliable that number is.
> A taint flag or CPU bug is probably going to far, but something like this:
>
> bool logical_package_count_unreliable = false;
>
> void mark_bad_package_count(char *reason)
> {
> if (logical_package_count_unreliable)
> return true;
>
> pr_warn("processor package count is unreliable");
> }
>
> Might be OK. Then you can call mark_bad_package_count() from multiple
> sites, like the maxcpus= code.
This should work! we can just add one more check:
boot_cpu_has(X86_FEATURE_TSC_ADJUST) &&
!logical_package_count_unreliable &&
logical_packages <= 2
And when some new case leading to a imprecise 'logical_packages' is
found in future, we could just apply to this to it.
> But, like I said in the other thread, let's make sure we're agreed on
> the precise problem that we're solving before we go down this road.
Sure.
Thanks,
Feng
> > and adding a new 'tsc=watchdog' option to force watchdog on (might be
> > over-complexed?)
>
> Agreed, I don't think that's quite warranted yet.
next prev parent reply other threads:[~2022-10-25 7:57 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-21 6:21 Feng Tang
2022-10-21 6:21 ` [PATCH v1 2/2] x86/tsc: Extend watchdog check exemption to 4-Sockets platform Feng Tang
2023-06-02 18:00 ` Paul E. McKenney
2023-06-05 6:28 ` Feng Tang
2022-10-21 15:00 ` [PATCH v1 1/2] x86/tsc: use logical_package as a better estimation of socket numbers Zhang Rui
2022-10-21 16:21 ` Dave Hansen
2022-10-22 16:12 ` Zhang Rui
2022-10-24 15:42 ` Dave Hansen
2022-10-25 7:35 ` Feng Tang
2022-10-24 7:37 ` Feng Tang
2022-10-24 15:43 ` Dave Hansen
2022-10-25 7:57 ` Feng Tang [this message]
2022-11-04 7:21 ` Feng Tang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y1eW2L5y7jx69v0g@feng-clx \
--to=feng.tang@intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@intel.com \
--cc=hpa@zytor.com \
--cc=liaoyu15@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=oliver.sang@intel.com \
--cc=peterz@infradead.org \
--cc=rui.zhang@intel.com \
--cc=tglx@linutronix.de \
--cc=tim.c.chen@intel.com \
--cc=wangxiongfeng2@huawei.com \
--cc=x86@kernel.org \
--cc=ying.huang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome