First boot of the binder: vm TCG path took ~8 minutes on a no-KVM host (accel: auto correctly fell back to TCG). The QEMU launcher (vm/qemu.py ~252–276) uses -accel tcg,thread=multi,tb-size=1024 -cpu max and appends console=ttyS0 root=/dev/vda rw init=/init panic=1 mitigations=off — notably no RNG device and no random.trust_cpu=on, so Android init may stall on entropy (amplified under TCG).
This is an investigation, not a confirmed fix: benchmark cold-boot wall time with vs. without -device virtio-rng-pci and with random.trust_cpu=on, on the same host, several runs each. Separately, document/validate snapshot/restore (cli.py:snapshot/restore) as the warm-start path — boot once, snapshot the booted state, restore for near-instant subsequent starts.
Do not add vCPUs: the design log (vm-rnd-log §B.5) and resolve_smp already found -smp 4 optimal and -smp 8 regressing under MTTCG.
Acceptance: a short report with numbers on the RNG options, and a documented snapshot/restore warm-start workflow.
First boot of the
binder: vmTCG path took ~8 minutes on a no-KVM host (accel: autocorrectly fell back to TCG). The QEMU launcher (vm/qemu.py~252–276) uses-accel tcg,thread=multi,tb-size=1024 -cpu maxand appendsconsole=ttyS0 root=/dev/vda rw init=/init panic=1 mitigations=off— notably no RNG device and norandom.trust_cpu=on, so Android init may stall on entropy (amplified under TCG).This is an investigation, not a confirmed fix: benchmark cold-boot wall time with vs. without
-device virtio-rng-pciand withrandom.trust_cpu=on, on the same host, several runs each. Separately, document/validate snapshot/restore (cli.py:snapshot/restore) as the warm-start path — boot once, snapshot the booted state, restore for near-instant subsequent starts.Do not add vCPUs: the design log (
vm-rnd-log §B.5) andresolve_smpalready found-smp 4optimal and-smp 8regressing under MTTCG.Acceptance: a short report with numbers on the RNG options, and a documented snapshot/restore warm-start workflow.