with its requirement.
Using trap&emulate for guest's each rdtsc instruction first, maybe it
can be optimized later.
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
muldiv64 is used to caculate u64*u32/u32, and we
will use it for TSC scaling.
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
For save/restore or live migration between two different frequency
platforms, guest's preferred TSC frequency is required to caculate
guest's TSC after resotre, so save it in the image header.
Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
- Have the buid system generate a file which exports the install paths
for the hotplug scripts and stubdom / stubdom-dm
- Move file generation code from tools/python/Makefile into a gmake
macro
in Config.mk to avoid maintenance of three duplicates each with its
own
tweaks and bugs
- Export gmake variables into ioemu as shell variables
for upcoming ioemu patches
- Do above as a gmake macro to avoid maintenance of several duplicates
- Adjust hotplug scripts to find the right xen binaries from the
install directory
- Adjust stubdom-dm to use the install directories
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
- Use standard off_t and lseek() instead of non-portable off64_t and
lseek64()
- Use uuid API as documented in DCE 1.1 RPC specification
- Add NetBSD implementation for blk_getimagesize() and
blk_getsectorsize()
- Use blk_getimagesize() and blk_getsectorsize()
- Fix uuid header check
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
hvm_timer is created with the vector got from domain_irq_to_vector(),
accordingly it should use the same vector to kill the timer. The patch
corrects it in pci_clean_dpci_irqs().
Signed-off-by: Weidong Han <weidong.han@intel.com>
When we want to setup a bridge without a ip address, function
do_ifup will not activate the bridge.
We should make the bridge active, then vif-bridge can work on the
bridge.
Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
The first start of a managed domain succeeds. But the second
start of the managed domain fails as follows. The problem occurs
when tapdisks are given to the managed domain. I think that the
problem occurs because the uname of tapdisks is overwritten with
"phy:/dev/xen/tadisk-2/tapdev*".
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
This patch adds VT-d RHSA processing for IO NUMA support. The basic
idea is to parse ACPI RHSA structure to obtain VT-d HW to proximity
domain mapping. This mapping is then used when allocating pages for
Vt-d HW data structures.
Signed-off-by: Allen Kay <allen.m.kay@intel.com>
This patch fixes an issue of MSI source-id. Currently MSI source-ids
are all set device bdf. It's incorrect for PCI (not PCIe) devices. The
patch set correct requester-ids of MSI to source-id. And also, wrap
functions to clean ioapic source-id.
Signed-off-by: Weidong Han <weidong.han@intel.com>
This patch moves the pci code from iommu.c to pci.c. Instead of setup
pci hierarchy in array bus2bridge in iommu_context_mapping, use
scan_pci_devices once to add all existed PCI devices in system to
alldevs_list and setup pci hierarchy in array bus2bridge. In addition,
implement find_upstream_bridge to find the upstream PCIe-to-PCI/PCIX
bridge or PCI legacy bridge for a PCI device, therefore it's cleanly
to handle context map/unmap for PCI device, even for source-id
setting.
Signed-off-by: Weidong Han <weidong.han@intel.com>
Using changeset 19791:c0d2838fc10f, I can't create an HVM.
xend.log shows:
File "usr/lib64/python2.4/site-packages/xen/xend/image.py", line
759, in configure
store_dmargs.remove('-sdl')
ValueError: list.remove(x): x not in list
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
When try to assign vector for irq, we should not assign vector for
legacy irq, which has fixed mapped irq<->vector relationship.
Signed-off-by: Jiang, Yunhong <yunhong.jiang@intel.com>
Reset BlktapController's device class back to 'tap' once the device
has been created. This fixes save/restore for VMs with blktap2 disks.
Signed-off-by: Ryan O'Connor <rjo@cs.ubc.ca>
Signed-off-by: Dutch Meyer <dmeyer@cs.ubc.ca>
This small patch checks whether hap mode is enabled when guest is
trying to allocate 2MB pages inside P2M. This prevents potential
errors when hap is disabled.
Cc: Chris Lalancette <clalance@redhat.com>
Cc: Sarathy, Bhavna <Bhavna.Sarathy@amd.com>
Signed-off-by: Wei Huang <wei.huang2@amd.com>
Add 2 generic functions into the vendor neutral iommu interface, The
reason is that from changeset 19732, there is only one global flag
"iommu_enabled" that controls iommu enablement for both vtd and amd
systems, so we need different code paths for vtd and amd iommu systems
if this flag has been turned on. Also, the early checking of
"iommu_enabled" in iommu_setup() is removed to prevent iommu
functionalities from been disabled on amd systems.
Signed-off-by: Wei Wang <wei.wang2@amd.com>
git 1.4.x (which is on even some moderately recent systems) doesn't
have the `git remote' command. This is what caused the most recent
patchman build failure.
The machinery in buildconfigs/src.git-clone was rather more
complicated than needed, too. In this patch I replace this with a
similar set of runes to those used for ioemu-remote (almost identical
except that the QEMU_TAG feature is not supported in this instance).
I have done a successful test build with this change.
Cc: Ian Campbell <Ian.Campbell@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Due to address space restrictions it is not possible to successfully
pass more than about 500Gb to a Linux Dom0 unless its kernel specifies
a non-default phys-to-machine map location via XEN_ELFNOTE_INIT_P2M.
For non-Linux Dom0 kernels I can't say whether the limit could be set
to close to 1Tb, but since passing such huge amounts of memory isn't
very useful anyway (and can be enforced via dom0_mem=3D), the patch
doesn't attempt to guess the kernel type and restricts the memory
amount in all cases.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
This not only allows to remove ia64's special implementation of
page_list_splice_init(), but also fixes the latent issue with the
direct list head assignment in the x86 code if that would ever get
switched back to using normal list entries for linking together pages
(i.e. whenever x86-64 is to support more tha 16Tb of memory).
Signed-off-by: Jan Beulich <jbeulich@novell.com>
This patch re-enables a useful blktap1 for users who disable blktap2.
Itremoves tapdisk and blktapctrl from blktap2, both of which cause
problems with blktap operation. In addition, this patch modifies xend
to check for blktap2 installation. If the blktap2 driver isn't
running (hopefully because the dom0 kernel option wasn't selected) we
fall back to blktap.
Signed-off-by: Dutch Meyer <dmeyer@cs.ubc.ca>
Add support for the qemu monitor in a stubdom, the same way the
emulated serial support was added few days ago. The stubdom exports
the monitor as a pty and minios opens a console frontend; qemu in dom0
provides the correspondent backend for this additional pv console that
happens to be the qemu monitor.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Using changeset 19783: 61ec78692b13, device assignment can't work:
e.g., in find_the_uppermost_pci_bridge(),
parent = dev_parent.find_parent()
...
dev_parent = PciDevice(parent),
we can see parent['domain'] is int and in PciDevice's __init__,
int(dev['domain'], 16) would fail:
TypeError: int() can't convert non-string with explicit base
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Since the shared info layout is fixed, guests are required to use
VCPUOP_register_vcpu_info prior to booting any vCPU beyond the
traditional limit of 32.
MAX_VIRT_CPUS, being an implemetation detail of the hypervisor, is no
longer being exposed in the public headers.
The tools changes are clearly incomplete (and done only so things
would
build again), and the current state of the tools (using scalar
variables all over the place to represent vCPU bitmaps) very likely
doesn't permit booting DomU-s with more than the traditional number of
vCPU-s. Testing of the extended functionality was done with Dom0 (96
vCPU-s, as well as 128 vCPU-s out of which the kernel elected - by way
of a simple kernel side patch - to use only some, resulting in a
sparse
bitmap).
ia64 changes only to make things build, and build-tested only (and the
tools part only as far as the build would go without encountering
unrelated problems in the blktap code).
Signed-off-by: Jan Beulich <jbeulich@novell.com>
Instead, allocate them on demand, and adjust the consumer to no longer
assume the allocated space is contiguous.
This another prerequisite to extend to number of vCPU-s the hypervisor
can support per guest.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
There seems to be little need to use the domain, bus, slot and
function to look up the virtual slot to pass as the argument to
hvm_destroyPCIDevice(), only to have hvm_destroyPCIDevice() use the
virtual slot for the sole purpose of looking up the domain, bus, slot
and function.
Signed-off-by: Simon Horman <horms@verge.net.au>
Move dev_dict_to_sxp() into XendSXPDev.py. Move
pci_convert_dict_to_sxp() and pci_convert_sxp_to_dict() to pci.py,
where other similar functions live. This makes these functions
accessible outside of the XendConfig class.
Signed-off-by: Simon Horman <horms@verge.net.au>