Initial import of xen MP sources, with kernel and userspace tests.
 - this is a source priview.
 - boots to single user.
 - spurious interrupt and pmap related panics are normal
Catchup with rmind-uvmplock merge.
Unbreak uniprocessor build
Conditionally compile xen_ipi.c
Add xpq locking around xpq_queue_tlb_flush()
Introduce a per-cpu "shadow" for pmap_kernel()'s L4 page
Remove the bogus TLB ipi wrapper code. We don't use it in xen anyway.
This syncs back, with -current.
Do not register the same callback more than once.
grow MP support for i386. boots to single user
Oops. remove spurious "#undef MULTIPROCESSOR"
first cut at per-cpu event handling
Send an ipi at IPL_HIGH to remote cpu, in order to get it to run spllower()
pmap_enter() test needs an address that work for both i386 and amd64
gdtgrow() must extend the gdt size on all cpus, not just the primary
Update cpu local GDT entries for TLS registers %gs and %fs
Fix XEN3PAE_DOMx build
Pullup relevant changes from -current
PAE MP support (preliminary), amd64 per-cpu L4 model redesigned, i386 pmap_pa_start/end fixup
add locking around mmu flush xpq ops
Do not trust the hypervisor to route events to the right cpu. Enforce this in stipending()