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] [thread-next>] [day] [month] [year] [list]
Message-ID: <23112ed6f8dd1d8973b896fbd714c1499a92ffe1.camel@intel.com>
Date:   Tue, 21 Feb 2023 08:34:07 +0000
From:   "Zhang, Rui" <rui.zhang@...el.com>
To:     "peterz@...radead.org" <peterz@...radead.org>
CC:     "Brown, Len" <len.brown@...el.com>,
        "zhang.jia@...ux.alibaba.com" <zhang.jia@...ux.alibaba.com>,
        "bp@...en8.de" <bp@...en8.de>,
        "dave.hansen@...ux.intel.com" <dave.hansen@...ux.intel.com>,
        "hpa@...or.com" <hpa@...or.com>,
        "mingo@...hat.com" <mingo@...hat.com>,
        "tglx@...utronix.de" <tglx@...utronix.de>,
        "x86@...nel.org" <x86@...nel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH V2 1/1] x86/topology: fix erroneous smp_num_siblings on
 Intel Hybrid platform

Hi, Peter,

> > ---
> >  arch/x86/kernel/cpu/topology.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/x86/kernel/cpu/topology.c
> > b/arch/x86/kernel/cpu/topology.c
> > index 5e868b62a7c4..0270925fe013 100644
> > --- a/arch/x86/kernel/cpu/topology.c
> > +++ b/arch/x86/kernel/cpu/topology.c
> > @@ -79,7 +79,7 @@ int detect_extended_topology_early(struct
> > cpuinfo_x86 *c)
> >  	 * initial apic id, which also represents 32-bit extended
> > x2apic id.
> >  	 */
> >  	c->initial_apicid = edx;
> > -	smp_num_siblings = LEVEL_MAX_SIBLINGS(ebx);
> > +	smp_num_siblings = max_t(int, smp_num_siblings,
> > LEVEL_MAX_SIBLINGS(ebx));
> >  #endif
> >  	return 0;
> >  }
> > @@ -109,7 +109,8 @@ int detect_extended_topology(struct cpuinfo_x86
> > *c)
> >  	 */
> >  	cpuid_count(leaf, SMT_LEVEL, &eax, &ebx, &ecx, &edx);
> >  	c->initial_apicid = edx;
> > -	core_level_siblings = smp_num_siblings =
> > LEVEL_MAX_SIBLINGS(ebx);
> > +	core_level_siblings = LEVEL_MAX_SIBLINGS(ebx);
> > +	smp_num_siblings = max_t(int, smp_num_siblings,
> > LEVEL_MAX_SIBLINGS(ebx));
> >  	core_plus_mask_width = ht_mask_width =
> > BITS_SHIFT_NEXT_LEVEL(eax);
> >  	die_level_siblings = LEVEL_MAX_SIBLINGS(ebx);
> >  	pkg_mask_width = die_plus_mask_width =
> > BITS_SHIFT_NEXT_LEVEL(eax);
> 
> Seems ok, but perhaps you can stick an 'int' cast in
> LEVEL_MAX_SIGLINGS instead and write a simpler max() -- and/or
> convert
> smt_num_siblings to unsigned int.
> 
yeah, it is doable. I'd prefer to use the current version to keep this
fix simpler if you don't mind.

> Regardless,
> 
> Acked-by: Peter Zijlstra (Intel) <peterz@...radead.org>

Thanks for your ACK.

-rui


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ