diff -r d3d0a7421f69 sys/arch/amd64/conf/XEN3_DOM0
--- a/sys/arch/amd64/conf/XEN3_DOM0	Sun Sep 18 22:01:24 2016 +0530
+++ b/sys/arch/amd64/conf/XEN3_DOM0	Sun Sep 18 22:15:15 2016 +0530
@@ -2,6 +2,8 @@
 
 include 	"arch/amd64/conf/std.xen"
 
+options		MULTIPROCESSOR
+
 options 	INCLUDE_CONFIG_FILE	# embed config file in kernel binary
 
 #options 	UVMHIST
diff -r d3d0a7421f69 sys/arch/xen/x86/xen_pmap.c
--- a/sys/arch/xen/x86/xen_pmap.c	Sun Sep 18 22:01:24 2016 +0530
+++ b/sys/arch/xen/x86/xen_pmap.c	Sun Sep 18 22:15:15 2016 +0530
@@ -192,9 +192,14 @@
 
 	if (pmap_valid_entry(opte)) {
 #if defined(MULTIPROCESSOR)
-		kpreempt_disable();
-		pmap_tlb_shootdown(pmap_kernel(), va, opte, TLBSHOOT_KENTER);
-		kpreempt_enable();
+		if (__predict_false(x86_mp_online == false)) {
+			pmap_update_pg(va);
+		} else {
+			kpreempt_disable();
+			pmap_tlb_shootdown(pmap_kernel(), va, opte,
+					   TLBSHOOT_KENTER);
+			kpreempt_enable();
+		}
 #else
 		/* Don't bother deferring in the single CPU case. */
 		pmap_update_pg(va);