Commit Graph
24945 Commits
Author SHA1 Message Date
Olaf Hering 2131e4744b xenpaging: remove obsolete XENMEM_paging_op_resume
With changeset 24364:0964341efd65 an event channel based notification of
new responses in the ringbuffer is implemented. This makes the memevent
interface obsolete. Currently a call to p2m_mem_paging_resume() is
triggered twice by xenpaging, once per memevent and once per even
channel. In practice this double call does not lead to issues because
p2m_mem_paging_resume() processes only available events.

xenpaging used the event channel notification since the beginning, but
it was a no-op until changeset mentioned above. This change removes the
unneeded XENMEM_paging_op_resume functionality. Pagers are notified via
an event channel of new requests, and now they are required to notify
the hypervisor about their responses also with an event channel.

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Tim Deegan <tim@xen.org>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 15:58:02 +00:00
Ian Jackson 546ba55410 build: rerun autoconf
24942:d70b4a1155e3 contains changes to configure.in and thus we need
to rerun autogen.sh.

Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 15:23:31 +00:00
Daniel De Graaf 1b21c0b459 build: remove hypervisor-only configuration from tools/configure
When adding autoconf support, the configuration options for XSM and
FLASK_ENABLE were incorrectly removed from Config.mk and added to the
tools configuration. Since these are hypervisor configuration options,
they should not depend on running tools configuration.

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>
2012-03-01 15:22:09 +00:00
David Vrabel a55f818f8b libxc: add MMIO hole size parameter to xc_hvm_build()
Add a parameter for the MMIO hole size when building a HVM domain.

This is useful for specifying a larger than normal MMIO hole to ensure
that no PCIe device's MMIO region overlaps with RAM in a guest's
physical address space.  This is needed on certain systems with PCIe
switches with a broken ACS capability.  On these systems, if a device
downstream of the switch attempts a DMA to a guest physical address
that overlaps with the MMIO region of another downstream device, then
the switch routes the transfer directly to the device and the read or
write never hits RAM.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 15:18:08 +00:00
David Vrabel b831d3c00f libxc: pass arguments to xc_hvm_build() in a structure
To allow new parameters to be added to the xc_hvm_build*() family of
functions, pass them in a structure.  Make the other variants fill in
the structure and call xc_hvm_build() (except for xc_hvm_build_mem()
which had no users and is removed).

The units of the mem_size and mem_target arguments are in bytes (not
MiB like the old functions).

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Acked-by: George Dunlap <george.dunlap@eu.citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 15:16:22 +00:00
Ian Jackson 5edb0601ce Merge 2012-03-01 12:31:15 +00:00
Ian Campbell 37d7ebe5b1 libxl: autogenerate libxl_FOO_init and libxl_FOO_init_FIELD
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:15 +00:00
Ian Campbell 23aba672e7 libxl: idl: generate KeyedUnion key member as part of the KeyedUnion
Rather than specifying it twice in the IDL.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:15 +00:00
Ian Campbell 53ec331a4b libxl: Make IDL KeyedUnion keyvar an idl.Field
This is more logical than having keyvar_name and keyvar_type members.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:15 +00:00
Ian Campbell 33150d8091 libxl: add libxl_domain_build_info_init_type
Use instead of parameterising libxl_domain_build_info_init. This allows callers
to initialise a libxl_domain_build_info but not to commit to a particular type
later on (e.g. after they've parsed the domain config)

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:15 +00:00
Ian Campbell 40efe53668 libxl: switch device model selection over to libxl_defbool
This allows it to be set via the _init/_setdefault methods.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
[since last v -- ERROR_INVAL on stubdomains + !traditional qemu]
2012-03-01 12:26:15 +00:00
Ian Campbell 88e865b7a6 libxl: do not explicitly initialise members of build info to zero
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:15 +00:00
Ian Campbell f1f2bcfb8c libxl: Select BIOS using libxl_domain_build_info_setdefaults
Remove libxl__domain_bios -- it is no longer necessary.

Also we appear to have been setting the xenstore key even for device models for
PV guests -- stop doing that.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:15 +00:00
Ian Campbell f05da0aa99 libxl: use defbool for graphics related options
This allows them to be set via the _init/_setdefault methods.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:15 +00:00
Ian Campbell 80c9b2be51 libxl: switch generation id control to libxl_defbool.
This allows it to be set via the _init/_setdefault methods.

Also switch the sense of the variable in the libxl API, since once you add
defbool to the mix the double negatives become even more confusing.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Paul Durrant <Paul.Durrant@citrix.com>
2012-03-01 12:26:15 +00:00
Ian Campbell 071a3436df libxl: make boolean members of libxl_domain_build_info into libxl_defbool
This allows them to be set via the _init/_setdefault methods.

This just covers the obvious ones.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:15 +00:00
Ian Campbell 9c5defc464 libxl: make boolean members of libxl_domain_create_info into libxl_defbool
This allows them to be set via the _init/_setdefault methods.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:14 +00:00
Ian Campbell 50cbda0d0b libxl: add new "defbool" built in type.
This type is a but like a "boolean" but with a third state "default" (so really
I suppose it's a tristate).

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:14 +00:00
Ian Campbell 966deb4db6 libxl: pci: use _init/_setdefault
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:14 +00:00
Ian Campbell ffa165bb9f libxl: make libxl_device_console internal
consoles are not directly exposed to users of the library and there are no API
functions for manipluating them (only the console_exec function). Rather than
commit to a particular API now make the type internal.

When a user does come along it is much easier to add a completely new API
rather than to fix an existing broken one. It's easier to do this in a manner
which users of the library can cope with in a compatible way e.g. adding a new
API is easier to check for with ./configure.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:14 +00:00
Ian Campbell 31278f6850 libxl: vfb/vkb: use _init/_setdefault
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:14 +00:00
Ian Campbell 5c5a36663a libxl: nic: use _init/_setdefault
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:14 +00:00
Ian Campbell b5f5a358b5 libxl: disk: use _init/_setdefault
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:14 +00:00
Ian Campbell 8100d0b3cd libxl: introduce a descriminating default value for memkb fields.
Consitently make such fields 64 bit values as used by dominfo.

It is not clear if ->video_memkb and/or shadow_memkb shouldn't be part of
->u.hvm but I have not changed that here.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:14 +00:00
Ian Campbell aef7f7836d libxl: drop 8M slack for PV guests.
This serves no purpose. It relates to the old 8M to "account for backend
allocations" which we used to add. This leaves a bit of unpopulated space in
the Pseudo-physical address space which can be used by backends when mapping
foreign memory. However 8M is not representative of that any more and modern
kernels do not operate in this way anyway.

I suspect an argument could be made for removing this from the libxl API
altogether but instead lets just set the overhead to 0.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:14 +00:00
Ian Campbell 2d058a444a libxl: use an explicit LIBXL_TIMER_MODE_DEFAULT value
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:13 +00:00
Ian Campbell 7e449837dc libxl: provide _init and _setdefault for libxl_domain_build_info.
Some fields require further scaffolding before they can use the
_init/_setdefault scheme and are handled in later patches.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:13 +00:00
Ian Campbell c8d71a6de2 libxl: provide _init and _setdefault for libxl_domain_create_info.
Some fields require further scaffolding before they can use the
_init/_setdefault scheme and are handled in later patches.

It doesn't seem reasonable for the library to pick a default for the domain
type so reject as invalid.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:13 +00:00
Ian Campbell 95cb7aa35b libxl: Document _init/_dispose/_setdefault functions.
Subsequent patches will transition to them.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:13 +00:00
Ian Campbell 9dc5f1364d libxl: generate a _dispose function for all Aggregate types
Don't special case types which we happen to know do not contain allocated data
such that in the future if this changes we do not need to add an API. Although
there is likely to be latent bugs in callers due to this having the API in old
libraries mean that when callers are fixed they will not need to make special
arrangements to handle old and new versions of the library.

Adds dispose functions for:
 - libxl_dominfo
 - libxl_cpupoolinfo
 - libxl_physinfo
 - libxl_sched_credit
 - libxl_sched_credit2

I have attempted to fix any latent bugs in xl by inspection but have not
bothered with libxl (on the basis that internally the library is allowed to
make these sorts of assumptions and because it was looking like a very invasive
job and that more would only creep in anyway).

Several callsites use libxl_domain_info to check for the presence of a domain
and throw away the actual info. As a convenience accept a NULL info pointer and
just return the status.

Also fix a memory leak in libxl_domain_list.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:13 +00:00
Ian Campbell cad39d78f0 libxl: allow specification of testidl random seed.
Useful if you are interested in before/after results of changing the IDL or
generator.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-03-01 12:26:13 +00:00
Ian Campbell b14793cc5f libxl: Remove xen/sched.h from public interface
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:13 +00:00
Ian Campbell 5fc905880c libxl: remove sysctl.h from public interface
Using sysctl.h is restricted to "node control tools only" and requires magic
defines. Therefore make its use internal to libxl.

Also removes an indirect include of domctl.h which has the same restrction.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2012-03-01 12:26:13 +00:00
Ian Campbell 44922a0a49 configure: do not require Bison or Flex
This isn't required because we also checkin the generated files.  A
more complete fix might also allow the user to force regeneration but
I didn't bother here.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-02-29 17:01:41 +00:00
Attilio Rao 1341ac67a3 libxl, xl: Add the bios option to specify the bios to load
Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-02-29 16:25:38 +00:00
Keir Fraser d04b4856b5 Revert 24897:f25e5785327e "Export configure variables to hypervisor build"
Signed-off-by: Keir Fraser <keir@xen.org>
2012-02-29 15:11:31 +00:00
Ian Jackson b4cb6ebb6f tools: xencommons: revert accidental hunk in 24905:2b5cf6bde62d
24905:2b5cf6bde62d accidentally contained a change to
tools/hotplug/Linux/init.d/xencommons.  That change is probably OK but
should not be in 24905 so remove it.

Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-02-29 14:38:28 +00:00
Roger Pau Monne 51efccc2cd install: remove old checks from install.sh
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>
2012-02-29 14:36:04 +00:00
Olaf Hering 9c33ab91c5 libxl: use libxl wrapper for yajl_gen_alloc
To fix compile errors with libyajl2:
 * use libxl_yajl_gen_alloc()
 * use libxl_yajl_length
 * link xl with -lyajl for yajl_gen_string()

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-02-29 14:32:51 +00:00
Olaf Hering 244ae51879 libxl: rename libxl__yajl_gen_alloc
libxl__yajl_gen_alloc() is called by generic code,
rename it to libx_yajl_gen_alloc().

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
2012-02-29 14:31:59 +00:00
Dietmar Hahn 9e459f88d1 vpmu: No need for two initialisation functions
With the changeset 24529:87854d3bed93 we got 2 initialisation
functions for the arch specific stuff. This is no more needed.

Signed-off-by: Dietmar Hahn <dietmar.hahn@ts.fujitsu.com>
Committed-by: Keir Fraser <keir@xen.org>
2012-02-29 13:51:42 +00:00
Dietmar Hahn f3ff1b2db4 vpmu: cleanup structures
- struct msr_load_store_entry is unused
- struct pmumsr is only used in the vmx part

Signed-off-by: Dietmar Hahn <dietmar.hahn@ts.fujitsu.com>
Committed-by: Keir Fraser <keir@xen.org>
2012-02-29 13:51:12 +00:00
Daniel De Graaf 88683bd373 xsm: expose context of event channel peers
This hypercall allows a domain to identify the security context of a
domain that it is communicating with using the interdomain event
channel that it is using for the communication. This can be used to
augment Xen's security permissions with intra-domain security checks.

Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Committed-by: Keir Fraser <keir@xen.org>
2012-02-29 13:48:41 +00:00
Daniel De Graaf 42d446c595 xsm/flask: buffer AVC messages for output
When multiple CPUs hit an AVC audit message, the resulting output in
the ring buffer and serial console is garbled due to the audit process
using many separate printk invocations for each message. Change the
AVC audit process to use a temporary buffer and output the contents
once the entire audit message is complete.

Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Committed-by: Keir Fraser <keir@xen.org>
2012-02-29 13:47:41 +00:00
Daniel De Graaf 4e7cbab278 xsm/flask: clean interdomain event channel hook
Don't attempt to relabel the already-bound half of the event channel
pair created by an interdomain event channel. This relabeling also
performed an incorrect check that the destination domain is permitted
to create the reverse event channel, which may not be true if the
unbound channel was created by the domain builder (like the xenstore
channel).

Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Committed-by: Keir Fraser <keir@xen.org>
2012-02-29 13:47:11 +00:00
Daniel De Graaf b34f2c3750 xsm: label xen-consumer event channels
Event channels created during the domain build process for HVM domains
did not call the XSM creation hook. Since these channels are used
internally by Xen, redirect them to DOMAIN_INVAID instead of failing
to create if the XSM hook fails the permissions check.

Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Committed-by: Keir Fraser <keir@xen.org>
2012-02-29 13:46:32 +00:00
Keir Fraser c5d88f34ce Update autoconf-generated configure script.
Signed-off-by: Keir Fraser <keir@xen.org>
2012-02-29 13:43:44 +00:00
Daniel De Graaf 305ea73d1b build: Export configure variables to hypervisor build
Since the introduction of autoconf, builds with XSM enabled in .config
have been broken unless FLASK_ENABLE was explicitly set. Since the
setting in .config has apparently been deprecated in favor of an
autoconf --enable-xsm, add config/Xen.mk to export this to Xen. This
also makes --disable-debug and some paths to be pulled from the
configure process in the hypervisor build.

Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Committed-by: Keir Fraser <keir@xen.org>
2012-02-29 13:40:25 +00:00
Attilio Rao 0c2dccd724 hvmloader: drop the ovmf32 support and rename ovmf64 -> ovmf.
- Remove the 15cpus hack from ovmf because it should be unnecessary on
nowadays windows/EFI supported.

Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Keir Fraser <keir@xen.org>
2012-02-29 13:33:51 +00:00
Tim Deegan 7802d99398 arm: Handle booting on SMP platforms
Make all non-boot CPUs wait forever instead of trying to boot in parallel.

Signed-off-by: Tim Deegan <tim@xen.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
2012-02-28 10:17:27 +00:00