Commit Graph
8543 Commits
Author SHA1 Message Date
Ian Jackson 16f2fb18bc Revert 61c0c52a8c6c "qemu-xen: build adjustments"
It appears that the changeset
  qemu-xen: build adjustments to support out-of-tree builds
broke the build.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-23 18:38:16 +00:00
Jan Beulich 762626dd33 qemu-xen: build adjustments to support out-of-tree builds
QEMU by itself can be built outside of its source directory. With the
qemu repository being separate from the hypervisor/tools one it seems
to make sense to make use of this feature, but doing so requires a
couple of adjustments to the Xen changes to it. Basically, if
CONFIG_QEMU is found to indicate an existing directory, this directory
will be used rather than cloning the git repo into the build tree.

[ This changeset is the xen-unstable part of the patch but also
  includes the QEMU_TAG update to pull in the qemu part. -iwj ]

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-23 16:43:38 +00:00
Andre Przywara ec527f3ef9 libxc: fix tracing (broken with hypercall buffers)
the attached patch makes Xen tracing work again, after the introduction
of the hypercall buffers broke it. Just a missing line.

Thanks to Uwe Dannowski for reporting this.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-19 18:15:14 +00:00
Keir Fraser 9a36faf0c6 x86 xsave: Adding back CPUID support for Xsave (version 2)
XSave support via CPUID virtualization for both PV and HVM guests.

Signed-off-by: Shan Haitao <haitao.shan@intel.com>
2010-11-15 09:27:53 +00:00
Ian Campbell d549bdb2a0 libxc: correct dirty_bitmap bounce size in xc_hvm_track_dirty_vram
The size should be in bytes not 32-bit words. Fixes graphics
corruption issues for HVM guests due to bouncing too little data.

Also the dirty_bitmap buffer is output only and therefore only needs
bouncing in one direction.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-10 14:56:06 +00:00
Sander Eikelenboom adee1dd918 tools/hotplug/Linux: supply --physdev-is-bridged in iptables runes
With newer (pvops) kernels logs get flooded with this iptables
warning: physdev match: using --physdev-out in the OUTPUT, FORWARD and
POSTROUTING chains for non-bridged traffic is not supported anymore

Using the --physdev-is-bridged option prevents this.
See also: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=571634#10

Signed-off-by: Sander Eikelenboom <linux@eikelenboom.it>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-10 14:37:19 +00:00
Keir Fraser 57f1362319 hvmloader: Fix 22383:cba667fb80cf iterating over defns 0..255
We need to declare devfn as wider than 8 bits for a loop 0<devfn<256
to terminate.

Signed-off-by: Keir Fraser <keir@xen.org>
2010-11-10 14:15:23 +00:00
Keir Fraser cf17821447 hvmloader: fix off-by-one-bit error when initialising PCI devices
hvmloader is responsible for - amoungst other things - initialising
the PCI device BARs prior to loading the guest BIOS.  The previous
code only probed for devfn up to 128.  The lower 3 bits are function
IDs so this meant that only devices in slots 0-15 were actually being
initialized.

Signed-off-by: Alex Zeffertt <alex.zeffertt@eu.citrix.com>
Acked-by: Gianni Tedesco <gianni.tedesco@citrix.com>
2010-11-10 13:58:16 +00:00
Keir Fraser e0dbccc8fe hvmloader: Fix acpi static tables for new ACPI ioports location.
This change some fadt values -- the address of the acpi ioports -- and
the pm1a_evt_address value wrote for the pci bus.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
2010-11-09 20:37:46 +00:00
Ian Campbell cb6c757fa4 tools: provide explicit target for refetching/resetting qemu
This patch adds an explicit update mechanism:
  make tools/ioemu-dir-force-update
This isn't brilliant but is better than doing "cd tools/ioemu-remote
&& git reset --hard <sha1...>" by hand.

Note that invoking this target will destroy all working tree changes
made to qemu-xen.

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-09 18:15:25 +00:00
Anthony Perard 8fe49db6bd firmware, qemu: Change ACPI IO values to match QEMU BIOS
As part of the QEMU/Xen merge, this patch comes to change the value of
sleep states and add some information in the PCI registers to match the
implementation of the BIOS of QEMU.

It also does a hypercall (HVM_PARAM_ACPI_IOPORTS_LOCATION) that tell the
Xen to use the new Port I/O instead of the old one.

[ Also, in this patch, update QEMU_TAG to the qemu-xen revision
  with the corresponding qemu change. -iwj ]

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-09 18:03:55 +00:00
KUWAMURA Shin'ya e737da7402 tools: libxl: fix cpuid compilation errors for ia64
ia64 does not have cpuid.  So break out cpuid-related functions into a
separate file, with stubs for ia64.

Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-09 17:43:12 +00:00
Ian Jackson 4831e2743f tools: libxl: Fix some "const const"s introduced in 711cb4229900
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-09 12:00:05 +00:00
Keir Fraser e9cc934b59 hvmloader: Fix e820 printing routine -- addresses are 64-bit
Signed-off-by: Keir Fraser <keir@xen.org>
2010-11-09 10:34:43 +00:00
Anthony Perard a6aa655723 libxc: Save the HVM_PARAM_ACPI_IOPORTS_LOCATION
This will save the acpi_ioport_location hvm_param in the checkpoint file
and set the parameter in Xen at restore.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-08 17:25:54 +00:00
Ian Jackson deaa319f11 tools: xl: more const-correctness
The implementation of xl was lacking a lot of consts on its char*s.
In this patch we improve matters.  It doesn't fix everything.  In
particular:

  * I only changed char*s and not other structs that ought to be const.

  * libxl_send_debug_keys should take a const char* but the pointer
    ends up getting sent to DECLARE_HYPERCALL_BOUNCE from xc_private.h
    and that won't take a const char*.  I wasn't sure what to do so
    I have left it.

  * There is a great deal of in-place string tokenisation (both
    ad-hoc, and using strtok_r).  I haven't changed any of that.

  * I haven't changed any of the occurrences of char **argv because of
    the castless assignment incompatibility between const char** and
    char **.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-08 17:05:14 +00:00
Jim Fehlig 0d84911192 Fix pci passthru in xend interface used by libvirt
Attempting to define or create a domain whose XML config contains a
passthru PCI device fails with libvirt

xen84: # cat win2k8r2.xml
...
   <hostdev mode='subsystem' type='pci' managed='no'>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
    </hostdev>
...

xen84: # virsh create ./win2k8r2.xml
error: Failed to create domain from ./win2k8r2.xml
error: POST operation failed: xend_post: error from xen daemon:
  (xend.err "Error creating domain: 'key'")

The PCI device config maintained by xend includes a 'key' field, which is
initialized by xm client when using that tool and traditional xen config
file.  libvirt, which uses xend's sexpr-over-http interface (is that the
proper name for that interface??), does not initialize this field - and
shouldn't be expected to do so IMO.  Clients should not be bothered with
xend's internal representation of a PCI device.

This patch populates the 'key' field within xend if it is uninitialized,
similar to current initialization of 'uuid' field.  The 'vdevfn' field
suffers a similar problem if not (optionally) specified by user.
AFAICT, the xm client initializes 'vdevfn' to 0x100 if not specified so
I've done the same here.

Signed-off-by: Jim Fehlig <jfehlig@novell.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-08 16:24:22 +00:00
Keir Fraser 47a3fb9662 x86: xsave save/restore support for both PV and HVM guests (version 2)
I have tested the patch in the following senarios:
1> Non-xsave platform
2> Xsave-capable platform, guest does not support xsave, xen support xsave
3> Xsave-capable platform, guest does support xsave, xen supports xsave
4> Guest (non-xsave) saved on platform without xsave, restored on a
   Xsave-capable system.

All passed.

Signed-off-by: Shan Haitao <haitao.shan@intel.com>
Signed-off-by: Han Weidong <weidong.han@intel.com>
2010-11-08 15:44:02 +00:00
Keir Fraser f3eb58ef29 hvmloader: Use ipxe 1.0.0 final rather than a release candidate.
Signed-off-by: Keir Fraser <keir@xen.org>
2010-11-08 15:32:55 +00:00
Keir Fraser 0806f13b3e hvmloader: Replace gPXE with iPXE for ethernet boot ROM
It is actively maintained.

From: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Keir Fraser <keir@xen.org>
2010-11-04 16:38:13 +00:00
Keir Fraser bd19080b52 x86: Do not expose XSAVE/AVX to guests.
Signed-off-by: Keir Fraser <keir@xen.org>
2010-11-04 16:29:47 +00:00
Keir Fraser f0f9b2df89 Revert 22347:16093532f384 "x86: xsave save/restore support"
Completely broken when xsave is not enabled or supported on the host.

Signed-off-by: Keir Fraser <keir@xen.org>
2010-11-04 16:25:26 +00:00
Lutz Dube eb37dccf5b tools: fix cpu_weight/cap loss (22000:4fc66044477d)
Correction/Extension of changeset 22000:4fc66044477d
  "Values of cpu_weight and cpu_cap are lost after xend restart"

Values of cpu_weight and cpu_cap taken from managed SXP file have to
be converted from str to int.

Signed-off-by: Lutz Dube <lutz.dube@ts.fujitsu.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-03 17:23:42 +00:00
Ian Campbell c894e6dae7 libxc: fix bounce buffers in xc_pm_get_cx_stat and xc_pm_get_pxstat
We should bounce the buffers themselves, not the pointers to them!

Error introduced by 22292:a1b39d2b9001 and reported by Yang Z Zhang.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-03 12:35:04 +00:00
KUWAMURA Shin'ya f0188031b6 libxc, ia64: ia64 counterpart of 22275:e95dc0eb152d and 22285:36a317494429
This patch fixes compilation errors by 22275:e95dc0eb152d:
  ia64/xc_ia64_linux_save.c:797: error: too few arguments to function 'callbacks->switch_qemu_logdirty'
and applies 22285:36a317494429 to ia64.

Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-03 12:27:00 +00:00
Juergen Gross 9180abe568 tools: change cpumaps to uint8_t
Cpumap types in tools (libxc and libxl) are changed to be based on bytes like
in the interface to the hypervisor.
To make handling easier the size of used cpumaps is always based on the
number of physical cpus supported by the hypervisor. This eliminates the need
to keep track of the cpumap size in external interfaces.
In libxl a macro for cycling through a cpumap is added (libxl_for_each_cpu).

Interfaces changed:
libxl_set_vcpuaffinity()
libxl_cpumap_alloc()
xc_vcpu_setaffinity()
xc_vcpu_getaffinity()
xc_cpupool_freeinfo()

Signed-off-by: Juergen Gross <juergen.gross@ts.fujitsu.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-03 12:10:46 +00:00
Ian Jackson 02bac862c0 tools: gdbsx: Check return of write()
Not checking leads to warn_unused_result checks triggering in some
libraries and compilers.  Combined with -Werror this breaks the build.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-03 11:58:25 +00:00
Keir Fraser d0cf814150 x86: xsave save/restore support for both PV and HVM guests.
Signed-off-by: Shan Haitao <haitao.shan@intel.com>
Signed-off-by: Han Weidong <weidong.han@intel.com>
2010-11-03 08:17:39 +00:00
Keir Fraser 5a4cecd828 x86 hvm: exposes AVX to guest.
Signed-off-by: Shan Haitao <haitao.shan@intel.com>
Signed-off-by: Han Weidong <weidong.han@intel.com>
2010-11-03 08:16:47 +00:00
Keir Fraser 2d741abb30 x86: Xsave support for PV guests.
Signed-off-by: Shan Haitao <haitao.shan@intel.com>
Signed-off-by: Han Weidong <weidong.han@intel.com>
2010-11-03 08:15:20 +00:00
Keir Fraser 3b0246ea03 Fix ia64 tools build
22066:eccfdeb41b80 replaced tools/libxc/ia64/aclinux.h with
xen/include/acpi/platform/aclinux.h.
Because both are incompatible, tools cannot be built on ia64.

This patch fixes compilation errors by defining identifiers at
ac_ia64_tools.h.

Signed-off-by: KUWAMURA Shin'ya <kuwa@jp.fujitsu.com>
2010-11-02 07:35:52 +00:00
Gianni Tedesco 7c5f9bb2b5 libxl: fix build since 22325:4ac03710fc32
"libxl: Fix migration of HVM guests" introduces a stat call without
including <sys/stat.h>

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-11-01 18:13:31 +00:00
Keir Fraser 708261e496 hvmloader: Configure gPXE to use serial console
Sometimes we would rather connect to an HVM's serial console than it's
VGA display. In this case we cannot see or interact with the ethernet
booting process. This is a bit annoying so let's just enable it.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
2010-10-29 10:17:07 +01:00
Juergen Gross e57101211f avoid numa placement of cpus with active cpupools
When using cpupools don't pin vcpus to numa nodes as this might
conflict with the cpupool definition.
numa placement should be handled by cpupool configuration instead.

Signed-off-by: Juergen Gross <juergen.gross@ts.fujitsu.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-28 12:22:09 +01:00
Ian Campbell 2526ff6cc9 libxl: Fix migration of HVM guests
In the default "QemuDeviceModelRecord"-style HVM tail of the migration
protocol the size of the qemu save record is unknown at the receiver
and therefore it must read until EOF. This is not compatible with the
xl migration protocol which contains a post-migration handshake and
therefore cannot close the socket on the sending end.

What is required is an explicit length field for the save record,
which the "RemusDeviceModelState"-style HVM tail includes.

Rather than overload the "RemusDeviceModelState" name for a non-Remus
use case (on off chance that they need to diverge for some reason in
the future) introduce a third style called "DeviceModelRecord0002"
which is identical to current "RemusDeviceModelState"-style.

Hopefully the inclusion of a number here will allow easier extension
in the future without needing to come up with increasingly less
helpful names!

Also propagate errors from xc_domain_save and
libxl__domain_suspend_common to callers.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-28 12:19:43 +01:00
Ian Campbell 7134cbcc19 xl: support -w (wait) option in xl shutdown
improves compatibility with xm.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-28 12:16:48 +01:00
Ian Jackson a07b5b8acd libxl: Fix format string abuses / vulnerabilities
There are a few places where libxl__xs_write is passed a variable
value to write to xenstore, but the semantics are that the first char*
is a format string.  So use "%s".

This fixes the following errors reported by some newer compilers:
 libxl.c: In function "libxl_create_cpupool":
 libxl.c:3981: error: format not a string literal and no format arguments
 libxl.c:3983: error: format not a string literal and no format arguments
 libxl.c: In function "libxl_cpupool_movedomain":
 libxl.c:4095: error: format not a string literal and no format arguments

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Gianni Tedesco <gianni.tedesco@citrix.com>
2010-10-28 12:05:45 +01:00
Gianni Tedesco 1e346e3f47 libxl: fix dom0 minimum memory threshold check
libxl_set_memory_target tries to set the memory target for a given
domain to new_target_memkb. The function includes a check to make sure
that dom0's memory is not reduced below a minimal threshold ie.
LIBXL_MIN_DOM0_MEM. However, this check is performed before the
new_target_memkb variable is properly initialised - when the value is
always zero. This means that the check always fails. Fix this by moving
the test to happen after the proper initialisation of new_target_memkb.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-28 12:02:22 +01:00
Gianni Tedesco 576b10f44c gdbsx: Makefiles: correctly generate dependencies
gdbsx hacks CFLAGS to remove optimisations for easier debugging, however
this breaks dep generation due to an early evaluation of CFLAGS and
leaves stale files called "..d" after a make clean. We could possibly
fix this by separating dep generation from the rest of CFLAGS but it
seems a little invasive. The gdbsx hackers can do their own thing during
development and testing anyway...

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
2010-10-28 11:47:26 +01:00
Gianni Tedesco 9de2eedc20 ocaml: Makefile: delete dependency files during make clean
Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-28 11:46:20 +01:00
Gianni Tedesco 7d241c5962 tools: Makefile: delete qemu during make distclean
The top-level makefile claims this to be the expected behaviour so make
it so.

Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-28 11:45:54 +01:00
Gianni Tedesco d7249faf39 libxl: Makefile: delete temporary files during make clean
Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-28 11:45:09 +01:00
Gianni Tedesco 66272c31d5 blktap2: Makefiles: delete symlinks and deps during make clean
Signed-off-by: Gianni Tedesco <gianni.tedesco@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-28 11:44:17 +01:00
Miroslav Rezanina 0f114a5181 Do not wait for memory teardown when live migrate
When trying to live migrate guest with great memory (e.g. 20 GB),
there's delay caused by destroying source copy of domain.  To speed up
this process we can close socket before starting guest destroy, as
source guest is not running anymore.

Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-28 11:40:32 +01:00
Ian Campbell 31e4f2432e libxc: fix xc_version by handling all known command types.
xend was crashing since 22289:ca4a781c8ae8 due to missing handling of
XENVER_commandline.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2010-10-27 12:24:28 +01:00
Ian Jackson 47c1755f36 Merge 2010-10-26 12:22:52 +01:00
Tim Deegan 5717f51369 "kdd" Windows debugger stub.
kdd runs in dom0, attaches to a domain and speaks the Windows kd serial
protocol over a TCP connection (which should go to kd or windbg, e.g.
by having another VM with its virtual COM1 set up as a TCP listener).

It doesn't do breakpoints &c yet, and windbg can get quite confused
since the kernel debugger's not actually running, but it's good enough
to extract backtraces from wedged VMs.

Signed-off-by: Tim Deegan <Tim.Deegan@citrix.com>
2010-10-26 11:56:31 +01:00
Ian Campbell 7f18fb47e5 libxc: correct handling of switch_qemu_logdirty callback return value
The callback return convention follows xc_domain_save and therefore
returns 0 on success and >0 on error, correct the check accordingly.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
2010-10-25 18:15:28 +01:00
Keir Fraser d47f1a444a hvmloader: reduce iasl verbosity
I don't think anyone really needs iasl's banner displayed during the
build process.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2010-10-24 13:18:26 +01:00
Ian Campbell 4fd0fc305b libxc: finalise transition to hypercall buffers.
Rename xc_set_xen_guest_handle to set_xen_guest_handle[0] and remove now
unused functions:
  - xc_memalign
  - lock_pages
  - unlock_pages
  - hcall_buf_prep
  - hcall_buf_release

[0] sed -i -e 's/xc_set_xen_guest_handle/set_xen_guest_handle/g' \
	tools/libxc/*.[ch] \
	tools/python/xen/lowlevel/xc/xc.c \
	tools/python/xen/lowlevel/acm/acm.c \
	tools/libxc/ia64/xc_ia64_stubs.c \
	tools/security/secpol_tool.c \
	tools/misc/xenpm.c

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson.citrix.com>
2010-10-22 15:14:51 +01:00