Lines Matching +full:always +full:- +full:turbo

1 // SPDX-License-Identifier: GPL-2.0
3 * Intel Speed Select -- Enumerate and control features
53 static int current_clos = -1;
54 static int clos_epp = -1;
55 static int clos_prop_prio = -1;
56 static int clos_min = -1;
57 static int clos_max = -1;
58 static int clos_desired = -1;
157 /* only three CascadeLake-N models are supported */ in update_cpu_model()
166 err(-1, "cannot open /proc/cpuinfo\n"); in update_cpu_model()
216 return -1; in parse_int_file()
252 return -1; in get_stored_topology_info()
260 ret = -1; in get_stored_topology_info()
302 cpu_top.core_id = -1; in store_cpu_topology()
307 cpu_top.pkg_id = -1; in store_cpu_topology()
312 cpu_top.die_id = -1; in store_cpu_topology()
330 return -1; in get_physical_package_id()
354 return -1; in get_physical_core_id()
378 return -1; in get_physical_die_id()
407 return -1; in get_physical_punit_id()
412 return -1; in get_physical_punit_id()
417 id->cpu = cpu; in set_isst_id()
419 id->pkg = get_physical_package_id(cpu); in set_isst_id()
420 if (id->pkg >= MAX_PACKAGE_COUNT) in set_isst_id()
421 id->pkg = -1; in set_isst_id()
423 id->die = get_physical_die_id(cpu); in set_isst_id()
424 if (id->die >= MAX_DIE_PER_PACKAGE) in set_isst_id()
425 id->die = -1; in set_isst_id()
427 id->punit = get_physical_punit_id(cpu); in set_isst_id()
428 if (id->punit >= MAX_PUNIT_PER_DIE) in set_isst_id()
429 id->punit = -1; in set_isst_id()
438 if (id->pkg == tid.pkg && id->die == tid.die && id->punit == tid.punit) in is_cpu_in_power_domain()
470 if (ret == -1) in is_cpu_online()
503 err(-1, "%s open failed", buffer); in set_cpu_online_offline()
511 if (ret == -1) in set_cpu_online_offline()
539 memset(cpus, -1, sizeof(cpus)); in for_each_online_power_domain_in_set()
562 if (cpus[id.pkg][id.die][id.punit] == -1) in for_each_online_power_domain_in_set()
582 * How to check a non-cpu die for a package/die with all cpu offlined? in for_each_online_power_domain_in_set()
700 if (id->pkg < 0 || id->die < 0 || id->punit < 0) in get_cpu_count()
703 return cpu_cnt[id->pkg][id->die][id->punit]; in get_cpu_count()
716 * [2] Always 0 in update_punit_cpu_info()
719 * [2:1] Always 0 in update_punit_cpu_info()
722 cpu_map->punit_id = (physical_cpu >> 11) & 0x1f; in update_punit_cpu_info()
723 cpu_map->punit_cpu_core = (physical_cpu >> 3) & 0xff; in update_punit_cpu_info()
724 cpu_map->punit_cpu = physical_cpu & 0x7ff; in update_punit_cpu_info()
735 cpu_map->punit_cpu = physical_cpu & 0x1ff; in update_punit_cpu_info()
736 cpu_map->punit_cpu_core = (cpu_map->punit_cpu >> 1); // shift to get core id in update_punit_cpu_info()
742 cpu_map->punit_id = punit_id; in update_punit_cpu_info()
761 err(-1, "%s open failed", pathname); in create_cpu_map()
799 if (ioctl(fd, ISST_IF_GET_PHY_ID, &map) == -1) { in create_cpu_map()
844 if (id->cpu < 0) in set_cpu_mask_from_punit_coremask()
875 return -EINVAL; in find_phy_core_num()
897 if (ret == -1) { in enable_cpuset_controller()
913 snprintf(dir_name, sizeof(dir_name), "/sys/fs/cgroup/%d-%d-%d", id->pkg, id->die, id->punit); in isolate_cpus()
933 if (ret == -1) { in isolate_cpus()
942 return -1; in isolate_cpus()
963 str_len - curr_index, ","); in isolate_cpus()
968 index = snprintf(&str[curr_index], str_len - curr_index, "%d", in isolate_cpus()
977 debug_printf("isolated CPUs list: package:%d curr_index:%d [%s]\n", id->pkg, curr_index ,str); in isolate_cpus()
989 if (ret == -1) { in isolate_cpus()
1002 if (ret == -1) { in isolate_cpus()
1005 if (ret == -1) in isolate_cpus()
1032 fd = open("/sys/fs/cgroup/0-0-0/cpuset.cpus", O_RDONLY, 0); in cpu_0_workaround()
1038 if (len == -1) in cpu_0_workaround()
1048 fd1 = open("/sys/fs/cgroup/0-0-0/cpuset.cpus.partition", O_RDONLY, 0); in cpu_0_workaround()
1057 if (len != -1 && str[0] == 'm') { in cpu_0_workaround()
1097 err(-1, "%s open failed", pathname); in isst_fill_platform_info()
1099 if (ioctl(fd, ISST_IF_GET_PLATFORM_INFO, &isst_platform_info) == -1) { in isst_fill_platform_info()
1102 return -1; in isst_fill_platform_info()
1109 return -1; in isst_fill_platform_info()
1129 if (id->cpu < 0 || tid->cpu >= 0) in get_isst_status()
1159 tid->cpu = id->cpu; in get_isst_status()
1160 tid->pkg = id->pkg; in get_isst_status()
1161 tid->die = id->die; in get_isst_status()
1162 tid->punit = id->punit; in get_isst_status()
1171 id.cpu = -1; in isst_print_extended_platform_info()
1175 fprintf(outf, "Intel(R) SST-PP (feature perf-profile) is supported\n"); in isst_print_extended_platform_info()
1177 fprintf(outf, "Intel(R) SST-PP (feature perf-profile) is not supported\n"); in isst_print_extended_platform_info()
1187 fprintf(outf, "Intel(R) SST-TF (feature turbo-freq) is supported\n"); in isst_print_extended_platform_info()
1189 fprintf(outf, "Intel(R) SST-TF (feature turbo-freq) is not supported\n"); in isst_print_extended_platform_info()
1192 fprintf(outf, "Intel(R) SST-BF (feature base-freq) is supported\n"); in isst_print_extended_platform_info()
1194 fprintf(outf, "Intel(R) SST-BF (feature base-freq) is not supported\n"); in isst_print_extended_platform_info()
1197 fprintf(outf, "Intel(R) SST-CP (feature core-power) status is unknown\n"); in isst_print_extended_platform_info()
1202 fprintf(outf, "Intel(R) SST-CP (feature core-power) is supported\n"); in isst_print_extended_platform_info()
1204 fprintf(outf, "Intel(R) SST-CP (feature core-power) is not supported\n"); in isst_print_extended_platform_info()
1274 _get_tdp_level("get-config-levels", levels, levels, "Max TDP level", NULL, NULL);
1275 _get_tdp_level("get-config-version", levels, version, "TDP version", NULL, NULL);
1276 _get_tdp_level("get-config-enabled", levels, enabled, "perf-profile enable status", "disabled", "en…
1277 _get_tdp_level("get-config-current_level", levels, current_level,
1279 _get_tdp_level("get-lock-status", levels, locked, "TDP lock status", "unlocked", "locked");
1293 err(-1, "cannot open /proc/cpuinfo\n"); in clx_n_get_base_ratio()
1297 /* this is true for CascadeLake-N */ in clx_n_get_base_ratio()
1300 strncpy(number, begin, end - begin); in clx_n_get_base_ratio()
1319 pbf_info = &ctdp_level->pbf_info; in clx_n_config()
1320 ctdp_level->core_cpumask_size = in clx_n_config()
1321 alloc_cpu_set(&ctdp_level->core_cpumask); in clx_n_config()
1324 ctdp_level->tdp_ratio = clx_n_get_base_ratio(); in clx_n_config()
1325 if (ctdp_level->tdp_ratio == 0) { in clx_n_config()
1327 ret = -1; in clx_n_config()
1332 pbf_info->p1_high = 0; in clx_n_config()
1333 pbf_info->p1_low = ~0; in clx_n_config()
1342 CPU_SET_S(i, ctdp_level->core_cpumask_size, in clx_n_config()
1343 ctdp_level->core_cpumask); in clx_n_config()
1348 if (cpu_bf > pbf_info->p1_high) in clx_n_config()
1349 pbf_info->p1_high = cpu_bf; in clx_n_config()
1350 if (cpu_bf < pbf_info->p1_low) in clx_n_config()
1351 pbf_info->p1_low = cpu_bf; in clx_n_config()
1354 if (pbf_info->p1_high == ~0UL) { in clx_n_config()
1356 ret = -1; in clx_n_config()
1360 if (pbf_info->p1_low == 0) { in clx_n_config()
1362 ret = -1; in clx_n_config()
1367 pbf_info->p1_high = pbf_info->p1_high / 100000; in clx_n_config()
1368 pbf_info->p1_low = pbf_info->p1_low / 100000; in clx_n_config()
1371 pbf_info->core_cpumask_size = alloc_cpu_set(&pbf_info->core_cpumask); in clx_n_config()
1383 if (cpu_bf == pbf_info->p1_high) in clx_n_config()
1384 CPU_SET_S(i, pbf_info->core_cpumask_size, in clx_n_config()
1385 pbf_info->core_cpumask); in clx_n_config()
1389 ctdp_level->processed = 1; in clx_n_config()
1390 ctdp_level->pbf_support = 1; /* PBF is always supported and enabled */ in clx_n_config()
1391 ctdp_level->pbf_enabled = 1; in clx_n_config()
1392 ctdp_level->fact_support = 0; /* FACT is never supported */ in clx_n_config()
1393 ctdp_level->fact_enabled = 0; in clx_n_config()
1398 free_cpu_set(ctdp_level->core_cpumask); in clx_n_config()
1420 pbf_info = &ctdp_level->pbf_info; in dump_clx_n_config_for_cpu()
1423 free_cpu_set(ctdp_level->core_cpumask); in dump_clx_n_config_for_cpu()
1424 free_cpu_set(pbf_info->core_cpumask); in dump_clx_n_config_for_cpu()
1437 isst_display_error_info_message(1, "Failed to get perf-profile info on cpu", 1, id->cpu); in dump_isst_config_for_cpu()
1454 "including base frequency and turbo frequency configurations\n"); in dump_isst_config()
1455 fprintf(stderr, "Optional: -l|--level : Specify tdp level\n"); in dump_isst_config()
1504 isst_display_result(id, outf, "perf-profile", "set_tdp_level", ret); in set_tdp_level_for_cpu()
1505 if (force_online_offline && id->cpu >= 0) { in set_tdp_level_for_cpu()
1565 "\t Arguments: -l|--level : Specify tdp level\n"); in set_tdp_level()
1567 "\t Optional Arguments: -o | online : online/offline for the tdp level\n"); in set_tdp_level()
1600 pbf_info = &ctdp_level->pbf_info; in clx_n_dump_pbf_config_for_cpu()
1602 free_cpu_set(ctdp_level->core_cpumask); in clx_n_dump_pbf_config_for_cpu()
1603 free_cpu_set(pbf_info->core_cpumask); in clx_n_dump_pbf_config_for_cpu()
1615 isst_display_error_info_message(1, "Failed to get base-freq info at this level", 1, tdp_level); in dump_pbf_config_for_cpu()
1632 "\tArguments: -l|--level : Specify tdp level\n"); in dump_pbf_config()
1698 if (ret == -1) { in set_cpufreq_scaling_min_max()
1746 pbf_info = &ctdp_level->pbf_info; in set_clx_pbf_cpufreq_scaling_min_max()
1747 freq_high = pbf_info->p1_high * 100000; in set_clx_pbf_cpufreq_scaling_min_max()
1748 freq_low = pbf_info->p1_low * 100000; in set_clx_pbf_cpufreq_scaling_min_max()
1754 if (CPU_ISSET_S(i, pbf_info->core_cpumask_size, in set_clx_pbf_cpufreq_scaling_min_max()
1755 pbf_info->core_cpumask)) in set_clx_pbf_cpufreq_scaling_min_max()
1773 return -1; in set_cpufreq_scaling_min_max_from_cpuinfo()
1806 if (ret == -1) { in set_cpufreq_scaling_min_max_from_cpuinfo()
1819 if (id->cpu < 0) in set_scaling_min_to_cpuinfo_max()
1839 if (id->cpu < 0) in set_scaling_min_to_cpuinfo_min()
1873 return -1; in set_core_priority_and_min()
1921 if (id->cpu < 0) in set_pbf_core_power()
1989 …isst_display_error_info_message(1, "base-freq feature is not present at this level", 1, pkg_dev.cu… in set_pbf_for_cpu()
1990 ret = -1; in set_pbf_for_cpu()
2019 isst_display_result(id, outf, "base-freq", "enable", in set_pbf_for_cpu()
2022 isst_display_result(id, outf, "base-freq", "disable", in set_pbf_for_cpu()
2043 "\tOptional Arguments: -a|--auto : Use priority of cores to set core-power associations\n"); in set_pbf_enable()
2056 "\tOptional Arguments: -a|--auto : Also disable core-power associations\n"); in set_pbf_enable()
2080 isst_display_error_info_message(1, "Failed to get turbo-freq info at this level", 1, tdp_level); in dump_fact_config_for_cpu()
2093 …"Print complete Intel Speed Select Technology turbo frequency configuration for a TDP level. Other… in dump_fact_config()
2095 "\tArguments: -l|--level : Specify tdp level\n"); in dump_fact_config()
2097 "\tArguments: -b|--bucket : Bucket index to dump\n"); in dump_fact_config()
2099 "\tArguments: -r|--trl-type : Specify trl type: sse|avx2|avx512\n"); in dump_fact_config()
2127 isst_display_error_info_message(1, "Turbo mode is disabled", 0, 0); in set_fact_for_cpu()
2128 ret = -1; in set_fact_for_cpu()
2145 …isst_display_error_info_message(1, "turbo-freq feature is not present at this level", 1, pkg_dev.c… in set_fact_for_cpu()
2146 ret = -1; in set_fact_for_cpu()
2170 if (!ret && id->cpu >= 0) in set_fact_for_cpu()
2181 isst_display_result(id, outf, "turbo-freq", "enable", ret); in set_fact_for_cpu()
2187 isst_display_result(id, outf, "turbo-freq", "disable", ret); in set_fact_for_cpu()
2199 "Enable Intel Speed Select Technology Turbo frequency feature\n"); in set_fact_enable()
2201 "Optional: -t|--trl : Specify turbo ratio limit in hex starting with 0x\n"); in set_fact_enable()
2203 "\tOptional Arguments: -a|--auto : Designate specified target CPUs with"); in set_fact_enable()
2205 "-C|--cpu option as as high priority using core-power feature\n"); in set_fact_enable()
2208 "Disable Intel Speed Select Technology turbo frequency feature\n"); in set_fact_enable()
2210 "Optional: -t|--trl : Specify turbo ratio limit in hex starting with 0x\n"); in set_fact_enable()
2212 "\tOptional Arguments: -a|--auto : Also disable core-power associations\n"); in set_fact_enable()
2298 set_isst_id(&id, -1); in set_fact_enable()
2299 isst_display_result(&id, outf, "turbo-freq --auto", "enable", 0); in set_fact_enable()
2307 isst_display_result(&id, outf, "turbo-freq --auto", "enable", ret); in set_fact_enable()
2321 isst_display_error_info_message(1, "core-power not supported", 0, 0); in enable_clos_qos_config()
2334 isst_display_result(id, outf, "core-power", "enable", in enable_clos_qos_config()
2337 isst_display_result(id, outf, "core-power", "disable", in enable_clos_qos_config()
2348 "Enable core-power for a package/die\n"); in set_clos_enable()
2351 "\tClos Enable: Specify priority type with [--priority|-p]\n"); in set_clos_enable()
2356 "Disable core-power: [No command arguments are required]\n"); in set_clos_enable()
2363 "cpufreq subsystem and core-power enable will interfere with each other!\n"); in set_clos_enable()
2396 "\tArguments: [-c | --clos]: Specify clos id\n"); in dump_clos_config()
2437 fprintf(stderr, "\t Optionally specify targeted cpu id with [--cpu|-c]\n"); in dump_clos_info()
2458 if (id->cpu < 0) in set_clos_config_for_cpu()
2470 isst_display_result(id, outf, "core-power", "config", ret); in set_clos_config_for_cpu()
2477 "Set core-power configuration for one of the four clos ids\n"); in set_clos_config()
2479 "\tSpecify targeted clos id with [--clos|-c]\n"); in set_clos_config()
2481 fprintf(stderr, "\tSpecify clos EPP with [--epp|-e]\n"); in set_clos_config()
2483 "\tSpecify clos Proportional Priority [--weight|-w]\n"); in set_clos_config()
2485 fprintf(stderr, "\tSpecify clos min in MHz with [--min|-n]\n"); in set_clos_config()
2486 fprintf(stderr, "\tSpecify clos max in MHz with [--max|-m]\n"); in set_clos_config()
2535 isst_display_result(id, outf, "core-power", "assoc", ret); in set_clos_assoc_for_cpu()
2543 "\tSpecify targeted clos id with [--clos|-c]\n"); in set_clos_assoc()
2547 "\tintel-speed-select --cpu 0 core-power assoc --clos 1\n"); in set_clos_assoc()
2562 isst_display_error_info_message(1, "Invalid target cpu. Specify with [-c|--cpu]", 0, 0); in set_clos_assoc()
2583 fprintf(stderr, "\tSpecify targeted cpu id with [--cpu|-c]\n"); in get_clos_assoc()
2588 isst_display_error_info_message(1, "Invalid target cpu. Specify with [-c|--cpu]", 0, 0); in get_clos_assoc()
2603 base_freq = get_cpufreq_base_freq(id->cpu); in set_turbo_mode_for_cpu()
2604 set_cpufreq_scaling_min_max(id->cpu, 1, base_freq); in set_turbo_mode_for_cpu()
2610 isst_display_result(id, outf, "turbo-mode", "disable", 0); in set_turbo_mode_for_cpu()
2612 isst_display_result(id, outf, "turbo-mode", "enable", 0); in set_turbo_mode_for_cpu()
2623 fprintf(stderr, "Set turbo mode disable\n"); in set_turbo_mode()
2625 fprintf(stderr, "Set turbo mode enable\n"); in set_turbo_mode()
2657 if (id->cpu < 0) in get_set_trl()
2661 isst_display_error_info_message(1, "Invalid TRL. Specify with [-t|--trl]", 0, 0); in get_set_trl()
2667 isst_display_result(id, outf, "turbo-mode", "set-trl", ret); in get_set_trl()
2673 isst_display_result(id, outf, "turbo-mode", "get-trl", ret); in get_set_trl()
2682 fprintf(stderr, "Set TRL (turbo ratio limits)\n"); in process_trl()
2683 …fprintf(stderr, "\t t|--trl: Specify turbo ratio limit for setting TRL in hex starting with 0x\n"); in process_trl()
2685 fprintf(stderr, "Get TRL (turbo ratio limits)\n"); in process_trl()
2701 { "perf-profile", "info", dump_isst_config, 0 },
2702 { "base-freq", "info", dump_pbf_config, 0 },
2703 { "base-freq", "enable", set_pbf_enable, 1 },
2704 { "base-freq", "disable", set_pbf_enable, 0 },
2709 { "perf-profile", "get-lock-status", get_tdp_locked, 0 },
2710 { "perf-profile", "get-config-levels", get_tdp_levels, 0 },
2711 { "perf-profile", "get-config-version", get_tdp_version, 0 },
2712 { "perf-profile", "get-config-enabled", get_tdp_enabled, 0 },
2713 { "perf-profile", "get-config-current-level", get_tdp_current_level,
2715 { "perf-profile", "set-config-level", set_tdp_level, 0 },
2716 { "perf-profile", "info", dump_isst_config, 0 },
2717 { "base-freq", "info", dump_pbf_config, 0 },
2718 { "base-freq", "enable", set_pbf_enable, 1 },
2719 { "base-freq", "disable", set_pbf_enable, 0 },
2720 { "turbo-freq", "info", dump_fact_config, 0 },
2721 { "turbo-freq", "enable", set_fact_enable, 1 },
2722 { "turbo-freq", "disable", set_fact_enable, 0 },
2723 { "core-power", "info", dump_clos_info, 0 },
2724 { "core-power", "enable", set_clos_enable, 1 },
2725 { "core-power", "disable", set_clos_enable, 0 },
2726 { "core-power", "config", set_clos_config, 0 },
2727 { "core-power", "get-config", dump_clos_config, 0 },
2728 { "core-power", "assoc", set_clos_assoc, 0 },
2729 { "core-power", "get-assoc", get_clos_assoc, 0 },
2730 { "turbo-mode", "enable", set_turbo_mode, 0 },
2731 { "turbo-mode", "disable", set_turbo_mode, 1 },
2732 { "turbo-mode", "get-trl", process_trl, 0 },
2733 { "turbo-mode", "set-trl", process_trl, 1 },
2739 * 1,2,4..6,8-10 and set bits in cpu_subset
2750 if (*next == '-') /* no negative cpu numbers */ in parse_cpu_command()
2768 if (*next == '-') { in parse_cpu_command()
2797 …_display_error_info_message(1, "Too many CPUs in one request: max is", 1, MAX_CPUS_IN_ONE_REQ - 1); in parse_cpu_command()
2799 exit(-1); in parse_cpu_command()
2813 fprintf(stderr, "\"--cpu %s\" malformed\n", optarg); in parse_cpu_command()
2814 exit(-1); in parse_cpu_command()
2863 { "trl-type", required_argument, 0, 'r' }, in parse_cmd_args()
2881 long_options, &option_index)) != -1) { in parse_cmd_args()
2971 printf("perf-profile:\tAn architectural mechanism that allows multiple optimized \n\ in isst_help()
2975 printf("\nCommands : For feature=perf-profile\n"); in isst_help()
2979 printf("\tget-lock-status\n"); in isst_help()
2980 printf("\tget-config-levels\n"); in isst_help()
2981 printf("\tget-config-version\n"); in isst_help()
2982 printf("\tget-config-enabled\n"); in isst_help()
2983 printf("\tget-config-current-level\n"); in isst_help()
2984 printf("\tset-config-level\n"); in isst_help()
2990 printf("base-freq:\tEnables users to increase guaranteed base frequency\n\ in pbf_help()
3000 printf("turbo-freq:\tEnables the ability to set different turbo ratio\n\ in fact_help()
3002 printf("\nCommand: For feature=turbo-freq\n"); in fact_help()
3010 …printf("turbo-mode:\tEnables users to enable/disable turbo mode by adjusting frequency settings. A… in turbo_mode_help()
3013 printf("\tcommand : get-trl\n"); in turbo_mode_help()
3014 printf("\tcommand : set-trl\n"); in turbo_mode_help()
3020 printf("core-power:\tInterface that allows user to define per core/tile\n\ in core_power_help()
3022 printf("\nCommands : For feature=core-power\n"); in core_power_help()
3027 printf("\tget-config\n"); in core_power_help()
3029 printf("\tget-assoc\n"); in core_power_help()
3038 { "perf-profile", isst_help },
3039 { "base-freq", pbf_help },
3040 { "turbo-freq", fact_help },
3041 { "core-power", core_power_help },
3042 { "turbo-mode", turbo_mode_help },
3047 { "perf-profile", isst_help },
3048 { "base-freq", pbf_help },
3064 if (!strcmp(cmd, "-h") || !strcmp(cmd, "--help")) { in process_command()
3094 …fprintf(stderr, "Everything is pre-configured using BIOS options, this tool can't enable any featu… in usage()
3098 printf("intel-speed-select [OPTIONS] FEATURE COMMAND COMMAND_ARGUMENTS\n"); in usage()
3101 printf("\nFEATURE : [perf-profile|base-freq]\n"); in usage()
3103 printf("\nFEATURE : [perf-profile|base-freq|turbo-freq|core-power|turbo-mode]\n"); in usage()
3104 printf("\nFor help on each feature, use -h|--help\n"); in usage()
3105 printf("\tFor example: intel-speed-select perf-profile -h\n"); in usage()
3107 printf("\nFor additional help on each command for a feature, use --h|--help\n"); in usage()
3108 printf("\tFor example: intel-speed-select perf-profile get-lock-status -h\n"); in usage()
3109 …printf("\t\t This will print help for the command \"get-lock-status\" for the feature \"perf-profi… in usage()
3112 printf("\t[-c|--cpu] : logical cpu number\n"); in usage()
3115 printf("\t[-d|--debug] : Debug mode\n"); in usage()
3116 printf("\t[-f|--format] : output format [json|text]. Default: text\n"); in usage()
3117 printf("\t[-h|--help] : Print help\n"); in usage()
3118 printf("\t[-i|--info] : Print platform information\n"); in usage()
3119 printf("\t[-a|--all-cpus-online] : Force online every CPU in the system\n"); in usage()
3120 printf("\t[-o|--out] : Output file\n"); in usage()
3122 printf("\t[-p|--pause] : Delay between two mail box commands in milliseconds\n"); in usage()
3123 printf("\t[-r|--retry] : Retry count for mail box commands on failure, default 3\n"); in usage()
3124 printf("\t[-v|--version] : Print version\n"); in usage()
3125 …printf("\t[-b|--oob : Start a daemon to process HFI events for perf profile change from Out of Ban… in usage()
3126 printf("\t[-n|--no-daemon : Don't run as daemon. By default --oob will turn on daemon mode\n"); in usage()
3127 printf("\t[-w|--delay : Delay for reading config level state change in OOB poll mode.\n"); in usage()
3128 printf("\t[-g|--cgroupv2 : Try to use cgroup v2 CPU isolation instead of CPU online/offline.\n"); in usage()
3129 printf("\t[-u|--cpu0-workaround : Don't try to online/offline CPU0 instead use cgroup v2.\n"); in usage()
3137 printf("\t\tintel-speed-select --info\n"); in usage()
3138 printf("\tTo get full perf-profile information dump:\n"); in usage()
3139 printf("\t\tintel-speed-select perf-profile info\n"); in usage()
3140 printf("\tTo get full base-freq information dump:\n"); in usage()
3141 printf("\t\tintel-speed-select base-freq info -l 0\n"); in usage()
3143 printf("\tTo get full turbo-freq information dump:\n"); in usage()
3144 printf("\t\tintel-speed-select turbo-freq info -l 0\n"); in usage()
3164 int poll_interval = -1; in cmdline()
3169 { "all-cpus-online", no_argument, 0, 'a' }, in cmdline()
3180 { "no-daemon", no_argument, 0, 'n' }, in cmdline()
3181 { "poll-interval", required_argument, 0, 'w' }, in cmdline()
3183 { "cpu0-workaround", required_argument, 0, 'u' }, in cmdline()
3194 err(-1, "Invalid CPU model (%d)\n", cpu_model); in cmdline()
3215 &option_index)) != -1) { in cmdline()
3284 if (optind > (argc - 2) && !oob_mode) { in cmdline()