On Thu, Aug 12, 2021 at 03:01:37PM +1000, Jonathan Gray wrote:
> On Thu, Aug 12, 2021 at 06:44:51AM +0200, Theo Buehler wrote:
> > There doesn't seem to be a good reason for omitting the newlines here.
> > If those are ever hit, it will look odd. Am I missing something?
>
> See the i386 p3_get_bus_clock() which is where this came from.
> i386 prints the msr value and a newline.
>
> Wether that part is added to amd64 or removed from i386 it would be best
> to keep them in sync as much as possible.
Thanks. This syncs the print_msr code path from i386 in p3_get_bus_clock
and adds the missing newlines in est_acpi_pss_changed() in i386.
Index: sys/arch/i386/i386/est.c
===================================================================
RCS file: /cvs/src/sys/arch/i386/i386/est.c,v
retrieving revision 1.52
diff -u -p -r1.52 est.c
--- sys/arch/i386/i386/est.c 31 Mar 2018 13:45:03 -0000 1.52
+++ sys/arch/i386/i386/est.c 12 Aug 2021 05:46:12 -0000
@@ -1017,14 +1017,14 @@ est_acpi_pss_changed(struct acpicpu_pss
if ((acpilist = malloc(sizeof(struct fqlist), M_DEVBUF, M_NOWAIT))
== NULL) {
printf("est_acpi_pss_changed: cannot allocate memory for new "
- "est state");
+ "est state\n");
return;
}
if ((acpilist->table = mallocarray(npss, sizeof(struct est_op),
M_DEVBUF, M_NOWAIT)) == NULL) {
printf("est_acpi_pss_changed: cannot allocate memory for new "
- "operating points");
+ "operating points\n");
free(acpilist, M_DEVBUF, sizeof(*acpilist));
return;
}
Index: sys/arch/amd64/amd64/est.c
===================================================================
RCS file: /cvs/src/sys/arch/amd64/amd64/est.c,v
retrieving revision 1.40
diff -u -p -r1.40 est.c
--- sys/arch/amd64/amd64/est.c 11 Aug 2021 18:15:50 -0000 1.40
+++ sys/arch/amd64/amd64/est.c 12 Aug 2021 05:32:49 -0000
@@ -187,7 +187,7 @@ p3_get_bus_clock(struct cpu_info *ci)
default:
printf("%s: unknown Core FSB_FREQ value %d",
ci->ci_dev->dv_xname, bus);
- break;
+ goto print_msr;
}
break;
case 0x1c: /* Atom */
@@ -211,13 +211,20 @@ p3_get_bus_clock(struct cpu_info *ci)
default:
printf("%s: unknown Atom FSB_FREQ value %d",
ci->ci_dev->dv_xname, bus);
- break;
+ goto print_msr;
}
break;
default:
/* no FSB on modern Intel processors */
break;
}
+ return;
+print_msr:
+ /*
+ * Show the EBL_CR_POWERON MSR, so we'll at least have
+ * some extra information, such as clock ratio, etc.
+ */
+ printf(" (0x%llx)\n", rdmsr(MSR_EBL_CR_POWERON));
}
#if NACPICPU > 0
@@ -291,14 +298,14 @@ est_acpi_pss_changed(struct acpicpu_pss
if ((acpilist = malloc(sizeof(struct fqlist), M_DEVBUF, M_NOWAIT))
== NULL) {
printf("est_acpi_pss_changed: cannot allocate memory for new "
- "est state");
+ "est state\n");
return;
}
if ((acpilist->table = mallocarray(npss, sizeof(struct est_op),
M_DEVBUF, M_NOWAIT)) == NULL) {
printf("est_acpi_pss_changed: cannot allocate memory for new "
- "operating points");
+ "operating points\n");
free(acpilist, M_DEVBUF, sizeof(struct fqlist));
return;
}