• Home
  • Raw
  • Download

Lines Matching +full:level +full:- +full:2

1 // SPDX-License-Identifier: GPL-2.0
3 * Intel dynamic_speed_select -- Enumerate and control features
26 str_len - curr_index, ","); in printcpulist()
31 index = snprintf(&str[curr_index], str_len - curr_index, "%d", in printcpulist()
67 for (i = size - 1; i >= 0; --i) { in printcpumask()
68 index = snprintf(&str[curr_index], str_len - curr_index, "%08x", in printcpumask()
74 strncat(&str[curr_index], ",", str_len - curr_index); in printcpumask()
84 static void format_and_print_txt(FILE *outf, int level, char *header, in format_and_print_txt() argument
91 if (!level) in format_and_print_txt()
94 if (level == 1) { in format_and_print_txt()
97 for (i = 0; i < level - 1; ++i) in format_and_print_txt()
98 j += snprintf(&delimiters[j], sizeof(delimiters) - j, in format_and_print_txt()
112 static void format_and_print(FILE *outf, int level, char *header, char *value) in format_and_print() argument
119 format_and_print_txt(outf, level, header, value); in format_and_print()
123 if (level == 0) { in format_and_print()
132 for (i = 0; i < level; ++i) in format_and_print()
133 j += snprintf(&delimiters[j], sizeof(delimiters) - j, in format_and_print()
136 if (last_level == level) in format_and_print()
140 if (last_level != level) in format_and_print()
146 for (i = last_level - 1; i >= level; --i) { in format_and_print()
149 for (j = i; j > 0; --j) in format_and_print()
151 sizeof(delimiters) - k, in format_and_print()
153 if (i == level && header) in format_and_print()
158 if (abs(last_level - level) < 3) in format_and_print()
166 last_level = level; in format_and_print()
172 int level = 1; in print_package_info() local
176 snprintf(header, sizeof(header), "package-%d:die-%d:powerdomain-%d:cpu-%d", in print_package_info()
177 id->pkg, id->die, id->punit, id->cpu); in print_package_info()
179 snprintf(header, sizeof(header), "package-%d:die-%d:cpu-%d", in print_package_info()
180 id->pkg, id->die, id->cpu); in print_package_info()
181 format_and_print(outf, level, header, NULL); in print_package_info()
184 snprintf(header, sizeof(header), "package-%d", id->pkg); in print_package_info()
185 format_and_print(outf, level++, header, NULL); in print_package_info()
186 snprintf(header, sizeof(header), "die-%d", id->die); in print_package_info()
187 format_and_print(outf, level++, header, NULL); in print_package_info()
189 snprintf(header, sizeof(header), "powerdomain-%d", id->punit); in print_package_info()
190 format_and_print(outf, level++, header, NULL); in print_package_info()
192 snprintf(header, sizeof(header), "cpu-%d", id->cpu); in print_package_info()
193 format_and_print(outf, level, header, NULL); in print_package_info()
195 return level; in print_package_info()
198 static void _isst_pbf_display_information(struct isst_id *id, FILE *outf, int level, in _isst_pbf_display_information() argument
205 snprintf(header, sizeof(header), "speed-select-base-freq-properties"); in _isst_pbf_display_information()
208 snprintf(header, sizeof(header), "high-priority-base-frequency(MHz)"); in _isst_pbf_display_information()
210 pbf_info->p1_high * isst_get_disp_freq_multiplier()); in _isst_pbf_display_information()
213 snprintf(header, sizeof(header), "high-priority-cpu-mask"); in _isst_pbf_display_information()
214 printcpumask(sizeof(value), value, pbf_info->core_cpumask_size, in _isst_pbf_display_information()
215 pbf_info->core_cpumask); in _isst_pbf_display_information()
218 snprintf(header, sizeof(header), "high-priority-cpu-list"); in _isst_pbf_display_information()
220 pbf_info->core_cpumask_size, in _isst_pbf_display_information()
221 pbf_info->core_cpumask); in _isst_pbf_display_information()
224 snprintf(header, sizeof(header), "low-priority-base-frequency(MHz)"); in _isst_pbf_display_information()
226 pbf_info->p1_low * isst_get_disp_freq_multiplier()); in _isst_pbf_display_information()
232 snprintf(header, sizeof(header), "tjunction-temperature(C)"); in _isst_pbf_display_information()
233 snprintf(value, sizeof(value), "%d", pbf_info->t_prochot); in _isst_pbf_display_information()
236 snprintf(header, sizeof(header), "thermal-design-power(W)"); in _isst_pbf_display_information()
237 snprintf(value, sizeof(value), "%d", pbf_info->tdp); in _isst_pbf_display_information()
241 static void _isst_fact_display_information(struct isst_id *id, FILE *outf, int level, in _isst_fact_display_information() argument
246 struct isst_fact_bucket_info *bucket_info = fact_info->bucket_info; in _isst_fact_display_information()
257 if (!bucket_info[j].hp_cores && id->cpu >= 0) in _isst_fact_display_information()
267 snprintf(header, sizeof(header), "speed-select-turbo-freq-properties"); in _isst_fact_display_information()
278 snprintf(header, sizeof(header), "bucket-%d", j); in _isst_fact_display_information()
281 snprintf(header, sizeof(header), "high-priority-cores-count"); in _isst_fact_display_information()
284 format_and_print(outf, base_level + 2, header, value); in _isst_fact_display_information()
290 "high-priority-max-frequency(MHz)"); in _isst_fact_display_information()
293 "high-priority-max-%s-frequency(MHz)", isst_get_trl_level_name(i)); in _isst_fact_display_information()
296 format_and_print(outf, base_level + 2, header, value); in _isst_fact_display_information()
300 "speed-select-turbo-freq-clip-frequencies"); in _isst_fact_display_information()
304 if (!fact_info->lp_ratios[j]) in _isst_fact_display_information()
307 /* No AVX level name for SSE to be consistent with previous formatting */ in _isst_fact_display_information()
309 snprintf(header, sizeof(header), "low-priority-max-frequency(MHz)"); in _isst_fact_display_information()
311 snprintf(header, sizeof(header), "low-priority-max-%s-frequency(MHz)", in _isst_fact_display_information()
314 fact_info->lp_ratios[j] * isst_get_disp_freq_multiplier()); in _isst_fact_display_information()
315 format_and_print(outf, base_level + 2, header, value); in _isst_fact_display_information()
323 int level = print_package_info(id, outf); in isst_ctdp_display_core_info() local
325 level++; in isst_ctdp_display_core_info()
333 format_and_print(outf, level, prefix, value); in isst_ctdp_display_core_info()
343 static int level; in isst_ctdp_display_information() local
347 if (pkg_dev->processed) in isst_ctdp_display_information()
348 level = print_package_info(id, outf); in isst_ctdp_display_information()
350 for (i = 0; i <= pkg_dev->levels; ++i) { in isst_ctdp_display_information()
354 ctdp_level = &pkg_dev->ctdp_level[i]; in isst_ctdp_display_information()
355 if (!ctdp_level->processed) in isst_ctdp_display_information()
358 snprintf(header, sizeof(header), "perf-profile-level-%d", in isst_ctdp_display_information()
359 ctdp_level->level); in isst_ctdp_display_information()
360 format_and_print(outf, level + 1, header, NULL); in isst_ctdp_display_information()
362 if (id->cpu >= 0) { in isst_ctdp_display_information()
363 snprintf(header, sizeof(header), "cpu-count"); in isst_ctdp_display_information()
366 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
368 j = CPU_COUNT_S(ctdp_level->core_cpumask_size, in isst_ctdp_display_information()
369 ctdp_level->core_cpumask); in isst_ctdp_display_information()
371 snprintf(header, sizeof(header), "enable-cpu-count"); in isst_ctdp_display_information()
373 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
376 if (ctdp_level->core_cpumask_size) { in isst_ctdp_display_information()
377 snprintf(header, sizeof(header), "enable-cpu-mask"); in isst_ctdp_display_information()
379 ctdp_level->core_cpumask_size, in isst_ctdp_display_information()
380 ctdp_level->core_cpumask); in isst_ctdp_display_information()
381 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
383 snprintf(header, sizeof(header), "enable-cpu-list"); in isst_ctdp_display_information()
385 ctdp_level->core_cpumask_size, in isst_ctdp_display_information()
386 ctdp_level->core_cpumask); in isst_ctdp_display_information()
387 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
391 snprintf(header, sizeof(header), "thermal-design-power-ratio"); in isst_ctdp_display_information()
392 snprintf(value, sizeof(value), "%d", ctdp_level->tdp_ratio); in isst_ctdp_display_information()
393 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
395 snprintf(header, sizeof(header), "base-frequency(MHz)"); in isst_ctdp_display_information()
396 if (!ctdp_level->sse_p1) in isst_ctdp_display_information()
397 ctdp_level->sse_p1 = ctdp_level->tdp_ratio; in isst_ctdp_display_information()
399 ctdp_level->sse_p1 * isst_get_disp_freq_multiplier()); in isst_ctdp_display_information()
400 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
402 if (ctdp_level->avx2_p1) { in isst_ctdp_display_information()
403 snprintf(header, sizeof(header), "base-frequency-avx2(MHz)"); in isst_ctdp_display_information()
405 ctdp_level->avx2_p1 * isst_get_disp_freq_multiplier()); in isst_ctdp_display_information()
406 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
409 if (ctdp_level->avx512_p1) { in isst_ctdp_display_information()
410 snprintf(header, sizeof(header), "base-frequency-avx512(MHz)"); in isst_ctdp_display_information()
412 ctdp_level->avx512_p1 * isst_get_disp_freq_multiplier()); in isst_ctdp_display_information()
413 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
416 if (ctdp_level->uncore_pm) { in isst_ctdp_display_information()
417 snprintf(header, sizeof(header), "uncore-frequency-min(MHz)"); in isst_ctdp_display_information()
419 ctdp_level->uncore_pm * isst_get_disp_freq_multiplier()); in isst_ctdp_display_information()
420 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
423 if (ctdp_level->uncore_p0) { in isst_ctdp_display_information()
424 snprintf(header, sizeof(header), "uncore-frequency-max(MHz)"); in isst_ctdp_display_information()
426 ctdp_level->uncore_p0 * isst_get_disp_freq_multiplier()); in isst_ctdp_display_information()
427 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
430 if (ctdp_level->amx_p1) { in isst_ctdp_display_information()
431 snprintf(header, sizeof(header), "base-frequency-amx(MHz)"); in isst_ctdp_display_information()
433 ctdp_level->amx_p1 * isst_get_disp_freq_multiplier()); in isst_ctdp_display_information()
434 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
437 if (ctdp_level->uncore_p1) { in isst_ctdp_display_information()
438 snprintf(header, sizeof(header), "uncore-frequency-base(MHz)"); in isst_ctdp_display_information()
440 ctdp_level->uncore_p1 * isst_get_disp_freq_multiplier()); in isst_ctdp_display_information()
441 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
444 if (ctdp_level->mem_freq) { in isst_ctdp_display_information()
445 snprintf(header, sizeof(header), "max-mem-frequency(MHz)"); in isst_ctdp_display_information()
447 ctdp_level->mem_freq); in isst_ctdp_display_information()
448 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
454 ctdp_level->cooling_type); in isst_ctdp_display_information()
455 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
459 "speed-select-turbo-freq"); in isst_ctdp_display_information()
460 if (ctdp_level->fact_support) { in isst_ctdp_display_information()
461 if (ctdp_level->fact_enabled) in isst_ctdp_display_information()
467 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
470 "speed-select-base-freq"); in isst_ctdp_display_information()
471 if (ctdp_level->pbf_support) { in isst_ctdp_display_information()
472 if (ctdp_level->pbf_enabled) in isst_ctdp_display_information()
478 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
481 "speed-select-core-power"); in isst_ctdp_display_information()
482 if (ctdp_level->sst_cp_support) { in isst_ctdp_display_information()
483 if (ctdp_level->sst_cp_enabled) in isst_ctdp_display_information()
489 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
492 if (ctdp_level->pbf_support) in isst_ctdp_display_information()
495 &ctdp_level->pbf_info, in isst_ctdp_display_information()
496 level + 2); in isst_ctdp_display_information()
500 if (ctdp_level->pkg_tdp) { in isst_ctdp_display_information()
501 snprintf(header, sizeof(header), "thermal-design-power(W)"); in isst_ctdp_display_information()
502 snprintf(value, sizeof(value), "%d", ctdp_level->pkg_tdp); in isst_ctdp_display_information()
503 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
506 if (ctdp_level->t_proc_hot) { in isst_ctdp_display_information()
507 snprintf(header, sizeof(header), "tjunction-max(C)"); in isst_ctdp_display_information()
508 snprintf(value, sizeof(value), "%d", ctdp_level->t_proc_hot); in isst_ctdp_display_information()
509 format_and_print(outf, level + 2, header, value); in isst_ctdp_display_information()
513 if (!ctdp_level->trl_ratios[k][0]) in isst_ctdp_display_information()
516 snprintf(header, sizeof(header), "turbo-ratio-limits-%s", isst_get_trl_level_name(k)); in isst_ctdp_display_information()
517 format_and_print(outf, level + 2, header, NULL); in isst_ctdp_display_information()
520 snprintf(header, sizeof(header), "bucket-%d", j); in isst_ctdp_display_information()
521 format_and_print(outf, level + 3, header, NULL); in isst_ctdp_display_information()
523 snprintf(header, sizeof(header), "core-count"); in isst_ctdp_display_information()
525 snprintf(value, sizeof(value), "%llu", (ctdp_level->trl_cores >> (j * 8)) & 0xff); in isst_ctdp_display_information()
526 format_and_print(outf, level + 4, header, value); in isst_ctdp_display_information()
528 snprintf(header, sizeof(header), "max-turbo-frequency(MHz)"); in isst_ctdp_display_information()
529 …snprintf(value, sizeof(value), "%d", ctdp_level->trl_ratios[k][j] * isst_get_disp_freq_multiplier(… in isst_ctdp_display_information()
530 format_and_print(outf, level + 4, header, value); in isst_ctdp_display_information()
534 if (ctdp_level->pbf_support) in isst_ctdp_display_information()
536 &ctdp_level->pbf_info, in isst_ctdp_display_information()
537 level + 2); in isst_ctdp_display_information()
538 if (ctdp_level->fact_support) in isst_ctdp_display_information()
540 &ctdp_level->fact_info, in isst_ctdp_display_information()
541 level + 2); in isst_ctdp_display_information()
561 void isst_pbf_display_information(struct isst_id *id, FILE *outf, int level, in isst_pbf_display_information() argument
567 _isst_pbf_display_information(id, outf, level, pbf_info, _level + 1); in isst_pbf_display_information()
571 void isst_fact_display_information(struct isst_id *id, FILE *outf, int level, in isst_fact_display_information() argument
578 _isst_fact_display_information(id, outf, level, fact_bucket, fact_avx, in isst_fact_display_information()
588 int level; in isst_clos_display_information() local
590 level = print_package_info(id, outf); in isst_clos_display_information()
592 snprintf(header, sizeof(header), "core-power"); in isst_clos_display_information()
593 format_and_print(outf, level + 1, header, NULL); in isst_clos_display_information()
597 format_and_print(outf, level + 2, header, value); in isst_clos_display_information()
600 snprintf(value, sizeof(value), "%d", clos_config->epp); in isst_clos_display_information()
601 format_and_print(outf, level + 2, header, value); in isst_clos_display_information()
603 snprintf(header, sizeof(header), "clos-proportional-priority"); in isst_clos_display_information()
604 snprintf(value, sizeof(value), "%d", clos_config->clos_prop_prio); in isst_clos_display_information()
605 format_and_print(outf, level + 2, header, value); in isst_clos_display_information()
607 snprintf(header, sizeof(header), "clos-min"); in isst_clos_display_information()
608 snprintf(value, sizeof(value), "%d MHz", clos_config->clos_min * isst_get_disp_freq_multiplier()); in isst_clos_display_information()
609 format_and_print(outf, level + 2, header, value); in isst_clos_display_information()
611 snprintf(header, sizeof(header), "clos-max"); in isst_clos_display_information()
612 if ((clos_config->clos_max * isst_get_disp_freq_multiplier()) == 25500) in isst_clos_display_information()
615 snprintf(value, sizeof(value), "%d MHz", clos_config->clos_max * isst_get_disp_freq_multiplier()); in isst_clos_display_information()
616 format_and_print(outf, level + 2, header, value); in isst_clos_display_information()
618 snprintf(header, sizeof(header), "clos-desired"); in isst_clos_display_information()
619 …snprintf(value, sizeof(value), "%d MHz", clos_config->clos_desired * isst_get_disp_freq_multiplier… in isst_clos_display_information()
620 format_and_print(outf, level + 2, header, value); in isst_clos_display_information()
622 format_and_print(outf, level, NULL, NULL); in isst_clos_display_information()
631 int level; in isst_clos_display_clos_information() local
633 level = print_package_info(id, outf); in isst_clos_display_clos_information()
635 snprintf(header, sizeof(header), "core-power"); in isst_clos_display_clos_information()
636 format_and_print(outf, level + 1, header, NULL); in isst_clos_display_clos_information()
638 snprintf(header, sizeof(header), "support-status"); in isst_clos_display_clos_information()
643 format_and_print(outf, level + 2, header, value); in isst_clos_display_clos_information()
645 snprintf(header, sizeof(header), "enable-status"); in isst_clos_display_clos_information()
650 format_and_print(outf, level + 2, header, value); in isst_clos_display_clos_information()
652 snprintf(header, sizeof(header), "clos-enable-status"); in isst_clos_display_clos_information()
657 format_and_print(outf, level + 2, header, value); in isst_clos_display_clos_information()
659 snprintf(header, sizeof(header), "priority-type"); in isst_clos_display_clos_information()
664 format_and_print(outf, level + 2, header, value); in isst_clos_display_clos_information()
666 format_and_print(outf, level, NULL, NULL); in isst_clos_display_clos_information()
673 int level; in isst_clos_display_assoc_information() local
675 level = print_package_info(id, outf); in isst_clos_display_assoc_information()
677 snprintf(header, sizeof(header), "get-assoc"); in isst_clos_display_assoc_information()
678 format_and_print(outf, level + 1, header, NULL); in isst_clos_display_assoc_information()
682 format_and_print(outf, level + 2, header, value); in isst_clos_display_assoc_information()
684 format_and_print(outf, level, NULL, NULL); in isst_clos_display_assoc_information()
692 int level = 3; in isst_display_result() local
694 level = print_package_info(id, outf); in isst_display_result()
697 format_and_print(outf, level + 1, header, NULL); in isst_display_result()
703 format_and_print(outf, level + 2, header, value); in isst_display_result()
705 format_and_print(outf, level, NULL, NULL); in isst_display_result()
743 format_and_print(outf, 2, header, value); in isst_display_error_info_message()
753 int level; in isst_trl_display_information() local
755 level = print_package_info(id, outf); in isst_trl_display_information()
757 snprintf(header, sizeof(header), "get-trl"); in isst_trl_display_information()
758 format_and_print(outf, level + 1, header, NULL); in isst_trl_display_information()
762 format_and_print(outf, level + 2, header, value); in isst_trl_display_information()
764 format_and_print(outf, level, NULL, NULL); in isst_trl_display_information()