cloud-hypervisor describes vCPUs as x2apic MADT entries; without
CONFIG_X86_X2APIC the kernel ignored them and every x86_64 guest booted
with a single CPU regardless of --cpus. DEFERRED_STRUCT_PAGE_INIT moves
the largest silent stretch of early boot onto all CPUs (x86 guest boot
202 -> 130 ms); measured as a wash on arm64 (VZ and KVM), so only x86
takes it.
Co-authored-by: Hanzo Dev <[email protected]>
Same feature set as the arm64 config (virtio-pci, virtio-console, vsock,
netfilter, cgroup2 + k3s set); the arch section swaps GICv3/PL011 for
PVH direct boot, kvmclock, and ACPI. cloud-hypervisor loads the
uncompressed ELF vmlinux via its PVH entry, so the build strips vmlinux
into Image instead of taking arch/*/boot/Image.
Co-authored-by: Hanzo Dev <[email protected]>
CONFIG_CPUSETS was a k3s fatal; add the rest of the cgroup2 controller
set, runc needs (keys, seccomp, cgroup bpf), veth/vxlan/bridge-netfilter
and the xt matches kube-proxy programs, plus NFT_COMPAT so iptables-nft
userland works. All built-in; the kernel stays module-free.
Co-authored-by: Hanzo Dev <[email protected]>
Crates keep their history: vm (lib, was shuru-vm), hanzo-vm (CLI package
and binary, was shuru-cli), vm-guest, vm-proto, vm-proxy, vm-sdk,
vm-store, vm-darwin, vm-linux; all at 0.1.0, Apache-2.0, hanzoai/vm.
Config is vm.json, data lives in ~/.hanzo/vm (HANZO_VM_HOME), env vars
are HANZO_VM_*, the guest runs as /usr/bin/vm-guest, and assets download
from hanzoai/vm releases. The TypeScript SDK is @hanzo/vm. NOTICE
credits shuru as the origin. prepare-rootfs.sh builds the image natively
on arm64 Linux with mke2fs -d and re-execs in Docker only on macOS.
Includes rustfmt over the tree and fixes for clippy 1.98 lints.
Co-authored-by: Hanzo Dev <[email protected]>