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: <e46c345503a6d0827d3198f699258274e22cb9e3.camel@intel.com>
Date:   Sat, 12 Aug 2023 06:41:45 +0000
From:   "Zhang, Rui" <rui.zhang@...el.com>
To:     "tglx@...utronix.de" <tglx@...utronix.de>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC:     "Gross, Jurgen" <jgross@...e.com>,
        "mikelley@...rosoft.com" <mikelley@...rosoft.com>,
        "arjan@...ux.intel.com" <arjan@...ux.intel.com>,
        "x86@...nel.org" <x86@...nel.org>,
        "thomas.lendacky@....com" <thomas.lendacky@....com>,
        "ray.huang@....com" <ray.huang@....com>,
        "andrew.cooper3@...rix.com" <andrew.cooper3@...rix.com>,
        "Sivanich, Dimitri" <dimitri.sivanich@....com>,
        "wei.liu@...nel.org" <wei.liu@...nel.org>
Subject: Re: [patch V3 23/40] x86/cpu: Provide cpu_init/parse_topology()

> +
> +static inline u32 topo_relative_domain_id(u32 apicid, enum
> x86_topology_domains dom)
> +{
> +       if (dom != TOPO_SMT_DOMAIN)
> +               apicid >>= x86_topo_system.dom_shifts[dom - 1];
> +       return apicid & (x86_topo_system.dom_size[dom] - 1);
> +}

relative_domain_id() is used to get a unique id value within its next
higher level.

> +static void topo_set_ids(struct topo_scan *tscan)
> +{
> +       struct cpuinfo_x86 *c = tscan->c;
> +       u32 apicid = c->topo.apicid;
> +
> +       c->topo.pkg_id = topo_shift_apicid(apicid, TOPO_PKG_DOMAIN);
> +       c->topo.die_id = topo_shift_apicid(apicid, TOPO_DIE_DOMAIN);
> +
> +       /* Relative core ID */
> +       c->topo.core_id = topo_relative_domain_id(apicid,
> TOPO_CORE_DOMAIN);

My understanding is that, to ensure a package scope unique core_id,
rather than Module/Tile scope unique, what is really needed here is
something like,
	apicid >>= x86_topo_system.dom_shifts[SMT];
	c->topo.core_id = apicid & (x86_topo_system.dom_size[PACKAGE]
- 1);

I don't have chance to confirm this on a platform with Module level
yet, but will do soon.

thanks,
rui


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ