`xenpvnetboot' supports getting boot images from following locations:
- http://host/path
- https://host/path
- ftp://host/path
- file:///path
- tftp://host/path
- nfs:host:/path
- /path
- /path/file.iso
- /path/filesystem.img
- /dev/sda1
- nfs+iso:host:/path/file.iso
- nfs+iso:host:/path/filesystem.img
To use it, make `xenpvnetboot' as bootloader for PV guest::
bootloader = '/usr/bin/xenpvnetboot'
To get boot images from various locations, set the right bootloader
arguments, e.g.:
bootloarder_args = ['--location=http://192.168.0.1/fedora/x86_64']
bootloarder_args = ['--location=ftp://192.168.0.1/fedora/x86_64']
bootloarder_args = ['--location=file:///fedora/x86_64']
bootloarder_args = ['--location=tftp://192.168.0.1/fedora/x86_64']
bootloarder_args = ['--location=/fedora/x86_64']
bootloarder_args = ['--location=/fedora/Fedora-16-x86_64-DVD.iso']
bootloarder_args = ['--location=nfs:192.168.0.1:/fedora/x86_64']
bootloarder_args = ['--location=nfs+iso:192.168.0.1:/fedora/Fedora-16-x86_64-DVD.iso']
You can use `kernel' and `ramdisk' to specify the relative path of
boot kernel and ramdisk. `xenpvnetboot' will join them with the
location to find the boot kernel and ramdisk, e.g.:
kernel = 'images/pxeboot/vmlinuz'
ramdisk = 'images/pxeboot/initrd.img'
bootloarder_args = ['--location=http://192.168.0.1/fedora/x86_64']
kernel = 'fedora/x86_64/images/pxeboot/vmlinuz'
ramdisk = 'fedora/x86_64/images/pxeboot/initrd.img'
bootloarder_args = ['--location=http://192.168.0.1/']
You can also omit the `--location' option and specify the full URL for
`kernel' and `ramdisk' directly, e.g.:
kernel = 'http://192.168.0.1/fedora/x86_64/images/pxeboot/vmlinuz'
ramdisk = 'http://192.168.0.1/fedora/x86_64/images/pxeboot/initrd.img'
If only `--location' is specified and `kernel' and `ramdisk' are not
specified, `xenpvnetboot' will search the following places for boot
images from the location::
('images/xen/vmlinuz', 'images/xen/initrd.img'), # Fedora <= 10 and OL = 5
('boot/i386/vmlinuz-xen', 'boot/i386/initrd-xen'), # openSUSE >= 10.2 and SLES >= 10
('boot/x86_64/vmlinuz-xen', 'boot/x86_64/initrd-xen'), # openSUSE >= 10.2 and SLES >= 10
('current/images/netboot/xen/vmlinuz', 'current/images/netboot/xen/initrd.gz'), # Debian
('images/pxeboot/vmlinuz', 'images/pxeboot/initrd.img'), # Fedora >=10 and OL >= 6
('isolinux/vmlinuz', 'isolinux/initrd.img'), # Fedora >= 10 and OL >= 6
`xenpvnetboot' requires python module `urlgrabber'
http://urlgrabber.baseurl.org/.
Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Build stubxenstore only when building stubdomains.
Fixes build failure on platforms w/o the relevant ioctl.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Introduce an empty implementation of the arch specific ARM functions in
xc_core_arm.c and xc_core_arm.h; define barriers on ARM.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Even if python version is 2.4.3 which is newer than the required
version 2.3, the configure script still raises a version issue. I
tested my patch with python 2.6.6 and 2.4.3. It will fix a syntax
error like the following.
checking for python version >= 2.3 ... Traceback (most recent call last):
File "<string>", line 1, in ?
TypeError: 'str' object is not callable
no
configure: error: Python 2.4.3 is too old, minimum required version is 2.3
Signed-off-by: Yongjie Ren <yongjie.ren@intel.com>
Acked-by: Roger Pau Monne <roger.pau@entel.upc.edu>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
If user specifies a libdir it is used, if no libdir is specified
configure checks if $exec_prefix/lib64 is a directory and uses that,
if not lib is used.
$prefix is set by passing the command line option or by default when
calling AC_OUTPUT, but since AC_OUTPUT is called at the end, this is
not really helpful, so we have to set $exec_prefix manually to the
correct value, either $prefix if different than NONE or
$ac_default_prefix.
Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
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>
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>
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>
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>
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>
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]
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>