Lines Matching +full:cpu +full:- +full:map

1 // SPDX-License-Identifier: GPL-2.0
14 #define TEMPL "/tmp/perf-test-XXXXXX"
26 return -1; in get_temp()
45 session->evlist = evlist__new_default(); in session_write_header()
46 TEST_ASSERT_VAL("can't get evlist", session->evlist); in session_write_header()
50 session->evlist = evlist__new(); in session_write_header()
51 TEST_ASSERT_VAL("can't get evlist", session->evlist); in session_write_header()
53 parse_events(session->evlist, "cpu_core/cycles/", &err); in session_write_header()
57 perf_header__set_feat(&session->header, HEADER_CPU_TOPOLOGY); in session_write_header()
58 perf_header__set_feat(&session->header, HEADER_NRCPUS); in session_write_header()
59 perf_header__set_feat(&session->header, HEADER_ARCH); in session_write_header()
61 session->header.data_size += DATA_SIZE; in session_write_header()
64 !perf_session__write_header(session, session->evlist, data.file.fd, true)); in session_write_header()
66 evlist__delete(session->evlist); in session_write_header()
72 static int check_cpu_topology(char *path, struct perf_cpu_map *map) in check_cpu_topology() argument
89 * cpu is a NULL pointer. in check_cpu_topology()
91 * CPU 0 is on core_id 0 and physical_package_id 6 in check_cpu_topology()
92 * CPU 1 is on core_id 1 and physical_package_id 3 in check_cpu_topology()
95 * dependent and might have higher numbers than the CPU id. in check_cpu_topology()
107 if (!session->header.env.cpu in check_cpu_topology()
108 && strncmp(session->header.env.arch, "s390", 4) in check_cpu_topology()
109 && strncmp(session->header.env.arch, "aarch64", 7)) in check_cpu_topology()
115 * physical_package_id will be set to -1. Hence skip this in check_cpu_topology()
116 * test if physical_package_id returns -1 for cpu from perf_cpu_map. in check_cpu_topology()
118 if (!strncmp(session->header.env.arch, "ppc64le", 7)) { in check_cpu_topology()
119 if (cpu__get_socket_id(perf_cpu_map__cpu(map, 0)) == -1) in check_cpu_topology()
123 TEST_ASSERT_VAL("Session header CPU map not set", session->header.env.cpu); in check_cpu_topology()
125 for (i = 0; i < session->header.env.nr_cpus_avail; i++) { in check_cpu_topology()
126 struct perf_cpu cpu = { .cpu = i }; in check_cpu_topology() local
128 if (!perf_cpu_map__has(map, cpu)) in check_cpu_topology()
130 pr_debug("CPU %d, core %d, socket %d\n", i, in check_cpu_topology()
131 session->header.env.cpu[i].core_id, in check_cpu_topology()
132 session->header.env.cpu[i].socket_id); in check_cpu_topology()
135 // Test that CPU ID contains socket, die, core and CPU in check_cpu_topology()
136 for (i = 0; i < perf_cpu_map__nr(map); i++) { in check_cpu_topology()
137 id = aggr_cpu_id__cpu(perf_cpu_map__cpu(map, i), NULL); in check_cpu_topology()
138 TEST_ASSERT_VAL("Cpu map - CPU ID doesn't match", in check_cpu_topology()
139 perf_cpu_map__cpu(map, i).cpu == id.cpu.cpu); in check_cpu_topology()
141 TEST_ASSERT_VAL("Cpu map - Core ID doesn't match", in check_cpu_topology()
142 session->header.env.cpu[perf_cpu_map__cpu(map, i).cpu].core_id == id.core); in check_cpu_topology()
143 TEST_ASSERT_VAL("Cpu map - Socket ID doesn't match", in check_cpu_topology()
144 session->header.env.cpu[perf_cpu_map__cpu(map, i).cpu].socket_id == in check_cpu_topology()
147 TEST_ASSERT_VAL("Cpu map - Die ID doesn't match", in check_cpu_topology()
148 session->header.env.cpu[perf_cpu_map__cpu(map, i).cpu].die_id == id.die); in check_cpu_topology()
149 TEST_ASSERT_VAL("Cpu map - Node ID is set", id.node == -1); in check_cpu_topology()
150 TEST_ASSERT_VAL("Cpu map - Thread IDX is set", id.thread_idx == -1); in check_cpu_topology()
154 for (i = 0; i < perf_cpu_map__nr(map); i++) { in check_cpu_topology()
155 id = aggr_cpu_id__core(perf_cpu_map__cpu(map, i), NULL); in check_cpu_topology()
156 TEST_ASSERT_VAL("Core map - Core ID doesn't match", in check_cpu_topology()
157 session->header.env.cpu[perf_cpu_map__cpu(map, i).cpu].core_id == id.core); in check_cpu_topology()
159 TEST_ASSERT_VAL("Core map - Socket ID doesn't match", in check_cpu_topology()
160 session->header.env.cpu[perf_cpu_map__cpu(map, i).cpu].socket_id == in check_cpu_topology()
163 TEST_ASSERT_VAL("Core map - Die ID doesn't match", in check_cpu_topology()
164 session->header.env.cpu[perf_cpu_map__cpu(map, i).cpu].die_id == id.die); in check_cpu_topology()
165 TEST_ASSERT_VAL("Core map - Node ID is set", id.node == -1); in check_cpu_topology()
166 TEST_ASSERT_VAL("Core map - Thread IDX is set", id.thread_idx == -1); in check_cpu_topology()
170 for (i = 0; i < perf_cpu_map__nr(map); i++) { in check_cpu_topology()
171 id = aggr_cpu_id__die(perf_cpu_map__cpu(map, i), NULL); in check_cpu_topology()
172 TEST_ASSERT_VAL("Die map - Socket ID doesn't match", in check_cpu_topology()
173 session->header.env.cpu[perf_cpu_map__cpu(map, i).cpu].socket_id == in check_cpu_topology()
176 TEST_ASSERT_VAL("Die map - Die ID doesn't match", in check_cpu_topology()
177 session->header.env.cpu[perf_cpu_map__cpu(map, i).cpu].die_id == id.die); in check_cpu_topology()
179 TEST_ASSERT_VAL("Die map - Node ID is set", id.node == -1); in check_cpu_topology()
180 TEST_ASSERT_VAL("Die map - Core is set", id.core == -1); in check_cpu_topology()
181 TEST_ASSERT_VAL("Die map - CPU is set", id.cpu.cpu == -1); in check_cpu_topology()
182 TEST_ASSERT_VAL("Die map - Thread IDX is set", id.thread_idx == -1); in check_cpu_topology()
186 for (i = 0; i < perf_cpu_map__nr(map); i++) { in check_cpu_topology()
187 id = aggr_cpu_id__socket(perf_cpu_map__cpu(map, i), NULL); in check_cpu_topology()
188 TEST_ASSERT_VAL("Socket map - Socket ID doesn't match", in check_cpu_topology()
189 session->header.env.cpu[perf_cpu_map__cpu(map, i).cpu].socket_id == in check_cpu_topology()
192 TEST_ASSERT_VAL("Socket map - Node ID is set", id.node == -1); in check_cpu_topology()
193 TEST_ASSERT_VAL("Socket map - Die ID is set", id.die == -1); in check_cpu_topology()
194 TEST_ASSERT_VAL("Socket map - Core is set", id.core == -1); in check_cpu_topology()
195 TEST_ASSERT_VAL("Socket map - CPU is set", id.cpu.cpu == -1); in check_cpu_topology()
196 TEST_ASSERT_VAL("Socket map - Thread IDX is set", id.thread_idx == -1); in check_cpu_topology()
200 for (i = 0; i < perf_cpu_map__nr(map); i++) { in check_cpu_topology()
201 id = aggr_cpu_id__node(perf_cpu_map__cpu(map, i), NULL); in check_cpu_topology()
202 TEST_ASSERT_VAL("Node map - Node ID doesn't match", in check_cpu_topology()
203 cpu__get_node(perf_cpu_map__cpu(map, i)) == id.node); in check_cpu_topology()
204 TEST_ASSERT_VAL("Node map - Socket is set", id.socket == -1); in check_cpu_topology()
205 TEST_ASSERT_VAL("Node map - Die ID is set", id.die == -1); in check_cpu_topology()
206 TEST_ASSERT_VAL("Node map - Core is set", id.core == -1); in check_cpu_topology()
207 TEST_ASSERT_VAL("Node map - CPU is set", id.cpu.cpu == -1); in check_cpu_topology()
208 TEST_ASSERT_VAL("Node map - Thread IDX is set", id.thread_idx == -1); in check_cpu_topology()
218 struct perf_cpu_map *map; in test__session_topology() local
228 map = perf_cpu_map__new(NULL); in test__session_topology()
229 if (map == NULL) { in test__session_topology()
234 ret = check_cpu_topology(path, map); in test__session_topology()
235 perf_cpu_map__put(map); in test__session_topology()