Lines Matching +full:ecx +full:- +full:2000
1 // SPDX-License-Identifier: GPL-2.0
3 * Intel Speed Select -- Enumerate and control features
55 static int current_clos = -1;
56 static int clos_epp = -1;
57 static int clos_prop_prio = -1;
58 static int clos_min = -1;
59 static int clos_max = -1;
60 static int clos_desired = -1;
157 unsigned int ebx, ecx, edx; in update_cpu_model() local
160 __cpuid(1, fms, ebx, ecx, edx); in update_cpu_model()
168 /* only three CascadeLake-N models are supported */ in update_cpu_model()
177 err(-1, "cannot open /proc/cpuinfo\n"); in update_cpu_model()
227 return -1; in parse_int_file()
263 return -1; in get_stored_topology_info()
271 ret = -1; in get_stored_topology_info()
313 cpu_top.core_id = -1; in store_cpu_topology()
318 cpu_top.pkg_id = -1; in store_cpu_topology()
323 cpu_top.die_id = -1; in store_cpu_topology()
341 return -1; in get_physical_package_id()
365 return -1; in get_physical_core_id()
389 return -1; in get_physical_die_id()
418 return -1; in get_physical_punit_id()
423 return -1; in get_physical_punit_id()
428 id->cpu = cpu; in set_isst_id()
430 id->pkg = get_physical_package_id(cpu); in set_isst_id()
431 if (id->pkg >= MAX_PACKAGE_COUNT) in set_isst_id()
432 id->pkg = -1; in set_isst_id()
434 id->die = get_physical_die_id(cpu); in set_isst_id()
435 if (id->die >= MAX_DIE_PER_PACKAGE) in set_isst_id()
436 id->die = -1; in set_isst_id()
438 id->punit = get_physical_punit_id(cpu); in set_isst_id()
439 if (id->punit >= MAX_PUNIT_PER_DIE) in set_isst_id()
440 id->punit = -1; in set_isst_id()
449 if (id->pkg == tid.pkg && id->die == tid.die && id->punit == tid.punit) in is_cpu_in_power_domain()
481 if (ret == -1) in is_cpu_online()
514 err(-1, "%s open failed", buffer); in set_cpu_online_offline()
522 if (ret == -1) in set_cpu_online_offline()
550 memset(cpus, -1, sizeof(cpus)); in for_each_online_power_domain_in_set()
575 if (cpus[id.pkg][id.die][id.punit] == -1) in for_each_online_power_domain_in_set()
595 * How to check a non-cpu die for a package/die with all cpu offlined? in for_each_online_power_domain_in_set()
716 if (id->pkg < 0 || id->die < 0 || id->punit < 0) in get_cpu_count()
719 return cpu_cnt[id->pkg][id->die][id->punit]; in get_cpu_count()
738 cpu_map->punit_id = (physical_cpu >> 11) & 0x1f; in update_punit_cpu_info()
739 cpu_map->punit_cpu_core = (physical_cpu >> 3) & 0xff; in update_punit_cpu_info()
740 cpu_map->punit_cpu = physical_cpu & 0x7ff; in update_punit_cpu_info()
751 cpu_map->punit_cpu = physical_cpu & 0x1ff; in update_punit_cpu_info()
752 cpu_map->punit_cpu_core = (cpu_map->punit_cpu >> 1); // shift to get core id in update_punit_cpu_info()
758 cpu_map->punit_id = punit_id; in update_punit_cpu_info()
777 err(-1, "%s open failed", pathname); in create_cpu_map()
817 if (ioctl(fd, ISST_IF_GET_PHY_ID, &map) == -1) { in create_cpu_map()
862 if (id->cpu < 0) in set_cpu_mask_from_punit_coremask()
893 return -EINVAL; in find_phy_core_num()
915 if (ret == -1) { in enable_cpuset_controller()
931 snprintf(dir_name, sizeof(dir_name), "/sys/fs/cgroup/%d-%d-%d", id->pkg, id->die, id->punit); in isolate_cpus()
951 if (ret == -1) { in isolate_cpus()
960 return -1; in isolate_cpus()
981 str_len - curr_index, ","); in isolate_cpus()
986 index = snprintf(&str[curr_index], str_len - curr_index, "%d", in isolate_cpus()
995 debug_printf("isolated CPUs list: package:%d curr_index:%d [%s]\n", id->pkg, curr_index ,str); in isolate_cpus()
1007 if (ret == -1) { in isolate_cpus()
1020 if (ret == -1) { in isolate_cpus()
1023 if (ret == -1) in isolate_cpus()
1050 fd = open("/sys/fs/cgroup/0-0-0/cpuset.cpus", O_RDONLY, 0); in cpu_0_workaround()
1056 if (len == -1) in cpu_0_workaround()
1066 fd1 = open("/sys/fs/cgroup/0-0-0/cpuset.cpus.partition", O_RDONLY, 0); in cpu_0_workaround()
1075 if (len != -1 && str[0] == 'm') { in cpu_0_workaround()
1115 err(-1, "%s open failed", pathname); in isst_fill_platform_info()
1117 if (ioctl(fd, ISST_IF_GET_PLATFORM_INFO, &isst_platform_info) == -1) { in isst_fill_platform_info()
1120 return -1; in isst_fill_platform_info()
1127 return -1; in isst_fill_platform_info()
1147 if (id->cpu < 0 || tid->cpu >= 0) in get_isst_status()
1177 tid->cpu = id->cpu; in get_isst_status()
1178 tid->pkg = id->pkg; in get_isst_status()
1179 tid->die = id->die; in get_isst_status()
1180 tid->punit = id->punit; in get_isst_status()
1189 id.cpu = -1; in isst_print_extended_platform_info()
1193 fprintf(outf, "Intel(R) SST-PP (feature perf-profile) is supported\n"); in isst_print_extended_platform_info()
1195 fprintf(outf, "Intel(R) SST-PP (feature perf-profile) is not supported\n"); in isst_print_extended_platform_info()
1205 fprintf(outf, "Intel(R) SST-TF (feature turbo-freq) is supported\n"); in isst_print_extended_platform_info()
1207 fprintf(outf, "Intel(R) SST-TF (feature turbo-freq) is not supported\n"); in isst_print_extended_platform_info()
1210 fprintf(outf, "Intel(R) SST-BF (feature base-freq) is supported\n"); in isst_print_extended_platform_info()
1212 fprintf(outf, "Intel(R) SST-BF (feature base-freq) is not supported\n"); in isst_print_extended_platform_info()
1215 fprintf(outf, "Intel(R) SST-CP (feature core-power) status is unknown\n"); in isst_print_extended_platform_info()
1220 fprintf(outf, "Intel(R) SST-CP (feature core-power) is supported\n"); in isst_print_extended_platform_info()
1222 fprintf(outf, "Intel(R) SST-CP (feature core-power) is not supported\n"); in isst_print_extended_platform_info()
1292 _get_tdp_level("get-config-levels", levels, levels, "Max TDP level", NULL, NULL);
1293 _get_tdp_level("get-config-version", levels, version, "TDP version", NULL, NULL);
1294 _get_tdp_level("get-config-enabled", levels, enabled, "perf-profile enable status", "disabled", "en…
1295 _get_tdp_level("get-config-current_level", levels, current_level,
1297 _get_tdp_level("get-lock-status", levels, locked, "TDP lock status", "unlocked", "locked");
1311 err(-1, "cannot open /proc/cpuinfo\n"); in clx_n_get_base_ratio()
1315 /* this is true for CascadeLake-N */ in clx_n_get_base_ratio()
1318 strncpy(number, begin, end - begin); in clx_n_get_base_ratio()
1337 pbf_info = &ctdp_level->pbf_info; in clx_n_config()
1338 ctdp_level->core_cpumask_size = in clx_n_config()
1339 alloc_cpu_set(&ctdp_level->core_cpumask); in clx_n_config()
1342 ctdp_level->tdp_ratio = clx_n_get_base_ratio(); in clx_n_config()
1343 if (ctdp_level->tdp_ratio == 0) { in clx_n_config()
1345 ret = -1; in clx_n_config()
1350 pbf_info->p1_high = 0; in clx_n_config()
1351 pbf_info->p1_low = ~0; in clx_n_config()
1360 CPU_SET_S(i, ctdp_level->core_cpumask_size, in clx_n_config()
1361 ctdp_level->core_cpumask); in clx_n_config()
1366 if (cpu_bf > pbf_info->p1_high) in clx_n_config()
1367 pbf_info->p1_high = cpu_bf; in clx_n_config()
1368 if (cpu_bf < pbf_info->p1_low) in clx_n_config()
1369 pbf_info->p1_low = cpu_bf; in clx_n_config()
1372 if (pbf_info->p1_high == ~0UL) { in clx_n_config()
1374 ret = -1; in clx_n_config()
1378 if (pbf_info->p1_low == 0) { in clx_n_config()
1380 ret = -1; in clx_n_config()
1385 pbf_info->p1_high = pbf_info->p1_high / 100000; in clx_n_config()
1386 pbf_info->p1_low = pbf_info->p1_low / 100000; in clx_n_config()
1389 pbf_info->core_cpumask_size = alloc_cpu_set(&pbf_info->core_cpumask); in clx_n_config()
1401 if (cpu_bf == pbf_info->p1_high) in clx_n_config()
1402 CPU_SET_S(i, pbf_info->core_cpumask_size, in clx_n_config()
1403 pbf_info->core_cpumask); in clx_n_config()
1407 ctdp_level->processed = 1; in clx_n_config()
1408 ctdp_level->pbf_support = 1; /* PBF is always supported and enabled */ in clx_n_config()
1409 ctdp_level->pbf_enabled = 1; in clx_n_config()
1410 ctdp_level->fact_support = 0; /* FACT is never supported */ in clx_n_config()
1411 ctdp_level->fact_enabled = 0; in clx_n_config()
1416 free_cpu_set(ctdp_level->core_cpumask); in clx_n_config()
1438 pbf_info = &ctdp_level->pbf_info; in dump_clx_n_config_for_cpu()
1441 free_cpu_set(ctdp_level->core_cpumask); in dump_clx_n_config_for_cpu()
1442 free_cpu_set(pbf_info->core_cpumask); in dump_clx_n_config_for_cpu()
1455 isst_display_error_info_message(1, "Failed to get perf-profile info on cpu", 1, id->cpu); in dump_isst_config_for_cpu()
1473 fprintf(stderr, "Optional: -l|--level : Specify tdp level\n"); in dump_isst_config()
1522 isst_display_result(id, outf, "perf-profile", "set_tdp_level", ret); in set_tdp_level_for_cpu()
1523 if (force_online_offline && id->cpu >= 0) { in set_tdp_level_for_cpu()
1527 usleep(2000); in set_tdp_level_for_cpu()
1584 "\t Arguments: -l|--level : Specify tdp level\n"); in set_tdp_level()
1586 "\t Optional Arguments: -o | online : online/offline for the tdp level\n"); in set_tdp_level()
1619 pbf_info = &ctdp_level->pbf_info; in clx_n_dump_pbf_config_for_cpu()
1621 free_cpu_set(ctdp_level->core_cpumask); in clx_n_dump_pbf_config_for_cpu()
1622 free_cpu_set(pbf_info->core_cpumask); in clx_n_dump_pbf_config_for_cpu()
1634 isst_display_error_info_message(1, "Failed to get base-freq info at this level", 1, tdp_level); in dump_pbf_config_for_cpu()
1651 "\tArguments: -l|--level : Specify tdp level\n"); in dump_pbf_config()
1717 if (ret == -1) { in set_cpufreq_scaling_min_max()
1765 pbf_info = &ctdp_level->pbf_info; in set_clx_pbf_cpufreq_scaling_min_max()
1766 freq_high = pbf_info->p1_high * 100000; in set_clx_pbf_cpufreq_scaling_min_max()
1767 freq_low = pbf_info->p1_low * 100000; in set_clx_pbf_cpufreq_scaling_min_max()
1773 if (CPU_ISSET_S(i, pbf_info->core_cpumask_size, in set_clx_pbf_cpufreq_scaling_min_max()
1774 pbf_info->core_cpumask)) in set_clx_pbf_cpufreq_scaling_min_max()
1792 return -1; in set_cpufreq_scaling_min_max_from_cpuinfo()
1825 if (ret == -1) { in set_cpufreq_scaling_min_max_from_cpuinfo()
1838 if (id->cpu < 0) in set_scaling_min_to_cpuinfo_max()
1858 if (id->cpu < 0) in set_scaling_min_to_cpuinfo_min()
1892 return -1; in set_core_priority_and_min()
1940 if (id->cpu < 0) in set_pbf_core_power()
2008 …isst_display_error_info_message(1, "base-freq feature is not present at this level", 1, pkg_dev.cu… in set_pbf_for_cpu()
2009 ret = -1; in set_pbf_for_cpu()
2038 isst_display_result(id, outf, "base-freq", "enable", in set_pbf_for_cpu()
2041 isst_display_result(id, outf, "base-freq", "disable", in set_pbf_for_cpu()
2062 "\tOptional Arguments: -a|--auto : Use priority of cores to set core-power associations\n"); in set_pbf_enable()
2075 "\tOptional Arguments: -a|--auto : Also disable core-power associations\n"); in set_pbf_enable()
2099 isst_display_error_info_message(1, "Failed to get turbo-freq info at this level", 1, tdp_level); in dump_fact_config_for_cpu()
2114 "\tArguments: -l|--level : Specify tdp level\n"); in dump_fact_config()
2116 "\tArguments: -b|--bucket : Bucket index to dump\n"); in dump_fact_config()
2118 "\tArguments: -r|--trl-type : Specify trl type: sse|avx2|avx512\n"); in dump_fact_config()
2147 ret = -1; in set_fact_for_cpu()
2164 …isst_display_error_info_message(1, "turbo-freq feature is not present at this level", 1, pkg_dev.c… in set_fact_for_cpu()
2165 ret = -1; in set_fact_for_cpu()
2189 if (!ret && id->cpu >= 0) in set_fact_for_cpu()
2200 isst_display_result(id, outf, "turbo-freq", "enable", ret); in set_fact_for_cpu()
2206 isst_display_result(id, outf, "turbo-freq", "disable", ret); in set_fact_for_cpu()
2220 "Optional: -t|--trl : Specify turbo ratio limit in hex starting with 0x\n"); in set_fact_enable()
2222 "\tOptional Arguments: -a|--auto : Designate specified target CPUs with"); in set_fact_enable()
2224 "-C|--cpu option as as high priority using core-power feature\n"); in set_fact_enable()
2229 "Optional: -t|--trl : Specify turbo ratio limit in hex starting with 0x\n"); in set_fact_enable()
2231 "\tOptional Arguments: -a|--auto : Also disable core-power associations\n"); in set_fact_enable()
2317 set_isst_id(&id, -1); in set_fact_enable()
2318 isst_display_result(&id, outf, "turbo-freq --auto", "enable", 0); in set_fact_enable()
2326 isst_display_result(&id, outf, "turbo-freq --auto", "enable", ret); in set_fact_enable()
2340 isst_display_error_info_message(1, "core-power not supported", 0, 0); in enable_clos_qos_config()
2353 isst_display_result(id, outf, "core-power", "enable", in enable_clos_qos_config()
2356 isst_display_result(id, outf, "core-power", "disable", in enable_clos_qos_config()
2367 "Enable core-power for a package/die\n"); in set_clos_enable()
2370 "\tClos Enable: Specify priority type with [--priority|-p]\n"); in set_clos_enable()
2375 "Disable core-power: [No command arguments are required]\n"); in set_clos_enable()
2382 "cpufreq subsystem and core-power enable will interfere with each other!\n"); in set_clos_enable()
2415 "\tArguments: [-c | --clos]: Specify clos id\n"); in dump_clos_config()
2456 fprintf(stderr, "\t Optionally specify targeted cpu id with [--cpu|-c]\n"); in dump_clos_info()
2477 if (id->cpu < 0) in set_clos_config_for_cpu()
2489 isst_display_result(id, outf, "core-power", "config", ret); in set_clos_config_for_cpu()
2496 "Set core-power configuration for one of the four clos ids\n"); in set_clos_config()
2498 "\tSpecify targeted clos id with [--clos|-c]\n"); in set_clos_config()
2500 fprintf(stderr, "\tSpecify clos EPP with [--epp|-e]\n"); in set_clos_config()
2502 "\tSpecify clos Proportional Priority [--weight|-w]\n"); in set_clos_config()
2504 fprintf(stderr, "\tSpecify clos min in MHz with [--min|-n]\n"); in set_clos_config()
2505 fprintf(stderr, "\tSpecify clos max in MHz with [--max|-m]\n"); in set_clos_config()
2554 isst_display_result(id, outf, "core-power", "assoc", ret); in set_clos_assoc_for_cpu()
2562 "\tSpecify targeted clos id with [--clos|-c]\n"); in set_clos_assoc()
2566 "\tintel-speed-select --cpu 0 core-power assoc --clos 1\n"); in set_clos_assoc()
2581 isst_display_error_info_message(1, "Invalid target cpu. Specify with [-c|--cpu]", 0, 0); in set_clos_assoc()
2602 fprintf(stderr, "\tSpecify targeted cpu id with [--cpu|-c]\n"); in get_clos_assoc()
2607 isst_display_error_info_message(1, "Invalid target cpu. Specify with [-c|--cpu]", 0, 0); in get_clos_assoc()
2622 base_freq = get_cpufreq_base_freq(id->cpu); in set_turbo_mode_for_cpu()
2623 set_cpufreq_scaling_min_max(id->cpu, 1, base_freq); in set_turbo_mode_for_cpu()
2629 isst_display_result(id, outf, "turbo-mode", "disable", 0); in set_turbo_mode_for_cpu()
2631 isst_display_result(id, outf, "turbo-mode", "enable", 0); in set_turbo_mode_for_cpu()
2676 if (id->cpu < 0) in get_set_trl()
2680 isst_display_error_info_message(1, "Invalid TRL. Specify with [-t|--trl]", 0, 0); in get_set_trl()
2686 isst_display_result(id, outf, "turbo-mode", "set-trl", ret); in get_set_trl()
2692 isst_display_result(id, outf, "turbo-mode", "get-trl", ret); in get_set_trl()
2702 …fprintf(stderr, "\t t|--trl: Specify turbo ratio limit for setting TRL in hex starting with 0x\n"); in process_trl()
2720 { "perf-profile", "info", dump_isst_config, 0 },
2721 { "base-freq", "info", dump_pbf_config, 0 },
2722 { "base-freq", "enable", set_pbf_enable, 1 },
2723 { "base-freq", "disable", set_pbf_enable, 0 },
2728 { "perf-profile", "get-lock-status", get_tdp_locked, 0 },
2729 { "perf-profile", "get-config-levels", get_tdp_levels, 0 },
2730 { "perf-profile", "get-config-version", get_tdp_version, 0 },
2731 { "perf-profile", "get-config-enabled", get_tdp_enabled, 0 },
2732 { "perf-profile", "get-config-current-level", get_tdp_current_level,
2734 { "perf-profile", "set-config-level", set_tdp_level, 0 },
2735 { "perf-profile", "info", dump_isst_config, 0 },
2736 { "base-freq", "info", dump_pbf_config, 0 },
2737 { "base-freq", "enable", set_pbf_enable, 1 },
2738 { "base-freq", "disable", set_pbf_enable, 0 },
2739 { "turbo-freq", "info", dump_fact_config, 0 },
2740 { "turbo-freq", "enable", set_fact_enable, 1 },
2741 { "turbo-freq", "disable", set_fact_enable, 0 },
2742 { "core-power", "info", dump_clos_info, 0 },
2743 { "core-power", "enable", set_clos_enable, 1 },
2744 { "core-power", "disable", set_clos_enable, 0 },
2745 { "core-power", "config", set_clos_config, 0 },
2746 { "core-power", "get-config", dump_clos_config, 0 },
2747 { "core-power", "assoc", set_clos_assoc, 0 },
2748 { "core-power", "get-assoc", get_clos_assoc, 0 },
2749 { "turbo-mode", "enable", set_turbo_mode, 0 },
2750 { "turbo-mode", "disable", set_turbo_mode, 1 },
2751 { "turbo-mode", "get-trl", process_trl, 0 },
2752 { "turbo-mode", "set-trl", process_trl, 1 },
2758 * 1,2,4..6,8-10 and set bits in cpu_subset
2769 if (*next == '-') /* no negative cpu numbers */ in parse_cpu_command()
2787 if (*next == '-') { in parse_cpu_command()
2816 …_display_error_info_message(1, "Too many CPUs in one request: max is", 1, MAX_CPUS_IN_ONE_REQ - 1); in parse_cpu_command()
2818 exit(-1); in parse_cpu_command()
2832 fprintf(stderr, "\"--cpu %s\" malformed\n", optarg); in parse_cpu_command()
2833 exit(-1); in parse_cpu_command()
2882 { "trl-type", required_argument, 0, 'r' }, in parse_cmd_args()
2900 long_options, &option_index)) != -1) { in parse_cmd_args()
2990 printf("perf-profile:\tAn architectural mechanism that allows multiple optimized \n\ in isst_help()
2994 printf("\nCommands : For feature=perf-profile\n"); in isst_help()
2998 printf("\tget-lock-status\n"); in isst_help()
2999 printf("\tget-config-levels\n"); in isst_help()
3000 printf("\tget-config-version\n"); in isst_help()
3001 printf("\tget-config-enabled\n"); in isst_help()
3002 printf("\tget-config-current-level\n"); in isst_help()
3003 printf("\tset-config-level\n"); in isst_help()
3009 printf("base-freq:\tEnables users to increase guaranteed base frequency\n\ in pbf_help()
3019 printf("turbo-freq:\tEnables the ability to set different turbo ratio\n\ in fact_help()
3021 printf("\nCommand: For feature=turbo-freq\n"); in fact_help()
3029 …printf("turbo-mode:\tEnables users to enable/disable turbo mode by adjusting frequency settings. A… in turbo_mode_help()
3032 printf("\tcommand : get-trl\n"); in turbo_mode_help()
3033 printf("\tcommand : set-trl\n"); in turbo_mode_help()
3039 printf("core-power:\tInterface that allows user to define per core/tile\n\ in core_power_help()
3041 printf("\nCommands : For feature=core-power\n"); in core_power_help()
3046 printf("\tget-config\n"); in core_power_help()
3048 printf("\tget-assoc\n"); in core_power_help()
3057 { "perf-profile", isst_help },
3058 { "base-freq", pbf_help },
3059 { "turbo-freq", fact_help },
3060 { "core-power", core_power_help },
3061 { "turbo-mode", turbo_mode_help },
3066 { "perf-profile", isst_help },
3067 { "base-freq", pbf_help },
3083 if (!strcmp(cmd, "-h") || !strcmp(cmd, "--help")) { in process_command()
3113 …fprintf(stderr, "Everything is pre-configured using BIOS options, this tool can't enable any featu… in usage()
3117 printf("intel-speed-select [OPTIONS] FEATURE COMMAND COMMAND_ARGUMENTS\n"); in usage()
3120 printf("\nFEATURE : [perf-profile|base-freq]\n"); in usage()
3122 printf("\nFEATURE : [perf-profile|base-freq|turbo-freq|core-power|turbo-mode]\n"); in usage()
3123 printf("\nFor help on each feature, use -h|--help\n"); in usage()
3124 printf("\tFor example: intel-speed-select perf-profile -h\n"); in usage()
3126 printf("\nFor additional help on each command for a feature, use --h|--help\n"); in usage()
3127 printf("\tFor example: intel-speed-select perf-profile get-lock-status -h\n"); in usage()
3128 …printf("\t\t This will print help for the command \"get-lock-status\" for the feature \"perf-profi… in usage()
3131 printf("\t[-c|--cpu] : logical cpu number\n"); in usage()
3134 printf("\t[-d|--debug] : Debug mode\n"); in usage()
3135 printf("\t[-f|--format] : output format [json|text]. Default: text\n"); in usage()
3136 printf("\t[-h|--help] : Print help\n"); in usage()
3137 printf("\t[-i|--info] : Print platform information\n"); in usage()
3138 printf("\t[-a|--all-cpus-online] : Force online every CPU in the system\n"); in usage()
3139 printf("\t[-o|--out] : Output file\n"); in usage()
3141 printf("\t[-p|--pause] : Delay between two mail box commands in milliseconds\n"); in usage()
3142 printf("\t[-r|--retry] : Retry count for mail box commands on failure, default 3\n"); in usage()
3143 printf("\t[-v|--version] : Print version\n"); in usage()
3144 …printf("\t[-b|--oob : Start a daemon to process HFI events for perf profile change from Out of Ban… in usage()
3145 printf("\t[-n|--no-daemon : Don't run as daemon. By default --oob will turn on daemon mode\n"); in usage()
3146 printf("\t[-w|--delay : Delay for reading config level state change in OOB poll mode.\n"); in usage()
3147 printf("\t[-g|--cgroupv2 : Try to use cgroup v2 CPU isolation instead of CPU online/offline.\n"); in usage()
3148 printf("\t[-u|--cpu0-workaround : Don't try to online/offline CPU0 instead use cgroup v2.\n"); in usage()
3156 printf("\t\tintel-speed-select --info\n"); in usage()
3157 printf("\tTo get full perf-profile information dump:\n"); in usage()
3158 printf("\t\tintel-speed-select perf-profile info\n"); in usage()
3159 printf("\tTo get full base-freq information dump:\n"); in usage()
3160 printf("\t\tintel-speed-select base-freq info -l 0\n"); in usage()
3162 printf("\tTo get full turbo-freq information dump:\n"); in usage()
3163 printf("\t\tintel-speed-select turbo-freq info -l 0\n"); in usage()
3183 int poll_interval = -1; in cmdline()
3188 { "all-cpus-online", no_argument, 0, 'a' }, in cmdline()
3199 { "no-daemon", no_argument, 0, 'n' }, in cmdline()
3200 { "poll-interval", required_argument, 0, 'w' }, in cmdline()
3202 { "cpu0-workaround", required_argument, 0, 'u' }, in cmdline()
3213 err(-1, "Invalid CPU model (%d)\n", cpu_model); in cmdline()
3234 &option_index)) != -1) { in cmdline()
3303 if (optind > (argc - 2) && !oob_mode) { in cmdline()