I’ve been running the official Home Assistant OS (.qcow2 image) as a VM on Proxmox 8.4.1 for over a year without major issues — until recently.
I regularly apply Home Assistant updates as they’re released. Over the past few months, however, I’ve noticed the HAOS VM becoming unresponsive. Proxmox then marks the VM with an “internal error” status. In this state, the Home Assistant web interface and CLI are unresponsive and all internal operations are halted.
This time I investigated a little more instead of just restarting the VM.
Symptoms
Proxmox logs show:
qmp command 'guest-ping' failed - got timeout
This message indicates the root of the internal error: Proxmox is unable to communicate with the VM’s QEMU guest agent.
More helpful insight came from dmesg on the Proxmox host:
x86/split lock detection: #AC: CPU 1/KVM/3302738 took a split_lock trap at address: 0xbff4b050
This suggests the Home Assistant VM (in my case, running HAOS 15.2) is triggering a split lock, which causes a CPU-level trap — likely halting VM performance.
What Is a Split Lock?
from linux kernel docs section 26.1
A split lock occurs when an atomic memory operation spans two cache lines. This is inefficient and often indicates a misaligned memory access.
On modern Intel CPUs (especially 10th-gen and newer), split locks are treated as fatal traps unless explicitly permitted. In my case, the host CPU is:
Intel(R) Celeron(R) N5105 @ 2.00GHz
This CPU enforces split lock detection, and by default, fails fast when one is encountered.
Workaround suggested by ChatGPT
To get things working again, I modified the VM’s CPU configuration:
Before: CPU type was set to host (full passthrough).
After: Changed CPU type to kvm64 (generic virtual CPU).
The kvm64 CPU type doesn’t trigger the split lock trap, which allows the VM to continue operating normally, albeit with a more generic CPU feature set. Time will tell if this change resolves the HAOS VM crash.
Possible Bug?
It’s likely this behavior stems from something internal to Home Assistant OS — possibly a bug or compatibility issue with certain CPU features. Please respond to this message if you experience a similar issue. it may be worth filing a bug report for the HAOS development team.
I wrote the draft version of this post, then gave my original text to ChatGPT for a nice update including the clever section icons.
Additional Study
- I found an in-depth split lock paper.. This behavior may be unique to Intel/AMD processors. ARM processors do not allow it.
- Proxmox discussion about Split lock detection. Describing command line methods to determine if the CPU supports it and how to modify the kernel response. (It can be ignored instead of the default panic)
- The split lock feature may have been Intel’s response to the Downfall exploit
which reaches across cache lines to view data outside a program scope. The default split lock detection behavior panics for the described Downfall exploit. (but it can be disabled) I may be improperly relating these, but the relationship is interesting.