From: Yazen Ghannam <yazen.ghannam@amd.com>
To: Michal Pecio <michal.pecio@gmail.com>
Cc: Shyam-sundar.S-k@amd.com, bhelgaas@google.com,
hdegoede@redhat.com, ilpo.jarvinen@linux.intel.com,
jdelvare@suse.com, linux-edac@vger.kernel.org,
linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-pci@vger.kernel.org, linux@roeck-us.net,
mario.limonciello@amd.com, naveenkrishna.chatradhi@amd.com,
platform-driver-x86@vger.kernel.org, suma.hegde@amd.com,
tony.luck@intel.com, x86@kernel.org
Subject: Re: [PATCH v3 06/12] x86/amd_nb: Use topology info to get AMD node count
Date: Thu, 23 Oct 2025 15:04:29 -0400 [thread overview]
Message-ID: <20251023190429.GB796848@yaz-khff2.amd.com> (raw)
In-Reply-To: <20251023202503.72987338.michal.pecio@gmail.com>
On Thu, Oct 23, 2025 at 08:25:03PM +0200, Michal Pecio wrote:
> On Thu, 23 Oct 2025 12:09:06 -0400, Yazen Ghannam wrote:
> > The kernel seems to think there are 6 CPUs on your system:
> >
> > [ 0.072059] CPU topo: Allowing 4 present CPUs plus 2 hotplug CPUs
>
> I wonder if this code doesn't break systems which actually support
> hotplug, when some sockets aren't populated at boot?
I don't know about other vendors, but we don't do physical CPU hotplug.
CPU hotplug, in this case, is there are physical CPUs already in the
system, but they are not enabled for whatever policy decision. They
could be disabled in BIOS, and so the MADT entries will reflect that. Or
they can be disabled by kernel parameters.
I'm curious though: what happens if you try to 'online' these extra
CPUs?
>
>
> amd_northbridges.num = amd_num_nodes();
>
> This count apparently includes potential hotplug nodes.
Yes, but see below...
>
> for (i = 0; i < amd_northbridges.num; i++) {
> node_to_amd_nb(i)->misc = amd_node_get_func(i, 3);
>
> This is a wrapper around pci_get_domain_bus_and_slot(). Isn't this PCI
> device part of CPU "uncore" and absent until a CPU is hotplugged?
>
Yes, and no. This PCI device is the Northbridge and is inside the
package. These don't get hotplugged. If you had a 2P server, then both
would be there from boot time even if you left all the CPUs on one of
them "disabled". You can do this today if you have a 2P system and boot
with maxcpus=N or something similar.
> /*
> * Each Northbridge must have a 'misc' device.
> * If not, then uninitialize everything.
> */
> if (!node_to_amd_nb(i)->misc) {
>
> And if it's absent, all previously found northbridges are ignored.
Right, it's a bug if part of the Northbridge is missing.
> BTW, kerneldoc seems to suggest pci_dev_put() should be here?
Yes, I think you're right. This should be unwound properly.
Thanks,
Yazen
next prev parent reply other threads:[~2025-10-23 19:04 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-07 22:28 [PATCH v3 00/12] AMD NB and SMN rework Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 01/12] x86/amd_nb: Restrict init function to AMD-based systems Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 02/12] x86/amd_nb: Clean up early_is_amd_nb() Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 03/12] x86: Start moving AMD node functionality out of AMD_NB Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 04/12] x86/amd_nb: Simplify function 4 search Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 05/12] x86/amd_nb: Simplify root device search Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 06/12] x86/amd_nb: Use topology info to get AMD node count Yazen Ghannam
2025-10-21 23:16 ` Michal Pecio
2025-10-22 13:39 ` Yazen Ghannam
2025-10-22 15:38 ` Michal Pecio
2025-10-22 16:04 ` Guenter Roeck
2025-10-22 16:09 ` Yazen Ghannam
2025-10-22 16:18 ` Michal Pecio
2025-10-23 13:59 ` Yazen Ghannam
2025-10-23 15:01 ` Michal Pecio
2025-10-23 16:09 ` Yazen Ghannam
2025-10-23 16:22 ` Mario Limonciello
2025-10-23 17:06 ` Michal Pecio
2025-10-23 17:12 ` Mario Limonciello
2025-10-23 18:25 ` Yazen Ghannam
2025-10-23 21:43 ` Mario Limonciello
2025-10-23 16:31 ` Michal Pecio
2025-10-23 18:15 ` Yazen Ghannam
2025-10-23 18:25 ` Michal Pecio
2025-10-23 19:04 ` Yazen Ghannam [this message]
2025-10-23 19:09 ` Yazen Ghannam
2025-10-24 8:48 ` Michal Pecio
2025-10-24 13:42 ` Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 07/12] x86/amd_nb: Simplify function 3 search Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 08/12] x86/amd_nb, hwmon: (k10temp): Simplify amd_pci_dev_to_node_id() Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 09/12] x86/amd_nb: Move SMN access code to a new amd_node driver Yazen Ghannam
2025-01-08 5:30 ` Shyam Sundar S K
2025-01-08 8:56 ` Borislav Petkov
2025-01-07 22:28 ` [PATCH v3 10/12] x86/amd_node: Update __amd_smn_rw() error paths Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 11/12] x86/amd_node: Remove dependency on AMD_NB Yazen Ghannam
2025-01-07 22:28 ` [PATCH v3 12/12] x86/amd_node: Use defines for SMN register offsets Yazen Ghannam
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=20251023190429.GB796848@yaz-khff2.amd.com \
--to=yazen.ghannam@amd.com \
--cc=Shyam-sundar.S-k@amd.com \
--cc=bhelgaas@google.com \
--cc=hdegoede@redhat.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jdelvare@suse.com \
--cc=linux-edac@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mario.limonciello@amd.com \
--cc=michal.pecio@gmail.com \
--cc=naveenkrishna.chatradhi@amd.com \
--cc=platform-driver-x86@vger.kernel.org \
--cc=suma.hegde@amd.com \
--cc=tony.luck@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox