ACK: [PATCH] cpu: msr: tidy up output and tidy up source (LP: #1253684)
IvanHu
ivan.hu at canonical.com
Fri Dec 6 13:07:36 UTC 2013
On 11/21/2013 11:45 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> This patch tidies up the MSR test output and removes some
> unnecessarity information on the pass output to make it more
> readable.
>
> I've used this opportunity to also tidy up the source a little
> bit.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
> src/cpu/msr/msr.c | 58 +++++++++++++++++++++++++------------------------------
> 1 file changed, 26 insertions(+), 32 deletions(-)
>
> diff --git a/src/cpu/msr/msr.c b/src/cpu/msr/msr.c
> index e87fc66..c4d3e2f 100644
> --- a/src/cpu/msr/msr.c
> +++ b/src/cpu/msr/msr.c
> @@ -22,7 +22,7 @@
>
> #ifdef FWTS_ARCH_INTEL
>
> -typedef void (*msr_callback_check)(fwts_framework *fw, uint64_t val);
> +typedef void (*msr_callback_check)(fwts_framework *fw, const uint64_t val);
>
> static int ncpus;
> static bool intel_cpu;
> @@ -80,15 +80,15 @@ static int msr_deinit(fwts_framework *fw)
> static int msr_consistent(const uint32_t msr,
> const int shift,
> const uint64_t mask,
> - uint64_t *vals,
> - int *inconsistent_count,
> - bool *inconsistent)
> + uint64_t *const vals,
> + int *const inconsistent_count,
> + bool *const inconsistent)
> {
> int cpu;
>
> *inconsistent_count = 0;
>
> - for (cpu=0; cpu<ncpus; cpu++) {
> + for (cpu = 0; cpu < ncpus; cpu++) {
> uint64_t val;
> if (fwts_cpu_readmsr(cpu, msr, &val) != FWTS_OK) {
> return FWTS_ERROR;
> @@ -98,7 +98,7 @@ static int msr_consistent(const uint32_t msr,
> vals[cpu] = val;
> }
>
> - for (cpu=0; cpu<ncpus; cpu++) {
> + for (cpu = 0; cpu < ncpus; cpu++) {
> if (vals[0] != vals[cpu]) {
> (*inconsistent_count)++;
> inconsistent[cpu] = true;
> @@ -111,7 +111,7 @@ static int msr_consistent(const uint32_t msr,
>
> static int msr_consistent_check(fwts_framework *fw,
> const fwts_log_level level,
> - const char *msr_name,
> + const char *const msr_name,
> const uint32_t msr,
> const int shift,
> const uint64_t mask,
> @@ -131,37 +131,33 @@ static int msr_consistent_check(fwts_framework *fw,
> free(vals);
> return FWTS_ERROR;
> }
> -
> if (msr_consistent(msr, shift, mask,
> vals, &inconsistent_count, inconsistent) != FWTS_OK) {
> - //fwts_log_info(fw, "Cannot read MSR %s (0x%x).", msr_name, msr);
> free(inconsistent);
> free(vals);
> return FWTS_ERROR;
> }
> -
> if (inconsistent_count > 0) {
> fwts_failed(fw, level, "MSRCPUsInconsistent",
> - "MSR %s (0x%" PRIx32 ") has %d inconsistent values across "
> - "%d CPUs for (shift: %d mask: 0x%" PRIx64 ").",
> - msr_name, msr, inconsistent_count,
> + "MSR 0x%8.8" PRIx32 " %s has %d inconsistent values across "
> + "%d CPUs (shift: %d mask: 0x%" PRIx64 ").",
> + msr, msr_name, inconsistent_count,
> ncpus, shift, mask);
>
> - for (cpu=1; cpu<ncpus; cpu++) {
> + for (cpu = 1; cpu < ncpus; cpu++) {
> if (inconsistent[cpu])
> fwts_log_info(fw, "MSR CPU 0 -> 0x%" PRIx64
> " vs CPU %d -> 0x%" PRIx64,
> vals[0], cpu, vals[cpu]);
> }
> } else {
> - fwts_passed(fw, "MSR %s (0x%" PRIx32 ") (mask:%" PRIx64 ") "
> - "was consistent across %d CPUs.",
> - msr_name, msr, mask, ncpus);
> + fwts_passed(fw, "MSR 0x%8.8" PRIx32 " %s "
> + "is consistent across %d CPUs.",
> + msr, msr_name, ncpus);
> if (callback)
> callback(fw, vals[0]);
> }
>
> -
> free(inconsistent);
> free(vals);
>
> @@ -179,13 +175,12 @@ static int msr_pstate_ratios(fwts_framework *fw)
> return FWTS_OK;
> }
>
> -static void msr_c1_c3_autodemotion_check(fwts_framework *fw, uint64_t val)
> +static void msr_c1_c3_autodemotion_check(fwts_framework *fw, const uint64_t val)
> {
> fwts_log_info(fw, "C1 and C3 Autodemotion %s.",
> val == 3 ? "enabled" : "disabled");
> }
>
> -
> static int msr_c1_c3_autodemotion(fwts_framework *fw)
> {
> if (intel_cpu) {
> @@ -247,7 +242,7 @@ static int msr_smrr(fwts_framework *fw)
> }
>
> typedef struct {
> - const char *name;
> + const char *const name;
> const uint32_t msr;
> const int shift;
> const uint64_t mask;
> @@ -256,7 +251,7 @@ typedef struct {
>
>
> /* From AMD Architecture Programmer's Manual, Volume 2: System Programming, Appending A */
> -static msr_info AMD_MSRs[] = {
> +static const msr_info AMD_MSRs[] = {
> { "MTRRCAP", 0x000000fe, 0, 0xfffULL, NULL },
> { "SYSENTER_CS", 0x00000174, 0, 0xffffULL, NULL },
> { "SYSENTER_ESP", 0x00000175, 0, ~0, NULL },
> @@ -327,11 +322,11 @@ static msr_info AMD_MSRs[] = {
> { NULL, 0x00000000, 0, 0 , NULL }
> };
>
> -static msr_info IA32_MSRs[] = {
> - //{ "P5_MC_ADDR", 0x00000000, 0, ~0, NULL },
> +static const msr_info IA32_MSRs[] = {
> + //{ "P5_MC_ADDR", 0x00000000, 0, ~0, NULL },
> { "P5_MC_TYPE", 0x00000001, 0, ~0, NULL },
> { "MONITOR_FILTER_SIZE",0x00000006, 0, ~0, NULL },
> - //{ "TIME_STAMP_COUNTER", 0x00000010, 0, ~0, NULL },
> + //{ "TIME_STAMP_COUNTER",0x00000010, 0, ~0, NULL },
> { "PLATFORM_ID", 0x00000017, 0, 0x1c000000000000ULL, NULL },
> { "EBL_CR_POWERON", 0x0000002a, 0, ~0, NULL },
> { "APIC_BASE", 0x0000001b, 0, 0xfffffffffffffeffULL, NULL },
> @@ -444,7 +439,7 @@ static msr_info IA32_MSRs[] = {
> { NULL, 0x00000000, 0, 0 , NULL },
> };
>
> -static msr_info IA32_atom_MSRs[] = {
> +static const msr_info IA32_atom_MSRs[] = {
> { "BIOS_UPDT_TRIG", 0x00000079, 0, ~0, NULL },
> { "BIOS_SIGN_ID", 0x0000008b, 0, ~0, NULL },
> { "MSR_FSB_FREQ", 0x000000cd, 0, 0x7ULL, NULL },
> @@ -470,7 +465,7 @@ static msr_info IA32_atom_MSRs[] = {
> { NULL, 0x00000000, 0, 0 , NULL },
> };
>
> -static msr_info IA32_nehalem_MSRs[] = {
> +static const msr_info IA32_nehalem_MSRs[] = {
> { "BIOS_UPDT_TRIG", 0x00000079, 0, ~0, NULL },
> { "MSR_PLATFORM_INFO", 0x000000ce, 0, 0xff003001ff00ULL, NULL },
> { "MSR_PKG_CST_CONFIG_CONTROL", 0x000000e2, 0, 0x7008407ULL, NULL },
> @@ -485,7 +480,7 @@ static msr_info IA32_nehalem_MSRs[] = {
> { NULL, 0x00000000, 0, 0 , NULL },
> };
>
> -static msr_info IA32_sandybridge_MSRs[] = {
> +static const msr_info IA32_sandybridge_MSRs[] = {
> { "BIOS_UPDT_TRIG", 0x00000079, 0, ~0, NULL },
> { "BIOS_SIGN_ID", 0x0000008b, 0, ~0, NULL },
> { "MSR_PLATFORM_INFO", 0x000000ce, 0, 0xff003001ff00ULL, NULL },
> @@ -508,11 +503,11 @@ static msr_info IA32_sandybridge_MSRs[] = {
> { NULL, 0x00000000, 0, 0 , NULL },
> };
>
> -static int msr_table_check(fwts_framework *fw, msr_info *info)
> +static int msr_table_check(fwts_framework *fw, const msr_info *const info)
> {
> int i;
>
> - for (i=0; info[i].name != NULL; i++)
> + for (i = 0; info[i].name != NULL; i++)
> msr_consistent_check(fw, LOG_LEVEL_MEDIUM,
> info[i].name, info[i].msr, info[i].shift, info[i].mask, info[i].callback);
>
> @@ -550,7 +545,7 @@ static int msr_cpu_specific(fwts_framework *fw)
> msr_table_check(fw, IA32_atom_MSRs);
> break;
> case 0x2A: /* Sandybridge */
> - case 0x2D: /* Ssandybridge Xeon */
> + case 0x2D: /* Sandybridge Xeon */
> msr_table_check(fw, IA32_sandybridge_MSRs);
> break;
> default:
> @@ -563,7 +558,6 @@ static int msr_cpu_specific(fwts_framework *fw)
> return FWTS_OK;
> }
>
> -
> static fwts_framework_minor_test msr_tests[] = {
> { msr_cpu_generic, "Test CPU generic MSRs." },
> { msr_cpu_specific, "Test CPU specific model MSRs." },
>
Acked-by: Ivan Hu <ivan.hu at canonical.com>
More information about the fwts-devel
mailing list