Commit Graph
19786 Commits
Author SHA1 Message Date
Keir Fraser cc7728d8f7 Remove bogus checked in file headers.chk, remove it on make clean, and
add it to .hgignore file.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2009-06-18 09:56:28 +01:00
Keir Fraser 1a831ab9ac x86 svm: Clean up and fix start_svm() to avoid memory leaks and
resetting ASID generations.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
2009-06-18 09:47:49 +01:00
Keir Fraser 99951f1845 xend: pass-through: Clean up hvm_destroyPCIDevice()
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>
2009-06-17 07:39:27 +01:00
Keir Fraser 97fbb6346a xend: pass-through: Use common parsing code in getDeviceConfiguration()
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-17 07:39:03 +01:00
Keir Fraser a96eef5ee3 xend: pass-through: Use common parsing code in parse_pci_configuration()
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-17 07:38:42 +01:00
Keir Fraser fc1e96389c xend: pass-through: Add pci_tuple_to_dict()
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-17 07:38:03 +01:00
Keir Fraser 63524b0e43 xend: pass-through: Use generic code in pci_opts_list_to_sxp()
Use dev_dict_to_sxp() inside pci_opts_list_to_sxp() now that it is
available.

Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-17 07:37:26 +01:00
Keir Fraser ce004c4b0f xend: pass-through: Move pci conversion functions to pci.py
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>
2009-06-17 07:36:47 +01:00
Keir Fraser 29baf765df Subject: xend: pass-through: Add pci_dict_cmp()
pci_dict_cmp() compares the two pci devices in dict format.

Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-17 07:35:51 +01:00
Keir Fraser 5a6a2f7e9b xend: pass-through: Common parse_pci_name()
Share some parsing code between different parts of xm.

This has the side-effect that the device specification for
hot-plug may now include the VSLOT and OPTS as per device
specifictions in the domain configuration file.

  SEQ:BUS:DEV.FUNC[,OPT...]

  e.g. 0000:00:01.00@6

Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-17 07:34:59 +01:00
Keir Fraser 60c32a612f stubdom: update config example to reflect that the serial option can
now be used.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2009-06-17 07:23:40 +01:00
Keir Fraser ac663c94f0 xenconsole: fix assumption about printed max domid length.
Also snprintf includes the final '\0' in the char count.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2009-06-17 07:23:06 +01:00
Keir Fraser c12b25aa7d minios: support secondary guest consoles.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2009-06-17 07:22:18 +01:00
Keir Fraser 6f1d3ce238 Introduce mechanism to check standard conformance of headers
While pretty simplistic, it appears to serve the purpose at the moment
(i.e. it spotted two places where a GNU extension was used withou
proper preprocessor conditionals). The "simplistic" here includes that
the checking gets only done for native builds, and ia64 gets excluded
due to its arch-specific header intentionally (for whatever reason)
checking that anonymous struct/unions can be used.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2009-06-17 07:21:03 +01:00
Keir Fraser c93bd0e6ea tmem: fix 32-on-64 support
This implicitly required coverting the tmem_op structure from
anonymous to standard struct/union sub-fields, and extending the
get-fields.sh helper script to deal with typedef-ed guest handles used
as types of translated compound type fields.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2009-06-17 07:14:02 +01:00
Keir Fraser c133cc38e2 x86: fix s3 resume on AMD CPUs
Avoid longjmp as it has different semantics than on Intel CPUs in long
mode. Also add a few comments and remove a pointless reload of DS.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
2009-06-16 14:19:34 +01:00
Keir Fraser 50f27130b5 x86: Allow guests to allocate up to 2MB (superpage) memory extents.
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
2009-06-16 14:04:15 +01:00
Keir Fraser cc0de53a90 x86: improve output resulting from sending '0' over serial
While the original logic already implied that the kernel part of the
guest's address space is identical on all vCPU-s (i.e. for all guest
processes), it didn't fully leverage the potential here: As long as
the top page table currently active is owned by the subject domain
(currently only Dom0), the stack dump can be done without extra
effort.

For x86-64, additionally add page table traversal so that the stack
can be dumped in all cases (unless it's invalid or user space).

I left the 32-bit variant of do_page_walk() unimplemented for the
moment as I couldn't convince myself using map_domain_page() there is
a good idea, and didn't want to introduce new fixmap entries either.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2009-06-16 13:57:18 +01:00
Keir Fraser 360f174b3d x86/hvm: don't pass through port 0x80 in a few special cases
In a recent commit (99f85a28a78e96d28907fe036e1671a218fee597), KVM
disabled the passthrough of this port due to known problems on certain
HP laptops (see
http://lkml.indiana.edu/hypermail/linux/kernel/0712.3/0872.html
and http://lkml.indiana.edu/hypermail/linux/kernel/0801.0/2388.html).

For Xen, don't do this globally, but rather based on a DMI black list.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2009-06-16 13:52:13 +01:00
Keir Fraser 767d7a478a vtd: ats and queued invalidation cleanup
Use iommu_qinval in place of qinval_enabled flag.  Use
ecap_queued_inval() for determining whether queued invalidation is
available on this vt-d engine or not.

Signed-off-by: Allen Kay <allen.m.kay@intel.com>
2009-06-16 13:41:17 +01:00
Keir Fraser 2d61801bce x86, hvm: set vcpu->is_initialised after restore/migration
After restore/migration, the xenctx command for auxiliary vcpus
fails with a message "xc_vcpu_getcontext: No data available".

Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
2009-06-16 13:39:00 +01:00
Keir Fraser 9640ac9154 x86, hvm: fix a domain_lock leak
Signed-off-by: Kouya Shimura <kouya@jp.fujitsu.com>
2009-06-16 13:33:12 +01:00
Keir Fraser 9ed6a7c5dd xend: support for older pciutils without -vmm option, and improve
error handling in get_info_from_lspci().

Signed-off-by: Zhigang Wang <zhigang.x.wang@oracle.com>
2009-06-16 11:53:47 +01:00
Keir Fraser 7cd9ff256c tmem: cleanups
- don't mis-use guest handle for passing an MFN value
- eliminate unnecessary (and misplaced) use of XEN_GUEST_HANDLE_64
- use copy_from_guest() instead of __copy_from_guest() for loading the
  argument structure

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2009-06-16 11:47:09 +01:00
Keir Fraser afd4c19a15 xend: pass-through: Use common parsing code in preprocess_pci()
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-16 11:41:31 +01:00
Keir Fraser bf17cf4c4c xend: pass-through: Use PCIDevice as the parameter for the constructor for PCIQuirk
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-16 11:39:02 +01:00
Keir Fraser 6c4c01bd43 xend: pass-through: Remove PciDeviceNotFoundError, it is never used
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-16 11:38:33 +01:00
Keir Fraser 52ecedb262 xend: pass-through: sxp.merge() cant deal with values being a list
sxp.merge() can't deal with values being a list so instead
of storing pci options as:

[ 'opts', [ 'key1' 'value1'], [ 'key2', 'value2'], ...]

store them as:

[ 'opts', [ 'key1' 'value1'], ['opts', [ 'key2', 'value2']], ...

Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-16 11:37:41 +01:00
Keir Fraser fb8a264cd0 xend: pass-through: cleanupDevice: move and remove recently added vslot entry
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-16 11:36:40 +01:00
Keir Fraser 005f6dc9a8 xend: pass-through: tidy up PciController()
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-16 11:36:03 +01:00
Keir Fraser e5c65dc72e xend: pass-through: fix typo: spx -> sxp
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-16 11:35:16 +01:00
Keir Fraser 678e6d8b30 xend: pass-through: Only call setupOneDevice() once per device
As observed by Dexuan Cui, when PCI devices are passed through at
domain-creation-time setupOneDevice() will be called twice.

Once via setupDevice() and once via econfigureDevice() which
is called in pci_device_configure().

This patch removes the first of these.

Cc: Dexuan Cui <dexuan.cui@intel.com>
Cc: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
2009-06-16 11:33:23 +01:00
Keir Fraser 70ba0db350 vtd: Clean up lock for VT-d register writes
It should get lock to write VT-d registers. Currently there are some
register writes without lock. This patch complements register_lock for
those writes.

Signed-off-by: Weidong Han <weidong.han@intel.com>
2009-06-16 11:31:20 +01:00
Keir Fraser 2e9127c7a5 vtd: Fix flush for SRTP and SIRTP set
SRTP (Set Root Table Pointer) operation must be set before enable or
re-enable DMA remapping. And after set it, software must globally
invalidate the context-cache and then globally invalidate the
IOTLB. This is required to ensure hardware uses only the remapping
structures referenced by the new root-table pointer, and not stale
cached entries. Similarly, SIRTP (Set Interrupt Remap Table Pointer)
operation must be set before enable or re-enable Interrupt
remapping, and after set it, software must globally invalidate the
interrupt entry cache. This patch adds global context and iotlb
flush after set root entry, and globally flushs interrupt entry
cache before enabling Interrupt remapping. And remove the
iommu_flush_all in iommu_resume becuase it becomes redundant after
adds flush for SRTP in init_vtd_hw.

Signed-off-by: Weidong Han <weidong.han@intel.com>
2009-06-16 11:30:45 +01:00
Keir Fraser 7e03843de6 xend: support multiple consoles per domain
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2009-06-16 11:25:37 +01:00
Keir Fraser c811d0d548 xenconsole: support for multiple consoles per domain
This patch adds a new command line argument to xenconsole to specify
to which console to connect to in case a domain has more than one.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2009-06-16 11:24:58 +01:00
Keir Fraser f84ee327e5 tmem: fix minor accounting error
Reset a counter when all tmem pages are released.  This
only affects status reporting (as displayed by xm tmem-list
or the just patched xenballoon-monitor) but the incorrectly
reported result is misleading.

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
2009-06-16 11:18:32 +01:00
Keir Fraser 78c4e40239 tools/xenballoond: add tmem capability to directed/self-ballooning
and monitor tool

This patch adds tmem support to the largely unknown/unused
xenballoond scripts that implement both self-ballooning and
a foundation for directed-ballooning.  Tmem and automated
ballooning are highly complementary in that, when ballooning
is over-aggressive, paging and swapping can increase noticably.
Precache preserves evicted pages that may be needed again soon
(thus eliminating disk reads) and preswap provides memory-based
swapping that occurs if ballooning is insufficiently responsive
to a sudden increase in activity and memory demand (thus
eliminating disk writes and reads).

There are two changes in this patch:

1) The xenballoond service is a convenient place to implement
   userland "preswap shrinking".**
2) The xenballoon-monitor script is a convenient place to
   report (and view with "watch -d") the frequent memory
   rebalancing that results from tmem usage on a busy system.

Note that for best results (and for the monitor script to
work), the xenstore-* tools should be installed on each guest.

(** In a disk-based swap device, stale pages are often left
  on-disk even after they are no longer needed or valid; they
  are simply overwritten if/when the disk blocks are needed
  again, which may be a very long time.  Preswap behaves
  much like a disk, but uses precious pages of memory that
  count against a guest's memory allocation; thus stale
  pages are very undesirable.  Preswap shrinking periodically
  attempts to remove stale pages from preswap by using a
  sysfs interface created by the linux-side tmem patch.)

Signed-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>
2009-06-16 11:17:28 +01:00
Keir Fraser 662b95dadd x86: Switch to using pvops kernel by default for Linux
Keave ia64 on 2.6.18 since it currently has no dom0 support in pvops

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
2009-06-16 11:15:48 +01:00
Keir Fraser 3cc3cacd42 Remove bogus link from COPYING file.
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
2009-06-16 11:11:59 +01:00
Keir Fraser 9c7be4de83 Fix dependencies in tools/include/xen-foreign/Makefile
Signed-off-by: Jan Beulich <jbeulich@novell.com>
2009-06-16 11:01:17 +01:00
Keir Fraser 51e4a7555d xend: allow config file compatibility with new tap syntax
Recently the format of the tap syntax in the config file changed to
using a 4 part specifier (tap:tapdisk:<format>:<filename>) instead
of the old 3-part one (tap:<qcow>:<filename>).
This breaks compatibility with existing config files: a guest start
will throw a Python exception and will be aborted.
AFAICS currently tap:tapdisk is redundant, so the attached patch
simply catches the above mentioned exception and tries to parse the
old format in this case.

Signed-off-by: Andre Przywara <andre.przywara@amd.com>
2009-06-16 11:00:29 +01:00
Keir Fraser e966818264 x86 mca: Support MCA recovery actions for latest Intel platforms
When an UC = 1 PCC = 0 MCE happens, there're more types of software
recoverable error defined on on latest Intel Platform. For identifying
those new errors, some new bit (S/AR bit) is defined in MCi_STATUS
register. Also we need MCACOD help's to judge the detailed
error. Combined with the OVER bit, different recovery policies are
required for containing those new errors.

SRAO error  is an software recoverable MCA error, no recovery action
required. while SRAR  is an software recoverable MCA error, recovery
action is required.

Signed-off-by: Liping Ke <liping.ke@intel.com>
Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
2009-06-16 10:58:56 +01:00
Keir Fraser 3e71ff4418 xend: Show "bootable" information only once in 'xm list --long'
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
2009-06-16 10:55:36 +01:00
Keir Fraser 71489b7cd2 blktap2/vhd, daemon: serialize subdirs-all and subdirs-install
make install in vhd and daemon, subdirs-all and subdirs-install
are invoked parallel causing nasty error.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
2009-06-16 10:54:10 +01:00
Keir Fraser b8d155220b Update QEMU_TAG to e0bb6b8df60863bca0163a1688baf4854e931e55 2009-06-08 18:23:57 +01:00
Keir Fraser 54c07de022 xend: pci: fix extract_the_exact_pci_names()
Changeset 19726: d8b7b51f482b neglects the case pci_names could be
types.ListType.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2009-06-08 12:24:14 +01:00
Keir Fraser e54c12cdbd x86 hvm: move dirty_vram into struct hvm_domain
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
2009-06-05 14:04:03 +01:00
Keir Fraser 7c18f04cb3 vmx: Change xen macro name for Intel vmexit reason 41
This VMEXIT (reason 41) indicates MCE during a VMENTRY, the old macro
definition is misleading us.

Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
2009-06-05 09:32:03 +01:00
Keir Fraser 819d2f263c blktap2: README updates
As promised, this brings the long out-of-sync documentation up to
date, and adds some getting started information about tapdisk driver
development - I get the occasional email on this latter subject.

Signed-off-by: Dutch Meyer <dmeyer@cs.ubc.ca>
2009-06-05 09:31:23 +01:00