lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20251028143631.GA468145@yaz-khff2.amd.com>
Date: Tue, 28 Oct 2025 10:36:31 -0400
From: Yazen Ghannam <yazen.ghannam@....com>
To: Mario Limonciello <mario.limonciello@....com>
Cc: Michal Pecio <michal.pecio@...il.com>, x86@...nel.org,
	regressions@...ts.linux.dev, Thomas Gleixner <tglx@...utronix.de>,
	Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>,
	Eric DeVolder <eric.devolder@...cle.com>,
	linux-kernel@...r.kernel.org
Subject: Re: AMD topology broken on various 754/AM2+/AM3/AM3+ systems causes
 NB/EDAC/GART regression since 6.14

On Mon, Oct 27, 2025 at 11:18:38AM -0500, Mario Limonciello wrote:
> On 10/24/25 4:32 PM, Yazen Ghannam wrote:

[...]

> > +/*
> > + * Some older BIOSes include extra entries in MADT.
> > + * Do some vendor-specific checks to ignore them.
> > + */
> > +static bool ignore_extra_apic_entry(u32 apic_id)
> > +{
> > +	u32 pkgid = topo_apicid(apic_id, TOPO_PKG_DOMAIN);
> > +	struct cpuinfo_x86 *c = &boot_cpu_data;
> > +
> > +	/* Allow "physically not possible" cases if in a guest. */
> > +	if (!hypervisor_is_type(X86_HYPER_NATIVE))
> > +	       return false;
> > +
> > +	/* This model only supports 8 threads in a package. */
> > +	if (c->x86_vendor == X86_VENDOR_INTEL &&
> > +	    c->x86 == 0x6 && c->x86_model == 0x2d) {
> > +		if (topo_unit_count(pkgid, TOPO_PKG_DOMAIN, phys_cpu_present_map) >= 8)
> > +			goto reject;
> > +	}
> > +
> > +	/*
> > +	 * Various older models have extra entries. A common trait is that the
> > +	 * package ID derived from the APIC ID would be more than was ever supported.
> > +	 */
> > +	if (c->x86_vendor == X86_VENDOR_AMD && c->x86 < 0x17) {
> 
> Maybe look for lack of X86_FEATURE_ZEN instead?

Thanks. Yep, good idea.

> 
> > +		pkgid >>= x86_topo_system.dom_shifts[TOPO_PKG_DOMAIN - 1];
> > +
> > +		if (pkgid >= 8)
> > +			goto reject;
> > +	}
> > +
> > +	return false;
> > +
> > +reject:
> > +	pr_info_once("Ignoring hot-pluggable APIC ID %x.\n", apic_id);
> > +	topo_info.nr_rejected_cpus++;
> > +	return true;
> > +}
> > +

Michal, does this patch resolve the issue on you systems?

Thanks,
Yazen

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ