planning on churning the tree a bit

Colin Percival cperciva at freebsd.org
Thu Nov 18 19:10:45 UTC 2010


Hi guys,

I'm trying to get FreeBSD Xen/PAE working so that FreeBSD can run on a *cough*
large cloud computing system, and I'm finding a bunch of breakage.

Some obvious breakage:
1. We don't check that the individual hypercalls in a multicall succeeded.
2. In the XEN && PAE case, pmap_release KASSERTs one page mapping too many.
3. In the XEN && PAE case, pmap_pinit calls pmap_qenter on NPGPTD + 1 pages,
but pmap_release only calls pmap_qremove on NPGPTD of them.

Some brain damage:
1. We have a VM_PAGE_TO_MACH() macro defined, but we're not using it in all the
places where it should be used.
2. xen/pmap.c is full of #ifdef XEN, even though the file is not compiled in
the !XEN case.

I'm going to fix the obvious breakage (and more as I encounter it) and I'd also
like to fix the brain damage since that will hopefully make it much easier for
me to understand the code.  Any objections?

-- 
Colin Percival
Security Officer, FreeBSD | freebsd.org | The power to serve
Founder / author, Tarsnap | tarsnap.com | Online backups for the truly paranoid


More information about the freebsd-xen mailing list