if (cpu_has(c, X86_FEATURE_HT)) { if (!WARN_ON_ONCE(tscan->ebx1_nproc_shift < core_shift))
smt_shift = tscan->ebx1_nproc_shift - core_shift; /* * The parser expects leaf 0xb/0x1f format, which means * the number of logical processors at core level is * counting threads.
*/
core_shift += smt_shift;
cores <<= smt_shift;
}
staticbool fake_topology(struct topo_scan *tscan)
{ /* * Preset the CORE level shift for CPUID less systems and XEN_PV, * which has useless CPUID information.
*/
topology_set_dom(tscan, TOPO_SMT_DOMAIN, 0, 1);
topology_set_dom(tscan, TOPO_CORE_DOMAIN, 0, 1);
/* Preset Initial APIC ID from CPUID leaf 1 */
cpuid_leaf_reg(1, CPUID_EBX, &ebx);
c->topo.initial_apicid = ebx.apicid;
/* * The initial invocation from early_identify_cpu() happens before * the APIC is mapped or X2APIC enabled. For establishing the * topology, that's not required. Use the initial APIC ID.
*/ if (early)
c->topo.apicid = c->topo.initial_apicid; else
c->topo.apicid = read_apic_id();
/* The above is sufficient for UP */ if (!IS_ENABLED(CONFIG_SMP)) return;
switch (c->x86_vendor) { case X86_VENDOR_AMD: if (IS_ENABLED(CONFIG_CPU_SUP_AMD))
cpu_parse_topology_amd(tscan); break; case X86_VENDOR_CENTAUR: case X86_VENDOR_ZHAOXIN:
parse_legacy(tscan); break; case X86_VENDOR_INTEL: if (!IS_ENABLED(CONFIG_CPU_SUP_INTEL) || !cpu_parse_topology_ext(tscan))
parse_legacy(tscan); if (c->cpuid_level >= 0x1a)
c->topo.cpu_type = cpuid_eax(0x1a); break; case X86_VENDOR_HYGON: if (IS_ENABLED(CONFIG_CPU_SUP_HYGON))
cpu_parse_topology_amd(tscan); break;
}
}
/* Copy the shift values and calculate the unit sizes. */
memcpy(x86_topo_system.dom_shifts, tscan.dom_shifts, sizeof(x86_topo_system.dom_shifts));
dom = TOPO_SMT_DOMAIN;
x86_topo_system.dom_size[dom] = 1U << x86_topo_system.dom_shifts[dom];
for (dom++; dom < TOPO_MAX_DOMAIN; dom++) {
sft = x86_topo_system.dom_shifts[dom] - x86_topo_system.dom_shifts[dom - 1];
x86_topo_system.dom_size[dom] = 1U << sft;
}
topo_set_ids(&tscan, true);
/* * AMD systems have Nodes per package which cannot be mapped to * APIC ID.
*/
__amd_nodes_per_pkg = tscan.amd_nodes_per_pkg;
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.13Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-04-26)
¤