This simple patch enables hap by default in xl and also allows xl to
parse the hap option in the VM config file.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
...because the default timesource (TSC) drifts under load.
The flag is only defined in ACPI 3.0, and we provide ACPI 2.0 tables,
but Windows seems happy enough to obey it anyway.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
If xen's time leaps forward by a large amount, the RTC will try to
model a tick for every second that it thinks has passed. This can
livelock a CPU with a series of timer requests each of which fires
immediately and requests the next one.
This patch treats a delay of more than a day between ticks as a
special case, abandoning the attempt to catch up. That should be good
enough to avoid livelock but doesn't fix the underlying time problem.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
RHEL4 guests take a fair number of spurious pagefaults on Nehalem; no
need to report each one of them at XENLOG_WARNING.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Xapi tends to trigger this a lot by looking up the shadow memory
allocation of domains that aren't quite built yet.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Older (<4.6) RHEL kernels clear PAE pagetable entries without taking
care to write the bottom half first, often enough to make it annoying.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Its cpu field might be stale and refer to an offlined cpu.
Furthermore, this avoids performing invalid operations on killed
timers.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Useful for Windows guests, since the PV drivers are notified that
the domain is about to crash just before the crash dump gets written.
Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Otherwise timer_lock() can race a timer's ->cpu field being updated by
migrate_timers_from_cpu().
The rest of this patch is all debug paranoia.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Remove all the magic surrounding the special Xen devices in Linux
specific code whereby we attempt to figure out what the correct
major:minor number is and check the the existing device has these
numbers etc. In 2010 we really should be able to trust that the
platform has created the devices correctly or provide correct
configuration settings such that they are without resorting to tearing
down the platform configured state and rebuilding it.
tools/hotplug/Linux/xen-backend.rules already contains the necessary
udev rules to create /dev/xen/evtchn and friends in the correct place.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
The man page for xm command states that many commands acts
asynchronously which is not true. According to my experience most
commands does act synchronously with several exceptions, like create,
shutdown, mem-set and vcpu-set commands so this fixes the paragraph
available in this xm man page.
Signed-off-by: Michal Novotny <minovotn@redhat.com>
CPUs coming online sync themselves with current MTRR state at an
appropriate point anyway.
It's not actually possible to have a newly booted CPU immediately have
in-sync MTRR state anyway. It has to be synced up as part of normal
CPU bootstrap procedure. Which is what we do.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
libxl_domid_to_name() have already been called in
save_domain_core_begin()->find_domain(), so remove it.
Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
This patch makes xc_linux properly deal with:
1. discovering and creating device nodes if necessary
2. the new form of xen/<dev> device names soon to be used by the
kernel
This changes the logic slightly:
- If a device node already exists with the proper name, then it uses
it as-is, assuming it has already been correctly created.
- If the path doesn't exist, or it exists but isn't a device node,
and
it has successfully found the major/minor for the device, then
(re)create the device node.
Since this logic is identical for gntdev and evtchn, make a common
function to handle both.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
The current implementation of update_runstate_area is unable to handle
32 bit PV on HVM guests because the check is_pv_32on64_domain doesn't
cover that case. This patch fixes it.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
* Provide a new XTL_STDIOSTREAM_HIDE_PROGRESS flag in the stdio logger
* Provide a way to adjust the flags after logger setup
* Use these to disable progress output from the migration receiver, as
the sender is also sending progress information.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Previously, the code was inconsistent: some calls to PERROR passed \n
and some did not. With the new logging arrangements, passing \n is
definitely incorrect.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
* Make "read_exact" in libxc always set errno.
* Rename "read_exact" macro in xc_domain_restore.c (which shadows
real function) to RDEXACT and change all callers.
* Make RDEXACT anamorphically use xch for error reporting rather than
* stderr.
* Call PERROR rather than ERROR when appropriate, so that log messages
include errno.
* Save errno in noncached_write so that its errno value is always
* right.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
The -v option, which must come before the xl command, increases the
logging level each time it is supplied.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
We now require callers to provide a xentoollog_logger* for
libxl_ctx_init, and use that for all our own logging and also for
xc_interface_open.
Corresponding change to xl.c.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
oubuf and batch restore write messages should be sent with level
XTL_DEBUG so that they don't disturb progress output even with -v.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
This patch eliminate the global variables in libxenctrl (used for
logging and error reporting).
Instead the information which was in the global variables is now in a
new xc_interface* opaque structure, which xc_interface open returns
instead of the raw file descriptor; furthermore, logging is done via
xentoollog.
There are three new parameters to xc_interface_open to control the
logging, but existing callers can just pass "0" for all three to get
the old behaviour.
All libxc callers have been adjusted accordingly.
Also update QEMU_TAG for corresponding qemu change.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
We provide a new header file "xentoollog.h" which defines an interface
that libraries and applications can use for logging. This avoids
having to wrap each library's log callbacks up, massage arguments to
log callbacks, and so on.
The library's .o files are within libxc to avoid having to create a
separate lib*.a, but callers do not need to #include xenctrl.h and it
should be regarded as a separate API.
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
libelf now permits callers to specify logging callback functions,
rather than a FILE*. libelf's non-Xen callers are all libxc users, so
the stdio dependency and the default logging callback function (which
calls vfprintf) is now in libxc.
Xen's use of libxc is unaffected in this patch.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
There is already a "write_exact" function declared in xc_private.h.
So rename this macro to to wrexact.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Newlib unaccountably defines _daylight, _timezone and _tzname, rather
than daylight, timezone and tzname. The latter are specified in
SuSv3.
So do a global search and replace as part of our newlib patching :-(.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
While setting the HAP entry previously, we only check the hardware
capability for 1GB super page. This patch adds hardware capability
check for 2MB superpage
Also, Intel SDM doesn't exclude 1GB feature for 32/pae
host. Therefore remove the BUG_ON() check in common code.
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>