Saturday, December 04, 2021

Re: cd*.iso reboot loop (vultr, Skylake AVX MDS)

Mike Larkin <mlarkin@nested.page> wrote:

> On Sat, Dec 04, 2021 at 06:18:55PM +0000, Claus Assmann wrote:
> > Just in case someone is wondering: vultr moved the VM to a different
> > server, the system is up and running again.
> > BTW: I guess I can ignore this:
> > fd0 at fdc0 drive 1: density unknown
> >
> >
> > OpenBSD 6.9 (GENERIC) #464: Mon Apr 19 10:28:56 MDT 2021
> > deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC
> > real mem = 1056813056 (1007MB)
> > avail mem = 1009561600 (962MB)
> > random: good seed from bootblocks
> > mpath0 at root
> > scsibus0 at mpath0: 256 targets
> > mainbus0 at root
> > bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xf5940 (9 entries)
> > bios0: vendor Vultr
> > bios0: Vultr VC2
> > acpi0 at bios0: ACPI 1.0
> > acpi0: sleep states S3 S4 S5
> > acpi0: tables DSDT FACP APIC HPET WAET
> > acpi0: wakeup devices
> > acpitimer0 at acpi0: 3579545 Hz, 24 bits
> > acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
> > cpu0 at mainbus0: apid 0 (boot processor)
> > cpu0: Virtual CPU 6db7dc0e7704, 2993.33 MHz, 06-5e-03
>
> It was at this point I stopped caring about this configuration.

No kidding.

The Intel-compatible cpu landcape is pretty fucked up, in that feature
bits are missing in some generations or otherwise inaccurate. Therefore
a kernel has to someones look at the brand to narrow in on the truth and
make a logical decision. At the moment the way we do it looks like
this:

amd64/cpu.c: if (strcmp(cpu_vendor, "GenuineIntel") == 0) {
amd64/cpu.c: if (strcmp(cpu_vendor, "GenuineIntel") != 0 ||
amd64/cpu.c: if (strcmp(cpu_vendor, "GenuineIntel") == 0 &&
amd64/cpu.c: if (strcmp(cpu_vendor, "GenuineIntel") == 0 &&
amd64/identcpu.c: if (!strcmp(cpu_vendor, "GenuineIntel")) {
amd64/identcpu.c: } else if (!strcmp(cpu_vendor, "CentaurHauls")) {
amd64/identcpu.c: } else if (!strcmp(cpu_vendor, "AuthenticAMD")) {
amd64/identcpu.c: if (!strcmp(cpu_vendor, "GenuineIntel") && cpuid_level >= 0x06) {
amd64/identcpu.c: } else if (!strcmp(cpu_vendor, "AuthenticAMD")) {
amd64/identcpu.c: if (!strcmp(cpu_vendor, "AuthenticAMD")) {
amd64/identcpu.c: if (!strcmp(cpu_vendor, "AuthenticAMD")) {
amd64/identcpu.c: if (!strcmp(cpu_vendor, "GenuineIntel") &&
amd64/identcpu.c: if (!strcmp(cpu_vendor, "AuthenticAMD") &&
amd64/identcpu.c: if (!strcmp(cpu_vendor, "AuthenticAMD"))
amd64/identcpu.c: if (CPU_IS_PRIMARY(ci) && !strcmp(cpu_vendor, "CentaurHauls")) {
amd64/identcpu.c: if (strcmp(cpu_vendor, "AuthenticAMD") == 0) {
amd64/identcpu.c: } else if (strcmp(cpu_vendor, "GenuineIntel") == 0) {
amd64/identcpu.c: if (!strcmp(cpu_vendor, "GenuineIntel")) {
amd64/lapic.c: if (strcmp(cpu_vendor, "AuthenticAMD") == 0) {
amd64/mtrr.c: if (((strcmp(cpu_vendor, "GenuineIntel") == 0) ||
amd64/mtrr.c: (strcmp(cpu_vendor, "CentaurHauls") == 0) ||
amd64/mtrr.c: (strcmp(cpu_vendor, "AuthenticAMD") == 0)) &&
amd64/pctr.c: pctr_isamd = (strcmp(cpu_vendor, "AuthenticAMD") == 0);
amd64/pctr.c: pctr_isintel = (strcmp(cpu_vendor, "GenuineIntel") == 0);
amd64/tsc.c: if (!strcmp(cpu_vendor, "GenuineIntel") &&
amd64/ucode.c: if (strcmp(cpu_vendor, "GenuineIntel") == 0)

Then someone at Vultr, who is probably really proud of themselves,
disabled all those tests.

If they can so easily make a damaging decision like that without studying
real system behaviour, what else will they get wrong?

No comments:

Post a Comment