d94c859728
OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=b6b207d81cd5754c754f7e4e72bb82de
48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
References: bnc#491081
|
|
# HG changeset patch
|
|
# User Keir Fraser <keir.fraser@citrix.com>
|
|
# Date 1251097328 -3600
|
|
# Node ID 7e194320394244bc5028881b498d2e01574086cd
|
|
# Parent 9189afa1f1e6939fcda5525e225843cfd2325c42
|
|
x86: run timers when populating Dom0's P2M table
|
|
|
|
When booting Dom0 with huge amounts of memory, and/or memory accesses
|
|
being sufficiently slow (due to NUMA effects), and the ACPI PM timer
|
|
or a high frequency HPET being used, the time it takes to populate the
|
|
M2P table may significantly exceed the overflow time of the platform
|
|
timer, screwing up time management to the point where Dom0 boot fails.
|
|
|
|
Signed-off-by: Jan Beulich <jbeulich@novell.com>
|
|
|
|
Index: xen-3.4.1-testing/xen/arch/x86/domain_build.c
|
|
===================================================================
|
|
--- xen-3.4.1-testing.orig/xen/arch/x86/domain_build.c
|
|
+++ xen-3.4.1-testing/xen/arch/x86/domain_build.c
|
|
@@ -877,6 +877,8 @@ int __init construct_dom0(
|
|
else
|
|
((unsigned int *)vphysmap_start)[pfn] = mfn;
|
|
set_gpfn_from_mfn(mfn, pfn);
|
|
+ if (!(pfn & 0xfffff))
|
|
+ process_pending_timers();
|
|
}
|
|
si->first_p2m_pfn = pfn;
|
|
si->nr_p2m_frames = d->tot_pages - count;
|
|
@@ -895,6 +897,8 @@ int __init construct_dom0(
|
|
#ifndef NDEBUG
|
|
++alloc_epfn;
|
|
#endif
|
|
+ if (!(pfn & 0xfffff))
|
|
+ process_pending_timers();
|
|
}
|
|
}
|
|
BUG_ON(pfn != d->tot_pages);
|
|
@@ -915,6 +919,8 @@ int __init construct_dom0(
|
|
set_gpfn_from_mfn(mfn, pfn);
|
|
#undef pfn
|
|
page++; pfn++;
|
|
+ if (!(pfn & 0xfffff))
|
|
+ process_pending_timers();
|
|
}
|
|
}
|
|
|