On large systems, dumping state may cause time management to get
stalled for so long a period that it wouldn't recover. Therefore alter
the state dumping logic to alternatively block each CPU as it prints
rather than one CPU for a very long time (using the alternative key
handling toggle introduced with an earlier patch).
Further, instead of using on_selected_cpus(), which is unsafe when
the dumping happens from a hardware interrupt, introduce and use a
dedicated IPI sending function (which each architecture can implement
to its liking)
Finally, don't print useless data (e.g. the hypervisor context of the
interrupt that is used for triggering the printing, but isn't part of
the context that's actually interesting).
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Make use of the new libxl_*_path functions to specify the correct
absolute path of qemu-dm, hvmloader and ioemu-stubdom.gz.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
This patch makes sure that if the domain creation fails for any
reason, no zombie domains are left around.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
The CPUID4 emulation code for AMD CPUs in intel_cacheinfo.c won't be
executed. This emulation code was from upstream kernel, where CPUID4
is used for cache information report in sysfs. But in Xen, this code
path won't be executed on AMD CPUs. init_amd() uses
display_cacheinfo() to find out CPU cache size instead.
Signed-off-by: Wei Huang <wei.huang2@amd.com>
Acked-by: Mark Langsdorf <mark.langsdorf@amd.com>
On large systems, dumping state may cause time management to get
stalled for so long a period that it wouldn't recover. Therefore add
a tasklet-based alternative mechanism to handle Dom0 state dumps.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
... and move page-aligned data there, instead of having random holes
(to fulfill the demanded alignment) in the final image.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Just like for other global VMX controls, the maximum super page level
used must be globally consistent (and not change post-init).
Additionally, the original patch yet again introduced a message
printed on each CPU, which this patch moves to a place where it gets
issued just once.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Changeset 21263:9a12204ac0e4 changes the output format of "xl help"
which bash completion use, so update bash completion to compatible
with this.
Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
This is quite similar to the mmap functionality available in bigarray
but it's less complicated.
Signed-off-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com>
...along with a new sysctl to call it directly. This is in order to
support DornerWorks' new ARINC653 scheduler.
Based on code from Josh Holtrop and Kathy Hadley at DornerWorks, Ltd
Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
Try to reduce spin_lock overhead for deep C state entry/exit. This
will benefit systems with a lot of cpus which need the hpet broadcast
to wakeup from deep C state.
Signed-off-by: Wei Gang <gang.wei@intel.com>
Fix booting through iSCSI protocol with Broadcom network cards.
These boards use the option ROM feature to implement the TCP/IP stack
protocol, and the iSCSI software initiator. The memory address
normally used by the PMM is 0x87000 which conflicts with the memory
allocation for Xen's trampoline routine, currently 0x88000.
Relocating down to 0x7c000 fixes the problem.
Signed-off-by: Fabio Guarneri <fabioguarneri@gmail.com>
It MWAITs on a completely new flag field, avoiding the IPI-avoidance
semantics of softirq_pending. It also does wakeup-waiting checks on
timer_deadline_start, that being the field that initiates wakeup via
the MONITORed memory region.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Signed-off-by: Wei Gang <gang.wei@intel.com>
The location of the file in the build tree changed in recent Linux;
since there can be only one such file, using a wild card instead of
an explicit directory name seems the easiest solution.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Unfortunately the changes in c/s 21035 caused boot time to go up
significantly on certain large systems. To rectify this without going
back to the old behavior, introduce a new memory allocation flag so
that Dom0 allocations can exhaust non-DMA memory before starting to
consume DMA memory. For the latter, the behavior introduced in
aforementioned c/s gets retained, while for the former we can now even
try larger chunks first.
This builds on the fact that alloc_chunk() gets called with non-
increasing 'max_pages' arguments, end hence it can store locally the
allocation order last used (as larger order allocations can't succeed
during subsequent invocations if they failed once).
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Newer Linux' AGP code wants to flush caches on all CPUs under certain
circumstances. Since doing this on all vCPU-s of the domain in
question doesn't yield the intended effect, this needs to be done in
the hypervisor. Add a new MMUEXT operation for this.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
When I tried to use QCow image, I found that only each second boot is
successful. As I discovered, this is caused by wrong handling old qcow
tapdisk images. Extended header flag is not stored correctly so the
blktap tries to change endian fo L1 table on each startup.
From: Miroslav Rezanina <mrezanin@redhat.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>