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>
Subject: Re: [PATCH v1 1/2] x86/tsc: use logical_package as a better estimation of socket numbers
Date: Mon, 24 Oct 2022 15:37:18 +0800 [thread overview]
Message-ID: <Y1ZArguS/rVEjXOb@feng-clx> (raw)
In-Reply-To: <63dca468-c94d-844a-5b19-09c03cf84911@intel.com>
On Fri, Oct 21, 2022 at 09:21:02AM -0700, Dave Hansen wrote:
> On 10/21/22 08:00, Zhang Rui wrote:
> > I checked the history of '__max_logical_packages', and realized that
> >
> > 1. for topology_max_packages()/'__max_logical_packages', the divisor
> > 'ncpus' uses cpu_data(0).booted_cores, which is based on the
> > *online* CPUs. So when using kernel cmdlines like maxcpus=/nr_cpus=,
> > '__max_logical_packages' can get over-estimated.
> >
> > 2. for 'logical_packages', it equals the number of different physical
> > Package IDs for all *online* CPUs. So with kernel cmdlines like
> > nr_cpus=/maxcpus=, it can gets under-estimated.
Thanks for raising this new case! For 'maxcpus=' cmdline parameter, I
run this on 4-Sockets and 2-Sockets platform, and found the
'logical_packages' is still correct if the 'maxcpus >= (total_cpus/2 + 1)',
but gets wrong for smaller numbers.
SRAT parsing solution [1]. can solve 'maxcpus' case, but it will fail
for other user cases like sub-numa cluster or 'numa=off' case
IIUC, 'maxcpus' are likely for debug purpose, I think 'logical_packages'
is the better option for socket number estimation in the several
existing solutions.
> 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);
and adding a new 'tsc=watchdog' option to force watchdog on (might be
over-complexed?)
[1]. https://lore.kernel.org/lkml/Y0UgeUIJSFNR4mQB@feng-clx/
Thanks,
Feng
next prev parent reply other threads:[~2022-10-24 7:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-21 6:21 [PATCH v1 1/2] x86/tsc: use logical_package as a better estimation of socket numbers 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 [this message]
2022-10-24 15:43 ` Dave Hansen
2022-10-25 7:57 ` Feng Tang
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=Y1ZArguS/rVEjXOb@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=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 \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.