History

tools/power turbostat: Print cpuidle information

Print cpuidle driver and governor.

Len Brown committed 6 years ago

Commit abdcbdb1 parent fcaa6811 file · +26 −0Browse files

Unified · Split

tools/power/x86/turbostat/turbostat.c+26−0
@@ -3503,6 +3503,23 @@ dump_cstate_pstate_config_info(unsigned int family, unsigned int model) · 3502 unmodified lines
3503 dump_nhm_cst_cfg();3503 dump_nhm_cst_cfg();
3504}3504}
3505 3505
3506static void dump_sysfs_file(char *path)
3507{
3508 FILE *input;
3509 char cpuidle_buf[64];
3510
3511 input = fopen(path, "r");
3512 if (input == NULL) {
3513 if (debug)
3514 fprintf(outf, "NSFOD %s\n", path);
3515 return;
3516 }
3517 if (!fgets(cpuidle_buf, sizeof(cpuidle_buf), input))
3518 err(1, "%s: failed to read file", path);
3519 fclose(input);
3520
3521 fprintf(outf, "%s: %s", strrchr(path, '/') + 1, cpuidle_buf);
3522}
3506static void3523static void
3507dump_sysfs_cstate_config(void)3524dump_sysfs_cstate_config(void)
3508{3525{
@@ -3516,6 +3533,15 @@ dump_sysfs_cstate_config(void) · 7 unmodified lines
3516 if (!DO_BIC(BIC_sysfs))3533 if (!DO_BIC(BIC_sysfs))
3517 return;3534 return;
3518 3535
3536 if (access("/sys/devices/system/cpu/cpuidle", R_OK)) {
3537 fprintf(outf, "cpuidle not loaded\n");
3538 return;
3539 }
3540
3541 dump_sysfs_file("/sys/devices/system/cpu/cpuidle/current_driver");
3542 dump_sysfs_file("/sys/devices/system/cpu/cpuidle/current_governor");
3543 dump_sysfs_file("/sys/devices/system/cpu/cpuidle/current_governor_ro");
3544
3519 for (state = 0; state < 10; ++state) {3545 for (state = 0; state < 10; ++state) {
3520 3546
3521 sprintf(path, "/sys/devices/system/cpu/cpu%d/cpuidle/state%d/name",3547 sprintf(path, "/sys/devices/system/cpu/cpu%d/cpuidle/state%d/name",

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t