Re: BETA5: Xen 4.19.2-pre domU crash/don't start

From: Roger Pau Monné <roger.pau_at_citrix.com>
Date: Thu, 20 Nov 2025 17:19:55 UTC
On Thu, Nov 20, 2025 at 05:35:53PM +0100, Manuel Kuklinski wrote:
> Hi!
> 
> I'm relatively new to FreeBSD and especially Xen, so please forgive any
> misunderstandings and mistakes at my side...
> 
> I upgraded from FreeBSD 14.3-RELEASE to 15.0-BETA5 and upgraded all
> ports with portmaster, doing a portsnap fetch/extract beforehand.
> 
> Reason for the prematurely upgrade were the possibility to create service
> jails in FreeBSD 15.0.
> 
> Before I upgraded all ports, I deleted all packages and set some options
> in /etc/make.conf.
> 
> On FreeBSD 14.3-RELEASE and with Xen, domUs where working perfectly fine;
> now, on FreeBSD 15.0-BETA5 I get the following error, while trying to
> create a VM:
> 
> - - - - - - - - - - 8< - - - - - - - - - -
> 
> # uname -a
> FreeBSD srv0.home.arpa 15.0-BETA5 FreeBSD 15.0-BETA5 releng/15.0-n280911-3447fc070cc2 GENERIC amd64
> 
> # pkg info | grep xen
> edk2-xen-x64-g202308_5         EDK2 Firmware for xen_x64
> xen-kernel-4.19.1.20250217     Hypervisor using a microkernel design
> xen-tools-4.19.1.20250217_1    Xen Hypervisor management tools
> 
> # cat /usr/local/etc/xen/alpine-containerlab.cfg
> type = "hvm"
> name = "alpine-containerlab"
> memory = 2048
> maxmem = 4096
> vcpus = 2
> vif = [ 'bridge=bridge0' ]
> disk = [
>         '/dev/zvol/zroot/xen/containerlab/disk0,raw,hda,rw'
>         ]
> vnc = "1"
> vnclisten = "0.0.0.0"
> serial = "pty"
> hap = "1"
> nestedhvm = "1"

Don't use nestedhvm, it doesn't work properly.  Does the VM work if
you disable the nestedhvm option?

> 
> # xl -vvv create /usr/local/etc/xen/alpine-containerlab.cfg
> Parsing config from /usr/local/etc/xen/alpine-containerlab.cfg
> libxl: debug: libxl_create.c:2122:do_domain_create: ao 0x30d2ec20140: create: how=0x0 callback=0x0 poller=0x30d2ec15050
> libxl: detail: libxl_create.c:672:libxl__domain_make: passthrough: disabled
> libxl: detail: libxl_create.c:680:libxl__domain_make: altp2m: disabled
> libxl: debug: libxl_device.c:445:libxl__device_disk_set_backend: Disk vdev=hda spec.backend=unknown specification=xen
> libxl: debug: libxl_device.c:485:libxl__device_disk_set_backend: Disk vdev=hda, using backend phy
> libxl: debug: libxl_create.c:1377:initiate_domain_create: Domain 4:running bootloader
> libxl: debug: libxl_bootloader.c:410:libxl__bootloader_run: Domain 4:not a PV/PVH domain, skipping bootloader
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec44dc8: deregister unregistered
> domainbuilder: detail: xc_dom_allocate: cmdline="", features=""
> domainbuilder: detail: xc_dom_kernel_file: filename="/usr/local/lib/xen/boot/hvmloader"
> domainbuilder: detail: xc_dom_malloc_filemap    : 170 kB
> libxl: debug: libxl_dom.c:838:libxl__load_hvm_firmware_module: Loading BIOS: /usr/local/share/seabios/bios.bin
> domainbuilder: detail: xc_dom_boot_xen_init: ver 4.19, caps xen-3.0-x86_64 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64
> domainbuilder: detail: xc_dom_parse_image: called
> domainbuilder: detail: xc_dom_find_loader: trying multiboot-binary loader ...
> domainbuilder: detail: loader probe failed
> domainbuilder: detail: xc_dom_find_loader: trying HVM-generic loader ...
> domainbuilder: detail: loader probe OK
> xc: detail: ELF: phdr: paddr=0x100000 memsz=0x2ff40
> xc: detail: ELF: memory: 0x100000 -> 0x12ff40
> domainbuilder: detail: xc_dom_compat_check: supported guest type: xen-3.0-x86_64
> domainbuilder: detail: xc_dom_compat_check: supported guest type: hvm-3.0-x86_32 <= matches
> domainbuilder: detail: xc_dom_compat_check: supported guest type: hvm-3.0-x86_32p
> domainbuilder: detail: xc_dom_compat_check: supported guest type: hvm-3.0-x86_64
> domainbuilder: detail: xc_dom_mem_init: mem 4088 MB, pages 0xff800 pages, 4k each
> domainbuilder: detail: xc_dom_mem_init: 0xff800 pages
> domainbuilder: detail: xc_dom_boot_mem_init: called
> domainbuilder: detail: range: start=0x0 end=0xf0000000
> domainbuilder: detail: range: start=0x100000000 end=0x10f800000
> xc: detail: PHYSICAL MEMORY ALLOCATION:
> xc: detail:   4KB PAGES: 0x0000000000000200
> xc: detail:   2MB PAGES: 0x00000000000003fb
> xc: detail:   1GB PAGES: 0x0000000000000002
> domainbuilder: detail: xc_dom_build_image: called
> domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 0x100+0x30 at 0x82e211000
> domainbuilder: detail: xc_dom_alloc_segment:   kernel       : 0x100000 -> 0x12ff40  (pfn 0x100 + 0x30 pages)
> xc: detail: ELF: phdr 0 at 0x82ead3000 -> 0x82eafc44c
> domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 0x130+0x40 at 0x82f1d1000
> domainbuilder: detail: xc_dom_alloc_segment:   System Firmware module : 0x130000 -> 0x170000  (pfn 0x130 + 0x40 pages)
> domainbuilder: detail: xc_dom_pfn_to_ptr_retcount: domU mapping: pfn 0x170+0x1 at 0x82faed000
> domainbuilder: detail: xc_dom_alloc_segment:   HVM start info : 0x170000 -> 0x1708a8  (pfn 0x170 + 0x1 pages)
> domainbuilder: detail: xc_dom_build_image  : virt_alloc_end : 0x171000
> domainbuilder: detail: xc_dom_build_image  : virt_pgtab_end : 0x0
> domainbuilder: detail: xc_dom_boot_image: called
> domainbuilder: detail: domain builder memory footprint
> domainbuilder: detail:    allocated
> domainbuilder: detail:       malloc             : 5848 bytes
> domainbuilder: detail:       anon mmap          : 0 bytes
> domainbuilder: detail:    mapped
> domainbuilder: detail:       file mmap          : 170 kB
> domainbuilder: detail:       domU mmap          : 452 kB
> domainbuilder: detail: vcpu_hvm: called
> domainbuilder: detail: compat_gnttab_hvm_seed: d4: pfn=0x10f800
> domainbuilder: detail: xc_dom_set_gnttab_entry: d4 gnt[0] -> d0 0xfefff
> domainbuilder: detail: xc_dom_set_gnttab_entry: d4 gnt[1] -> d0 0xfeffc
> domainbuilder: detail: xc_dom_release: called
> libxl: debug: libxl_device.c:445:libxl__device_disk_set_backend: Disk vdev=hda spec.backend=phy specification=xen
> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch w=0x30d2ec814d0 wpath=/local/domain/0/backend/vbd/4/768/state token=3/0: register slotnum=3
> libxl: debug: libxl_create.c:2161:do_domain_create: ao 0x30d2ec20140: inprogress: poller=0x30d2ec15050, flags=i
> libxl: debug: libxl_event.c:751:watchfd_callback: watch w=0x30d2ec814d0 wpath=/local/domain/0/backend/vbd/4/768/state token=3/0: event epath=/local/domain/0/backend/vbd/4/768/state
> libxl: debug: libxl_event.c:1055:devstate_callback: backend /local/domain/0/backend/vbd/4/768/state wanted state 2 still waiting state 1
> libxl: debug: libxl_event.c:751:watchfd_callback: watch w=0x30d2ec814d0 wpath=/local/domain/0/backend/vbd/4/768/state token=3/0: event epath=/local/domain/0/backend/vbd/4/768/state
> libxl: debug: libxl_event.c:1051:devstate_callback: backend /local/domain/0/backend/vbd/4/768/state wanted state 2 ok
> libxl: debug: libxl_event.c:850:libxl__ev_xswatch_deregister: watch w=0x30d2ec814d0 wpath=/local/domain/0/backend/vbd/4/768/state token=3/0: deregister slotnum=3
> libxl: debug: libxl_device.c:1181:device_backend_callback: Domain 4:calling device_backend_cleanup
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec814d0: deregister unregistered
> libxl: debug: libxl_device.c:1283:device_hotplug: Domain 4:calling hotplug script: /usr/local/etc/xen/scripts/block /local/domain/0/backend/vbd/4/768
> libxl: debug: libxl_device.c:1284:device_hotplug: Domain 4:extra args:
> libxl: debug: libxl_device.c:1290:device_hotplug: Domain 4:     add
> libxl: debug: libxl_device.c:1292:device_hotplug: Domain 4:env:
> libxl: debug: libxl_aoutils.c:593:libxl__async_exec_start: forking to execute: /usr/local/etc/xen/scripts/block /local/domain/0/backend/vbd/4/768
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec815d0: deregister unregistered
> libxl: debug: libxl_device.c:1268:device_hotplug: Domain 4:No hotplug script to execute
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec815d0: deregister unregistered
> libxl: debug: libxl_dm.c:180:libxl__domain_get_device_model_uid: Domain 4:dm_restrict disabled, starting QEMU as root
> libxl: debug: libxl_disk.c:1346:libxl__device_disk_find_local_path: Directly accessing local RAW disk /dev/zvol/zroot/xen/containerlab/disk0
> libxl: debug: libxl_dm.c:3001:libxl__spawn_local_dm: Domain 4:Spawning device-model /usr/local/lib/xen/bin/qemu-system-i386 with arguments:
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  /usr/local/lib/xen/bin/qemu-system-i386
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -xen-domid
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  4
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -no-shutdown
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -chardev
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  socket,id=libxl-cmd,path=/var/run/xen/qmp-libxl-4,server=on,wait=off
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -mon
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  chardev=libxl-cmd,mode=control
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -chardev
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  socket,id=libxenstat-cmd,path=/var/run/xen/qmp-libxenstat-4,server=on,wait=off
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -mon
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  chardev=libxenstat-cmd,mode=control
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -nodefaults
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -no-user-config
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -name
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  alpine-containerlab
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -vnc
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  0.0.0.0:0,to=99
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -display
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  none
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -serial
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  pty
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -device
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  cirrus-vga,vgamem_mb=8
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -boot
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  order=cda
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -smp
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  2,maxcpus=2
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -device
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  rtl8139,id=nic0,netdev=net0,mac=00:16:3e:57:d8:e9
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -netdev
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  type=tap,id=net0,ifname=xnb4.0-emu,br=bridge0,script=no,downscript=no
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -machine
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  xenfv,suppress-vmdesc=on
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -m
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  4088
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  -drive
> libxl: debug: libxl_dm.c:3003:libxl__spawn_local_dm: Domain 4:  file=/dev/zvol/zroot/xen/containerlab/disk0,if=ide,index=0,media=disk,format=raw,cache=writeback
> libxl: debug: libxl_dm.c:3005:libxl__spawn_local_dm: Domain 4:Spawning device-model /usr/local/lib/xen/bin/qemu-system-i386 with additional environment:
> libxl: debug: libxl_dm.c:3007:libxl__spawn_local_dm: Domain 4:  XEN_QEMU_CONSOLE_LIMIT=1048576
> libxl: debug: libxl_dm.c:3007:libxl__spawn_local_dm: Domain 4:  XEN_DOMAIN_ID=4
> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch w=0x30d2ec450c0 wpath=/local/domain/0/device-model/4/state token=3/1: register slotnum=3
> libxl: debug: libxl_event.c:751:watchfd_callback: watch w=0x30d2ec450c0 wpath=/local/domain/0/device-model/4/state token=3/1: event epath=/local/domain/0/device-model/4/state
> libxl: debug: libxl_exec.c:407:spawn_watch_event: domain 4 device model: spawn watch p=(null)
> libxl: debug: libxl_event.c:751:watchfd_callback: watch w=0x30d2ec450c0 wpath=/local/domain/0/device-model/4/state token=3/1: event epath=/local/domain/0/device-model/4/state
> libxl: debug: libxl_exec.c:407:spawn_watch_event: domain 4 device model: spawn watch p=running
> libxl: debug: libxl_event.c:850:libxl__ev_xswatch_deregister: watch w=0x30d2ec450c0 wpath=/local/domain/0/device-model/4/state token=3/1: deregister slotnum=3
> libxl: debug: libxl_exec.c:129:libxl_report_child_exitstatus: domain 4 device model (dying as expected) [45063] died due to fatal signal Killed
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec450c0: deregister unregistered
> libxl: debug: libxl_qmp.c:1884:libxl__ev_qmp_send: Domain 4: ev 0x30d2ec450d8, cmd 'query-chardev'
> libxl: debug: libxl_qmp.c:1324:qmp_ev_lock_aquired: Domain 4:Connecting to /var/run/xen/qmp-libxl-4
> libxl: debug: libxl_qmp.c:1702:qmp_ev_handle_message: Domain 4:QEMU version: 8.0.4
> libxl: debug: libxl_qmp.c:1884:libxl__ev_qmp_send: Domain 4: ev 0x30d2ec450d8, cmd 'query-vnc'
> libxl: debug: libxl_qmp.c:1920:libxl__ev_qmp_dispose: Domain 4: ev 0x30d2ec450d8
> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch w=0x30d2ec81cd0 wpath=/local/domain/0/backend/vif/4/0/state token=3/2: register slotnum=3
> libxl: debug: libxl_event.c:751:watchfd_callback: watch w=0x30d2ec81cd0 wpath=/local/domain/0/backend/vif/4/0/state token=3/2: event epath=/local/domain/0/backend/vif/4/0/state
> libxl: debug: libxl_event.c:1055:devstate_callback: backend /local/domain/0/backend/vif/4/0/state wanted state 2 still waiting state 1
> libxl: debug: libxl_event.c:751:watchfd_callback: watch w=0x30d2ec81cd0 wpath=/local/domain/0/backend/vif/4/0/state token=3/2: event epath=/local/domain/0/backend/vif/4/0/state
> libxl: debug: libxl_event.c:1051:devstate_callback: backend /local/domain/0/backend/vif/4/0/state wanted state 2 ok
> libxl: debug: libxl_event.c:850:libxl__ev_xswatch_deregister: watch w=0x30d2ec81cd0 wpath=/local/domain/0/backend/vif/4/0/state token=3/2: deregister slotnum=3
> libxl: debug: libxl_device.c:1181:device_backend_callback: Domain 4:calling device_backend_cleanup
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec81cd0: deregister unregistered
> libxl: debug: libxl_device.c:1283:device_hotplug: Domain 4:calling hotplug script: /usr/local/etc/xen/scripts/vif-bridge /local/domain/0/backend/vif/4/0
> libxl: debug: libxl_device.c:1284:device_hotplug: Domain 4:extra args:
> libxl: debug: libxl_device.c:1290:device_hotplug: Domain 4:     add
> libxl: debug: libxl_device.c:1292:device_hotplug: Domain 4:env:
> libxl: debug: libxl_device.c:1299:device_hotplug: Domain 4:     iface_dev: xnb4.0
> libxl: debug: libxl_device.c:1299:device_hotplug: Domain 4:     emulated: 0
> libxl: debug: libxl_aoutils.c:593:libxl__async_exec_start: forking to execute: /usr/local/etc/xen/scripts/vif-bridge /local/domain/0/backend/vif/4/0
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec81dd0: deregister unregistered
> libxl: debug: libxl_device.c:1283:device_hotplug: Domain 4:calling hotplug script: /usr/local/etc/xen/scripts/vif-bridge /local/domain/0/backend/vif/4/0
> libxl: debug: libxl_device.c:1284:device_hotplug: Domain 4:extra args:
> libxl: debug: libxl_device.c:1290:device_hotplug: Domain 4:     add
> libxl: debug: libxl_device.c:1292:device_hotplug: Domain 4:env:
> libxl: debug: libxl_device.c:1299:device_hotplug: Domain 4:     iface_dev: xnb4.0-emu
> libxl: debug: libxl_device.c:1299:device_hotplug: Domain 4:     emulated: 1
> libxl: debug: libxl_aoutils.c:593:libxl__async_exec_start: forking to execute: /usr/local/etc/xen/scripts/vif-bridge /local/domain/0/backend/vif/4/0
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec81dd0: deregister unregistered
> libxl: debug: libxl_device.c:1268:device_hotplug: Domain 4:No hotplug script to execute
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec81dd0: deregister unregistered
> libxl: debug: libxl_event.c:813:libxl__ev_xswatch_register: watch w=0x30d2ec467d0 wpath=/local/domain/4/console/tty token=3/3: register slotnum=3
> libxl: debug: libxl_event.c:751:watchfd_callback: watch w=0x30d2ec467d0 wpath=/local/domain/4/console/tty token=3/3: event epath=/local/domain/4/console/tty
> libxl: debug: libxl_event.c:2413:libxl__ao_progress_report: ao 0x30d2ec20140: progress report: callback queued aop=0x30d2f602190
> libxl: debug: libxl_event.c:850:libxl__ev_xswatch_deregister: watch w=0x30d2ec467d0 wpath=/local/domain/4/console/tty token=3/3: deregister slotnum=3
> libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec467d0: deregister unregistered
> libxl: debug: libxl_event.c:2067:libxl__ao_complete: ao 0x30d2ec20140: complete, rc=0
> libxl: debug: libxl_event.c:1598:egc_run_callbacks: ao 0x30d2ec20140: progress report: callback aop=0x30d2f602190
> libxl: debug: libxl_event.c:2036:libxl__ao__destroy: ao 0x30d2ec20140: destroy
> libxl: debug: libxl_domain.c:700:libxl_domain_unpause: Domain 4:ao 0x30d2ec20140: create: how=0x0 callback=0x0 poller=0x30d2ec15050
>                                                                                                                                    libxl: debug: libxl_qmp.c:1884:libxl__ev_qmp_send: Domain 4: ev 0x30d2ec82028, cmd 'cont'
>                                libxl: debug: libxl_qmp.c:1324:qmp_ev_lock_aquired: Domain 4:Connecting to /var/run/xen/qmp-libxl-4
>                                                                                                                                   libxl: debug: libxl_domain.c:708:libxl_domain_unpause: Domain 4:ao 0x30d2ec20140: inprogress: poller=0x30d2ec15050, flags=i
>                                                                 libxl: debug: libxl_qmp.c:1702:qmp_ev_handle_message: Domain 4:QEMU version: 8.0.4
>                                                                                                                                                   libxl: debug: libxl_qmp.c:1920:libxl__ev_qmp_dispose: Domain 4: ev 0x30d2ec82028
>                                      libxl: debug: libxl_event.c:863:libxl__ev_xswatch_deregister: watch w=0x30d2ec82198: deregister unregistered
>                                                                                                                                                  libxl: debug: libxl_event.c:2067:libxl__ao_complete: ao 0x30d2ec20140: complete, rc=0
>                                          libxl: debug: libxl_event.c:2036:libxl__ao__destroy: ao 0x30d2ec20140: destroy
>                                                                                                                        xencall:buffer: debug: total allocations:640 total releases:640
> xencall:buffer: debug: current allocations:0 maximum allocations:3
> xencall:buffer: debug: cache current size:3
> xencall:buffer: debug: cache hits:626 misses:3 toobig:11
> xencall:buffer: debug: total allocations:0 total releases:0
> xencall:buffer: debug: current allocations:0 maximum allocations:0
> xencall:buffer: debug: cache current size:0
> xencall:buffer: debug: cache hits:0 misses:0 toobig:0
> 
> # xl dmesg
> [...]
> (d4) Invoking SeaBIOS ...
> (XEN) MMIO emulation failed (1): d4v0 Real @ ea00:eff16000 ->

This seems concerning.  Don't you get more output here that contains
the instruction stream that failed to emulate?

Are you using a custom build of SeaBIOS?

Maybe the newer build of SeaBIOS is broken, possibly a result of the
update of the default GCC version to use.

You could try to resort to fetching a build of SeaBIOS from 14.3 ports
tree, if that makes a difference?  SeaBIOS is just a binary blob, so
doesn't have any dependency on where it's built.  You could even
pickup a SeaBIOS blob built on Linux and place it in
/usr/local/share/seabios/bios.bin.

> (XEN) d4v0 VMRESUME error: 0x7

According to the SDM this is:

"VM entry with invalid control field(s)"

Which could be caused by the guest attempting to enable the
virtualization extensions inside the VM, and thus corrupting the VM
state.

I haven't checked the control fields dumped below for sanity, because
it's a pain to do it manually.  We should add an automatic checker in
Xen that points out the incompatibilities, but alas.

Let me know if removing `nestedhvm=1` from the xl.cfg file solves the
issue.  Or attempting to boot with a good know version of SeaBIOS,
I've uploaded my current SeaBIOS build to:

https://people.freebsd.org/~royger/bios.bin

If you want to give it a try.  You should just copy it to
/usr/local/share/seabios/bios.bin replacing your existing build.

If none of those work, have you done any code modifications to Xen
that could explain the errors?

Regards, Roger.