Home
last modified time | relevance | path

Searched refs:tscan (Results 1 – 4 of 4) sorted by relevance

/linux/arch/x86/kernel/cpu/
H A Dtopology_amd.c11 static bool parse_8000_0008(struct topo_scan *tscan) in parse_8000_0008() argument
23 if (tscan->c->extended_cpuid_level < 0x80000008) in parse_8000_0008()
42 topology_update_dom(tscan, TOPO_SMT_DOMAIN, 0, 1); in parse_8000_0008()
43 topology_set_dom(tscan, TOPO_CORE_DOMAIN, sft, ecx.cpu_nthreads + 1); in parse_8000_0008()
47 static void store_node(struct topo_scan *tscan, u16 nr_nodes, u16 node_id) in store_node() argument
58 tscan->amd_nodes_per_pkg = nr_nodes; in store_node()
59 tscan->amd_node_id = node_id; in store_node()
62 static bool parse_8000_001e(struct topo_scan *tscan) in parse_8000_001e() argument
89 tscan->c->topo.initial_apicid = leaf.ext_apic_id; in parse_8000_001e()
96 if (tscan->c->x86 >= 0x17) { in parse_8000_001e()
[all …]
H A Dtopology_common.c22 void topology_set_dom(struct topo_scan *tscan, enum x86_topology_domains dom, in topology_set_dom() argument
25 topology_update_dom(tscan, dom, shift, ncpus); in topology_set_dom()
29 tscan->dom_shifts[dom] = tscan->dom_shifts[dom - 1]; in topology_set_dom()
30 tscan->dom_ncpus[dom] = tscan->dom_ncpus[dom - 1]; in topology_set_dom()
82 static void parse_legacy(struct topo_scan *tscan) in parse_legacy() argument
85 struct cpuinfo_x86 *c = tscan->c; in parse_legacy()
91 if (!WARN_ON_ONCE(tscan->ebx1_nproc_shift < core_shift)) in parse_legacy()
92 smt_shift = tscan->ebx1_nproc_shift - core_shift; in parse_legacy()
102 topology_set_dom(tscan, TOPO_SMT_DOMAIN, smt_shift, 1U << smt_shift); in parse_legacy()
103 topology_set_dom(tscan, TOPO_CORE_DOMAIN, core_shift, cores); in parse_legacy()
[all …]
H A Dtopology_ext.c45 static inline bool topo_subleaf(struct topo_scan *tscan, u32 leaf, u32 subleaf, in topo_subleaf() argument
94 tscan->c->topo.initial_apicid = sl.x2apic_id; in topo_subleaf()
95 } else if (tscan->c->topo.initial_apicid != sl.x2apic_id) { in topo_subleaf()
97 leaf, subleaf, tscan->c->topo.initial_apicid, sl.x2apic_id); in topo_subleaf()
100 topology_set_dom(tscan, dom, sl.x2apic_shift, sl.num_processors); in topo_subleaf()
104 static bool parse_topology_leaf(struct topo_scan *tscan, u32 leaf) in parse_topology_leaf() argument
110 for (subleaf = 0, last_dom = 0; topo_subleaf(tscan, leaf, subleaf, &last_dom); subleaf++); in parse_topology_leaf()
121 if (!tscan->dom_shifts[TOPO_SMT_DOMAIN] && tscan->dom_ncpus[TOPO_SMT_DOMAIN] > 1) { in parse_topology_leaf()
122 unsigned int sft = get_count_order(tscan->dom_ncpus[TOPO_SMT_DOMAIN]); in parse_topology_leaf()
125 leaf, tscan->dom_ncpus[TOPO_SMT_DOMAIN]); in parse_topology_leaf()
[all …]
H A Dtopology.h20 void topology_set_dom(struct topo_scan *tscan, enum x86_topology_domains dom,
22 bool cpu_parse_topology_ext(struct topo_scan *tscan);
23 void cpu_parse_topology_amd(struct topo_scan *tscan);
24 void cpu_topology_fixup_amd(struct topo_scan *tscan);
49 static inline void topology_update_dom(struct topo_scan *tscan, enum x86_topology_domains dom, in topology_update_dom() argument
52 tscan->dom_shifts[dom] = shift; in topology_update_dom()
53 tscan->dom_ncpus[dom] = ncpus; in topology_update_dom()