Commit 03331233 authored by Chen Yu's avatar Chen Yu Committed by Len Brown

tools/power turbostat: print the kernel boot commandline

It would be handy to have cmdline in turbostat output. For example,
according to the turbostat output, there are no C-states requested.
In this case the user is very curious if something like
intel_idle.max_cstate=0 was used, or may be idle=none too. It is
also curious whether things like intel_pstate=nohwp were used.

Print the boot command line accordingly:
turbostat version 21.05.04 - Len Brown <lenb@kernel.org>
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.16.0+ root=UUID=
 b42359ed-1e05-42eb-8757-6bf2a1c19070 ro quiet splash vt.handoff=7
Suggested-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: default avatarChen Yu <yu.c.chen@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent fb5e29df
...@@ -6132,6 +6132,29 @@ void print_version() ...@@ -6132,6 +6132,29 @@ void print_version()
fprintf(outf, "turbostat version 2022.04.16 - Len Brown <lenb@kernel.org>\n"); fprintf(outf, "turbostat version 2022.04.16 - Len Brown <lenb@kernel.org>\n");
} }
#define COMMAND_LINE_SIZE 2048
void print_bootcmd(void)
{
char bootcmd[COMMAND_LINE_SIZE];
FILE *fp;
int ret;
memset(bootcmd, 0, COMMAND_LINE_SIZE);
fp = fopen("/proc/cmdline", "r");
if (!fp)
return;
ret = fread(bootcmd, sizeof(char), COMMAND_LINE_SIZE - 1, fp);
if (ret) {
bootcmd[ret] = '\0';
/* the last character is already '\n' */
fprintf(outf, "Kernel command line: %s", bootcmd);
}
fclose(fp);
}
int add_counter(unsigned int msr_num, char *path, char *name, int add_counter(unsigned int msr_num, char *path, char *name,
unsigned int width, enum counter_scope scope, unsigned int width, enum counter_scope scope,
enum counter_type type, enum counter_format format, int flags) enum counter_type type, enum counter_format format, int flags)
...@@ -6603,8 +6626,10 @@ int main(int argc, char **argv) ...@@ -6603,8 +6626,10 @@ int main(int argc, char **argv)
outf = stderr; outf = stderr;
cmdline(argc, argv); cmdline(argc, argv);
if (!quiet) if (!quiet) {
print_version(); print_version();
print_bootcmd();
}
probe_sysfs(); probe_sysfs();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment