Commit Graph
24430 Commits
Author SHA1 Message Date
Anthony PERARD e8334a19d7 libxl: libxl_qmp: Introduce libxl__qmp_pci_add.
This function insert a PCI passthrough device in qemu.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-11-04 14:24:07 +00:00
Anthony PERARD e89264c3df libxl: libxl_json: Handle number above LONG_MAX.
The integers are now "long long" in the json_object.

If a number (decimal or integer) is too big (or too low), it is stored as it in
a string. So for that, we introduce a new type JSON_NUMBER.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-11-04 12:38:25 +00:00
Anthony PERARD ca8450a226 libxl: libxl_qmp: Introduce qmp_request_context.
This structure helps to track the return code of a callback. It's only used
between qmp_synchronous_send and qmp_send.

Now, qmp_synchronous_send will return the rc of the callback if there is no
error.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-11-04 12:38:25 +00:00
Anthony PERARD cec0a61c43 libxl: libxl_qmp: Always insert a command id in the callback_list.
Because the function qmp_synchronous_send rely on the presence of the id
in the callback_list.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
2011-11-04 12:38:24 +00:00
Anthony PERARD 44fbf3fa3e libxl: libxl_qmp: Introduce list of arguments to qmp_send
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
2011-11-04 12:38:24 +00:00
Anthony PERARD 1bc91b8ea7 libxl: libxl_qmp: Introduce an opaque argument to the callbacks.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
2011-11-04 12:38:23 +00:00
Anthony PERARD 6291ab8bf8 libxl: libxl: Introduce dm-version xenstore key.
The all key is /libxl/$domid/dm-version.

The /libxl/$domid dir is created with the domain and should be only accessible
by the toolstack domain. The function libxl__xs_libxl_path() give this path.

This come with libxl__device_model_version_running() helper function.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-11-04 12:38:23 +00:00
Anthony PERARD 46e9ab5b1c libxl: libxl_qmp: Better error message after a parse error.
By setting the next string to parse after having printed any error messages.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-11-04 12:38:22 +00:00
Anthony PERARD a3671a3ba7 libxl: libxl_json: Check the parser status before to call parse_complete
Also, use goto to handle an error.

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-11-04 12:38:22 +00:00
Anthony PERARD 4b9b9734be libxl: libxl_qmp: Fix return check of fcntl
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-11-04 12:38:22 +00:00
Jan Beulich 948d141b1a x86/IRQ: consolidate IRQ disabling when acquiring vector lock
__assign_irq_vector() doesn't need to disable interrupts (its callers
are required to when acquiring the lock), and set_desc_affinity() can
use the normal spin lock primitives.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2011-11-03 17:28:41 +01:00
Jan Beulich 792920245b IRQ: allocate CPU masks dynamically
This includes delaying the initialization of dynamically created IRQs
until their actual first use and some further elimination of uses of
struct irq_cfg.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Keir Fraser <keir@xen.org>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
2011-11-03 17:27:38 +01:00
Tim Deegan bbff299b86 xen: provide pse36 cpuid bit
Provide pse36 cpuid bit if guest runs in 32bit PAE
or in long mode. Hyper-V refuses to start as
the "cpu does not provide required hw features"
if it does not find the pse36 cpuid bits.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Acked-by: Tim Deegan <tim@xen.org>
Committed-by: Tim Deegan <tim@xen.org>
2011-11-03 12:19:23 +00:00
Juergen Gross b07e31c4ab docs: Correct man page of xl regarding cpu-pools
Signed-off-by: juergen.gross@ts.fujitsu.com
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-02 17:09:09 +00:00
Roger Pau Monne 331f2c59fd libxl: handle the return value of wait_for_dev_destroy select
Handle the return value of the select call inside wait_for_dev_destroy
properly, and return 0 if a device is removed, or ERROR_* if a timeout
or error happened. Use the return value of wait_for_dev_destroy inside
libxl__device_remove to properly return from that function.

Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-02 17:06:04 +00:00
Philipp Hahn 93bf609a77 pygrub: Add HybridISO support for PyGrub2
grub-mkrescue internally uses xorriso, which generates a so-called
"Hybrid ISO": The ISO images also contains a DOS partition table,
which allows the identical ISO file to be stored on an USB stick for
booting from it. This breaks PyGrub, since it (wrongly) detects only
the DOS partition table and uses the first partition instead of the
complete ISO file.

Add a check to detect HybridISO files and use offset 0 in addition to
partition table parsing.

Signed-off-by: Philipp Hahn <hahn@univention.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-02 16:28:57 +00:00
Ian Campbell 70e7871d0f libxl: libxl__device_pci_destroy_all should succeed if there is no PCI bus
Since 23915:4c4b72c94bac "" it is possible that no bus exists and this is not
an error. Removes the following spurious warning when destroying a PV domain
with no PCI devices:
    libxl: error: libxl.c:759:libxl_domain_destroy: pci shutdown failed
for domid 1005

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Roger Pau Monne <roger.pau@entel.upc.edu>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-02 16:25:18 +00:00
Christoph Egger 9a190b2c54 libxl: allow to enable/disable cpuid bits
Allow to enable/disable SVM specific cpuid bits in the guest config
file via cpuid config option.  Also allow to enable/disable the
hypervisor cpuid bit in the guest config file. We need to disable the
hypervisor cpuid bit to get Hyper-V going.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Acked-by: Tim Deegan <tim@xen.org>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-02 16:23:23 +00:00
Ian Jackson fb971dc3b4 Update QEMU_TAG 2011-11-02 16:21:37 +00:00
Roger Pau Monne 487b6faa2c libxl: reimplement buffer for bootloading and drop data if buffer is full.
Implement a buffer for the bootloading process that appends data to
the end until it's full. Drop the whole buffer if a timeout has
occurred and the buffer is full. Prevents the bootloader from getting
stuck when using ptys with small buffers.

Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-02 15:46:54 +00:00
Olaf Hering a54aa0a41c libxl: update prototype of libxl__spawn_check
libxl__spawn_check expects a malloc'd libxl__spawn_starting. The
currently only user of libxl__spawn_check gets a libxl__spawn_starting
and passes it on. Update prototype to not take a void pointer, and also
update comment in header file.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 11:54:16 +02:00
Olaf Hering 89d1429416 libxl: document spawn related functions
Group spawn related prototypes and add some documentation.
Remove unused prototype for libxl__log_child_exitstatus

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 11:39:11 +02:00
Olaf Hering a0a7be4493 libxl: add libxl__spawn_confirm_offspring_startup
libxl__spawn_confirm_offspring_startup() is a generic version of
libxl__confirm_device_model_startup().

Use libxl__spawn_confirm_offspring_startup for device model.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 11:23:29 +02:00
Olaf Hering 05a3635760 libxl: add libxl__wait_for_offspring function
libxl__wait_for_offspring() is a generic version of
libxl__wait_for_device_model().

Use libxl__wait_for_offspring for device model.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 11:23:24 +02:00
Olaf Hering b46dfd222e libxl: add pid path to libxl__spawner_starting
libxl_spawner_record_pid() should be able to write the pid to arbitrary paths.

v2:
 - use const char* for ->pid_path, and update comment

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 11:20:25 +02:00
Olaf Hering e5d6417e8a libxl: rename dm_xenstore_record_pid to libxl_spawner_record_pid
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 11:19:22 +02:00
Olaf Hering 0790b64cc8 libxl: rename libxl__device_model_starting
Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 11:19:16 +02:00
Jan Beulich 7b92ebddcd passthrough: re-attempt ACS and ATS enabling when devices get reported by Dom0
Since extended config space accesses may not be possible when
scan_pci_devices() runs (due to MMCFG resources not being reserved in
the E820 table, which the specification allows to be the case),
functionality enabling of which requires such must be re-attempted
when it is known whether MMCFG is safe to use.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: "Kay, Allen M" <allen.m.kay@intel.com>
2011-11-02 13:53:05 +01:00
Jan Beulich da2b72cb51 VT-d/ATS: cleanup
- make acpi_find_matched_atsr_unit() consistent with
  acpi_find_matched_drhd_unit() (and constify their parameter)
- make ats_device() take a struct pci_dev * instead of seg:bus:devfn
  and additionally the matching DRHD (as its callers already worked
  that out)
- remove a stale prototype

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: "Kay, Allen M" <allen.m.kay@intel.com>
2011-11-02 13:51:28 +01:00
Christoph Egger 71fbeb0888 tools/ocaml: unify build process
Unify ocaml build process for different platforms.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-01 19:03:38 +00:00
Stefano Stabellini 5c7aad5247 docs: introduce an xl man page in pod format
This is the initial version of an xl man page, based on the old xm man
page.  Almost every command implemented in xl should be present, a
notable exception are the tmem commands that are currently missing.
Further improvements and clarifications to this man page are very
welcome.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-01 18:44:34 +00:00
Ian Campbell 7a545e0090 docs: install text documentation
Including markdown docs.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 09:55:22 +01:00
Ian Campbell 737d28ae54 xl: add some example configuration files
These are much more minimal than the equivalent xmexamples but should
eventually reference a more complete document describing the available options.

These are based on the guest configuration files that I actually use day-to-day.

There is an unresolved reference to a document describing the complete syntax.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 09:55:14 +01:00
Ian Campbell 370af44e14 docs: add a document describing the xl vif syntax
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-27 09:54:28 +01:00
Ian Campbell bc6ffdf6b4 unmodified_drivers: update README from http://wiki.xen.org/xenwiki/UnmodifiedDrivers
Add reference to the fact that these drivers are for "classic-Xen" kernels only
and do not work with PVops but point towards the PVHVM functionality in
mainstream.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-26 17:44:03 +01:00
Ian Campbell eee42df5c1 docs: add some scaffolding for building HTML docs from markdown
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-26 17:23:37 +01:00
Ian Campbell a01547de03 docs: import HVM emulated device unplug protocol spec
Convert to markdown as I go.

Currently this lives in qemu-xen.git i386-dm/README.hvm-pv-magic-ioport-disable
and I can never find it when I want it. As we transition to upstream qemu this
location becomes less useful.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-26 17:20:21 +01:00
Anthony PERARD afb167c4cd docs: Add HowTo use QEMU upstream.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-01 18:28:50 +00:00
Daniel De Graaf b9917457d5 xenstored: Fix processing of zero-length messages
When a message with zero length is sent to xenstore, the body of the
message was not processed until the socket or ring had more data to
read; this will cause deadlocks if the requestor is waiting on a
response to continue.

Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2011-11-01 18:25:17 +00:00
Ian Campbell 33ca1047cb libxl: add a flags argument to libxl_ctx_alloc.
Currently unused but gives us scope for expansion in an ABI compatible manner
in the future.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:43 +01:00
Ian Campbell 6dc92e085b libxl: convert PCI device handling to device API
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:43 +01:00
Ian Campbell 5d834c79a4 libxl: reorder device functions to put functions for each device together.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:43 +01:00
Ian Campbell 6417c4560a libxl: convert VFB handling to device API
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:43 +01:00
Ian Campbell 00580c3a1a libxl: convert VKB handling to device API
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:43 +01:00
Ian Campbell 18e09f52f2 libxl: remove libxl_device_console_add.
It has no callers, the only code which adds consoles in internal to libxl and
uses libxl__device_console_add directly.

Rather than worrying about what the public API should look like in this case
simply remove it, adding new APIs is much easier than fixing broken ones...

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:43 +01:00
Ian Campbell 830976b9e8 libxl: convert NIC handling to device API
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:42 +01:00
Ian Campbell d2bb9b7789 libxl: convert disk handling to device API
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:42 +01:00
Ian Campbell e7466c7213 libxl: use more descriptive variable names in libxl__devices_destroy.
It's not immediately clear that "l1" iterates over device types and "l2"
iterates over individual devices. Name things in a way which makes this more
obvious.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:42 +01:00
Ian Campbell 9c85a46e0a libxl: merge libxl__device_del into libxl__device_remove
Note that the "wait" parameter added to libxl_device_remove is different to the
wait paramter previously used by similar functions. In the past not-wait meant
forced whereas now in means wait for a graceful shutdown, as opposed to setting
off a graceful shutdown but not waiting.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:42 +01:00
Ian Campbell aec4680fb1 libxl: use libxl__device in libxl_devices_destroy etc.
Use libxl__device in libxl_devices_destroy and
libxl__device_pci_remove_xenstore.

Doing this allows us to use the common functions for removing devices.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
2011-10-18 13:36:42 +01:00