[Bug 282927] bhyve: recent Arch Linux Live ISO crash

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 23 Nov 2024 05:21:36 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282927

            Bug ID: 282927
           Summary: bhyve: recent Arch Linux Live ISO crash
           Product: Base System
           Version: Unspecified
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: 2khramtsov@gmail.com

Host: Zen 3 (AMD Ryzen 5600G), base e8263ace39c8

Various parts of guest boot process, as well as starting python3.12 from
prompt, all commonly fail with this in Guest Linux dmesg:

[   22.516086] Code: 8b f0 ff 48 89 da 4c 89 f3 4c 8b b5 68 ef ff ff e9 cf 8a
f0 ff 66 0f 1f 44 00 00 f3 0f 1e fa 55 48 89 e5 41 54 53 4c 8b 67 10 <48> 8b 5e
10 0f b6 46 20 49 39 dc 48 89 da 49 0f 4e d4 a8 20 0f 84

"f3 0f 1e fa" is ENDBR64 (IBT).

CET is on in host CPUID, off in guest CPUID. IBT isn't supported by CPU and is
off everywhere, though ENDBR64 should be handled similar to a NOP.

GCC 8 seems to generate endbrXX by default (see
https://stackoverflow.com/a/69226244), so I have no idea if this is ENDBR64
related or not. ENDBR64 handling as a reason is only my uneducated guess.

I start my VM with:

#!/bin/sh

UEFI=/usr/local/share/uefi-firmware/BHYVE_UEFI.fd
MEM=2G
VM="repro"
IF="$(ifconfig tap create up)"
DPY="w=1920,h=1080"

ifconfig bridge0 addm $IF up

while true ; do
        bhyve \
                -S -H \
                -s 0,amd_hostbridge \
                -s 2,ahci-cd,/tmp/archlinux-2024.11.01-x86_64.iso \
                -s 10,virtio-net,$IF \
                -s 29,fbuf,tcp=[::1]:5900,$DPY \
                -s 31,lpc \
                -l bootrom,$UEFI \
                -m $MEM \
                $VM
        RES=$?
        bhyvectl --destroy --vm=$VM
        if [ $RES -eq 1 ] ; then
                ifconfig $IF destroy
                exit 1
        fi
        sleep 1
done

-- 
You are receiving this mail because:
You are the assignee for the bug.