On 12.12.2019 17:38, Maxime Villard wrote:
Le 12/12/2019 à 16:34, Valery Ushakov a écrit :
On Thu, Dec 12, 2019 at 06:47:50 +0100, Bodie wrote:
On 11.12.2019 23:32, Valery Ushakov wrote:
On Wed, Dec 11, 2019 at 23:15:38 +0100, Bodie wrote:
FYI https://www.virtualbox.org/ticket/19146
Not possible to boot installer of NetBSD 9.0RC1. cc me as I am not
subscribed to list.
CPUID values are ... = guest (host):
IBRS_IBPB - IA32_SPEC_CTRL.IBRS and IA32_PRED_CMD.IBPB = 0 (1)
STIBP - Supports IA32_SPEC_CTRL.STIBP = 0 (1)
SSBD - Supports IA32_SPEC_CTRL.SSBD = 0 (1)
so the NetBSD guest is told the cpu doesn't support IA32_SPEC_CTRL
(0x48),
but still the guest tries to read it:
NetBSD 8.1 STABLE amd64 on same configuration with same values boots
just fine and works.
Right, b/c NetBSD 8 doesn't read that nonexistent MSR.
00:00:11.518912 IEM: rdmsr(0x48) -> #GP(0)
00:00:11.518920 Changing the VM state from 'RUNNING' to
'GURU_MEDITATION'
00:00:11.520158 CPUM0: 0008:ffffffff8022714b 0f 32
rdmsr
This is mitigation_v2_apply_cpu(), V2_MITIGATION_INTEL_ENHANCED_IBRS
case it seems, so either the kernel misdetects the mitigation variant
to use, or vbox doesnt' scrub host capabilities enough. Someone with
the clue should look at the VBox.log (it has the cpuinfo dump).
-uwe
The CPU has
CPUID.IBRS = 1
CPUID.STIBP = 1
ARCH_CAP.IBRS_ALL = 1
VirtualBox only clears the CPUID:
CPUID.IBRS = 0
CPUID.STIBP = 0
ARCH_CAP.IBRS_ALL = 1
NetBSD sees ARCH_CAP.IBRS_ALL == 1, and tries to use the SPEC_CTRL MSR,
which
faults.
Technically, NetBSD is not wrong, because you cannot have
ARCH_CAP.IBRS_ALL set
to one and CPUID.IBRS/STIBP set to zero. Still, I will add a check on
the
CPUIDs.
Once there will be some daily build to check I can do that of course.
Meanwhile VirtualBox should be fixed not to report ARCH_CAP.IBRS_ALL,
because
this is technically incorrect.
yeah it may take a while I fear
Maxime