From: Thomas Gleixner <tglx@linutronix.de>
To: "Zhang, Rui" <rui.zhang@intel.com>,
"peterz@infradead.org" <peterz@infradead.org>
Cc: "Brown, Len" <len.brown@intel.com>,
"zhang.jia@linux.alibaba.com" <zhang.jia@linux.alibaba.com>,
"bp@alien8.de" <bp@alien8.de>,
"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
"hpa@zytor.com" <hpa@zytor.com>,
"mingo@redhat.com" <mingo@redhat.com>,
"x86@kernel.org" <x86@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [RFC PATCH V2 0/1] x86: cpu topology fix and question on x86_max_cores
Date: Mon, 20 Feb 2023 23:49:45 +0100 [thread overview]
Message-ID: <87edqkosty.ffs@tglx> (raw)
In-Reply-To: <fe5059317c4f3cabeb86c388d547504b9b6ea581.camel@intel.com>
On Mon, Feb 20 2023 at 14:33, Rui Zhang wrote:
> On Mon, 2023-02-20 at 12:08 +0100, Peter Zijlstra wrote:
>> Also, perhaps you want to look at calculate_max_logical_packages().
>> That has a comment about there not being heterogeneous systems :/
>
> yeah, I noticed this previously.
>
> ncpus = cpu_data(0).booted_cores * topology_max_smt_threads();
> __max_logical_packages = DIV_ROUND_UP(total_cpus, ncpus);
>
> The DIV_ROUND_UP() makes it to work on systems with current asymmetric
> core systems. But
> 1. if a core can support more than 2 HT siblings, this can break if
> there are multi symmetric packages.
> 2. if the system has asymmetric packages, this can break.
> So far we don't have such platforms.
> 3. it can also be broken when using boot option 'maxcpus' as booted_cor
> es changes.
>
> But ironically, we don't have a better way to get __max_logical_packages.
Sadly enough this was communicated to Intel hard/firmware people many
years ago.
>> Anyway, the reason I went and had a look there, is because I remember
>> Thomas and me spend entirely too much time to try and figure out
>> means
>> to size an array for number of pacakges at boot time and getting it
>> wrong too many times to recount.
>>
>> If only there was a sane way to tell these things without actually
>> bringing everything online first :-(
>
> I thought of improving this by parsing all the valid APIC-IDs in MADT
> during BSP bootup, and get such information by decoding the APIC-IDs
> using the APIC-ID layout information retrieved from BSP. But this is
> likely to be a fertile new source of bugs as Dave concerned.
The APIC-IDs are only usefull if there is an architected scheme how they
are assigned. Is there such a thing?
The SDM is not helpful at all, but according to the ACPI spec there
exists:
Processor Properties Topology Table (PPTT)
That table actually provides pretty much what we are looking for, but
that table is optional and there is actually code for that in the
kernel, which is ARM64 specific.
So while this would be useful it's not usable on x86 because that would
make too much sense, right?
Thanks,
tglx
next prev parent reply other threads:[~2023-02-20 22:49 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-20 3:28 [RFC PATCH V2 0/1] x86: cpu topology fix and question on x86_max_cores Zhang Rui
2023-02-20 3:28 ` [PATCH V2 1/1] x86/topology: fix erroneous smp_num_siblings on Intel Hybrid platform Zhang Rui
2023-02-20 11:22 ` Peter Zijlstra
2023-02-21 8:34 ` Zhang, Rui
2023-03-13 2:05 ` Zhang, Rui
2023-02-20 10:36 ` [RFC PATCH V2 0/1] x86: cpu topology fix and question on x86_max_cores Peter Zijlstra
2023-02-20 14:40 ` Zhang, Rui
2023-02-20 11:08 ` Peter Zijlstra
2023-02-20 14:33 ` Zhang, Rui
2023-02-20 19:06 ` Peter Zijlstra
2023-02-20 22:52 ` Thomas Gleixner
2023-02-21 8:01 ` Zhang, Rui
2023-02-20 22:49 ` Thomas Gleixner [this message]
2023-02-21 8:26 ` Zhang, Rui
2023-03-07 16:10 ` Zhang, Rui
2023-03-08 2:46 ` Brown, Len
2023-02-21 9:00 ` Peter Zijlstra
2023-02-21 10:09 ` Borislav Petkov
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=87edqkosty.ffs@tglx \
--to=tglx@linutronix.de \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=len.brown@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rui.zhang@intel.com \
--cc=x86@kernel.org \
--cc=zhang.jia@linux.alibaba.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