FreeBSD on xen hvm

Andrew Turner andrew at fubar.geek.nz
Thu Aug 23 23:28:52 PDT 2007


I've been working on getting -CURRENT i386 to boot on the Xen
amd64 hvm. It provides full vitalization to allow operating systems to
boot without modification.

The problem is the GENERIC kernel can't boot under it. I've found three
options that, when disabled, allow FreeBSD to work.

1) PREEMPTION
Preemption causes the kernel to panic with a page fault. The dmesg is
available from [1].

2) SMP
With SMP enabled the kernel it enters an infinite loop in
uma_zalloc_bucket. The problem is uma_zone_slab returns a slab but
slab->us_freecount is 0. It then enters uma_zone_slab and gets the same
slab again. It appears there is a race condition setting us_freecount
to zero. The zone is always turnstile_zone.

3) INVARIANTS
Invariants causes a panic from a page fault. See [2] for the dmesg and
backtrace.

I can provide people with more information to track down the problem
and try patches.

Andrew

[1] http://fubar.geek.nz/files/freebsd/xen/xen_crash_preemption.txt
[2] http://fubar.geek.nz/files/freebsd/xen/xen_crash_invariants.txt

-- 
Andrew Turner
http://fubar.geek.nz/blog/


More information about the freebsd-current mailing list