Commit fb5ceca0 authored by Patryk Wlazlyn's avatar Patryk Wlazlyn Committed by Len Brown
Browse files

tools/power turbostat: Print ucode revision only if valid



If the MSR read were to fail, turbostat would print "microcode 0x0"

Signed-off-by: default avatarPatryk Wlazlyn <patryk.wlazlyn@linux.intel.com>
Reviewed-by: default avatarLen Brown <len.brown@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent bb6181fa
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -5679,6 +5679,7 @@ void process_cpuid()
	unsigned int eax, ebx, ecx, edx;
	unsigned int fms, family, model, stepping, ecx_flags, edx_flags;
	unsigned long long ucode_patch = 0;
	bool ucode_patch_valid = false;

	eax = ebx = ecx = edx = 0;

@@ -5708,6 +5709,8 @@ void process_cpuid()

	if (get_msr(sched_getcpu(), MSR_IA32_UCODE_REV, &ucode_patch))
		warnx("get_msr(UCODE)");
	else
		ucode_patch_valid = true;

	/*
	 * check max extended function levels of CPUID.
@@ -5718,9 +5721,12 @@ void process_cpuid()
	__cpuid(0x80000000, max_extended_level, ebx, ecx, edx);

	if (!quiet) {
		fprintf(outf, "CPUID(1): family:model:stepping 0x%x:%x:%x (%d:%d:%d) microcode 0x%x\n",
			family, model, stepping, family, model, stepping,
			(unsigned int)((ucode_patch >> 32) & 0xFFFFFFFF));
		fprintf(outf, "CPUID(1): family:model:stepping 0x%x:%x:%x (%d:%d:%d)",
			family, model, stepping, family, model, stepping);
		if (ucode_patch_valid)
			fprintf(outf, " microcode 0x%x", (unsigned int)((ucode_patch >> 32) & 0xFFFFFFFF));
		fputc('\n', outf);

		fprintf(outf, "CPUID(0x80000000): max_extended_levels: 0x%x\n", max_extended_level);
		fprintf(outf, "CPUID(1): %s %s %s %s %s %s %s %s %s %s\n",
			ecx_flags & (1 << 0) ? "SSE3" : "-",