Commit Graph
15217 Commits
Author SHA1 Message Date
Steven Hand 6ef7b1c696 Ensure CR0.TS is set for VMX domains regardless of the current
state of the real TS bit. This fixes a number of subtle FP
corruption issues within PV domains when running alongside VMX ones.

Signed-off-by: Steven Hand <steven@xensource.com>
2007-06-04 16:47:48 +01:00
Ian Campbell 7fe901b954 If we find a Linux repository in $(LINUX_SRC_PATH) then symlink it
instead of cloning it. This enables developers to keep a linux tree
separate to their xen repository and to make changes there which are
picked up by the Xen build.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-06-04 15:41:32 +01:00
kfraser@localhost.localdomain 1af8c5189c Fix boot loader hangs with syslinux's 32-bit vesamenu module.
Syslinux can load 32-bit UI code for menu handling.  But the core of
syslinux is still 16-bit.  When it jumps to this 32-bit code, it
installs a set of 32-bit interrupt trap handlers which just bounce the
interrupts back to 16-bit mode.

But this plays badly with vmxassist.  When running 16-bit boot loader
code, vmxassist installs its own trap handlers which bounce vPIC
interrupts back down to 16-bit mode.  The trap handlers live at
int 0x20 to 0x2f, so when the 16-bit code tries to reprogram the vPIC,
vm86 rewrites the outb()s on the fly to set the irq_base vectors
accordingly.

So when syslinux enters 32-bit mode, the vPIC has still been
programmed to point to vmxassist's bounce traps, even though vmxassist
is no longer active once the guest is running 32-bit code.  So the
wrong interrupts get delivered to the guest.

Fix this by restoring the rombios vPIC irq_base vectors when we leave
vmxassist mode, and returning the vmxassist traps when we reenter it.
These irq base values are hard-coded in this patch, but they are
already hard-coded in vmxassist so any boot code that relies on
changing them will already fail.

Signed-off-by: Stephen Tweedie <sct@redhat.com>
2007-06-04 15:32:11 +01:00
kfraser@localhost.localdomain d47ae8ebf0 qemu: More care over filename string sizes.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-06-04 15:21:12 +01:00
kfraser@localhost.localdomain fe26a9d296 Use name instead of pid in QEMU logs.
Change the logfile name generated by qemu-dm to use the pattern
qemu-dm-[NAME].log instead of qemu-dm-[PID].log. This makes it
easier for the adminsitrator to figure out which log corresponds to
which guest (particularly after a crash where you no long know what
PID the qemu-dm process for your guest had). It also prevents the
number of log files from growing unbounded.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2007-06-04 15:17:49 +01:00
kfraser@localhost.localdomain 96763f7c9a Add persistent guest & hv logging in xenconsoled.
* The  --log  command line argument takes one of 4 values

      - none   - no logging   (the default)
      - hv     - log all hypervisor messages
      - guest  - log all guest messages
      - both   - log all guest & hypervisor messages

  * The --log-dir command line argument takes a path to specify where
    to store logfiles. If omitted it defaults to /var/log/xen/console

  * The hypervisor logfile is $LOGDIR/hypervisor.log

  * The guest logfile is  $LOGDIR/guest-[NAME].log

  * If receiving a SIGHUP it will close & re-open all log files to
    enable logrotate to do its magic

  * Fixes the permissions of /var/run/xenconsoled.pid

  * Adds a --pid-file command line argument to override the default
    location of pid file (this is not really related to logging, but
    since I was in that code...)

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2007-06-04 14:49:12 +01:00
kfraser@localhost.localdomain 943767ccb9 Enable ACM on PPC
Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2007-06-04 14:40:12 +01:00
kfraser@localhost.localdomain 9282794cf5 gdbstub: Bit-field boolean must be unsigned.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-06-04 14:25:03 +01:00
kfraser@localhost.localdomain 3bb3120193 xentrace: Bit-field boolean must be unsigned.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-06-04 14:24:46 +01:00
kfraser@localhost.localdomain 765ebff1db xen: Fix domain teardown to avoid use-after-free of vcpu structs.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-06-04 14:05:10 +01:00
Ian Campbell fe4fa7d7f7 Remove a few stray references to the sparse tree.
The only non-obvious change here is in tools/xenfb/Makefile. This now picks up
the headers it requires via the copy in tools/libxc.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-06-04 12:47:53 +01:00
Ian Campbell 7c8c43eb65 Remove $(LINUX_SRCDIR) on distclean.
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-06-04 11:37:50 +01:00
Ian Campbell c58e445d1c Remove sparse tree.
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-06-04 11:16:19 +01:00
kfraser@localhost.localdomain 06809a93ad [NET] Remove netloop from network bridge init scripts.
The scripts are partly based on work by Daniel P. Berrange.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2007-06-04 11:01:46 +01:00
Ian Campbell d18c70c482 Switch over to separate Linux tree.
The sparse tree is now deprecated and will deleted in due course. The
xen-unstable build system will automatically clone the correct Linux
tree for you and all the old makefile targets
(dist/linux-2.6-xen{,0,U}/etc) should continue to work.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-06-04 10:14:53 +01:00
Ian Campbell 9a787c389c Added tag sparse-tree-deprecated for changeset bd3d6b4c52ec809f080c89c4ffcf61dc6e445978 2007-06-04 10:14:23 +01:00
Tim Deegan 17caf7b1a9 [XEN] Shadow: cache gva->gfn+rights translations between guest TLB flushes
to make lookups faster for emulation and hvm_copy.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
sparse-tree-deprecated
2007-06-01 14:50:52 +01:00
Tim Deegan 6b73fb435b [XEN] Shadow: emulate a few extra instructions on PAE pagetable writes
in the hope of catching the "other half" write without another enter/exit.
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
2007-06-01 14:32:11 +01:00
kfraser@localhost.localdomain a561aacab7 VMX: Only write top-half of machine addresses into VMCS fields in PAE mode.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-31 16:09:11 +01:00
kfraser@localhost.localdomain 2aa3ae0fbf hvm: Pause domain during state save/load.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-31 16:05:27 +01:00
Ian Campbell a7cc66ccfc Updates for XEN_LINUX_SOURCE=hg-clone.
By default search for mercurial repositories in $(LINUX_SRC_PATH)
followed by a location derived from the current Xen repository's
default parent. e.g. A clone of
http://xenbits.xensource.com/xen-unstable.hg will derive
http://xenbits.xensource.com/linux-2.6.18-xen.hg. A specific
repository can be specified by giving XEN_LINUX_HGREPO=<URL or path>
on the make command line.

Add capability to put XEN_LINUX_UPDATE=y on the make command line to
update the Linux repository. Disabled by default since we don't want
to touch a developers repository without permission.

Dropped XEN_LINUX_HGUPDATES since it was unecessary and confusing.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-05-31 14:51:09 +01:00
kfraser@localhost.localdomain 06bdfbd284 hvm: Exceed maximum number of ioemu's NIC for VNIF.
QEMU should ignore excess NICs instead of failing to initialise.

Signed-off-by: Takanori Kasai <kasai.takanori@jp.fujitsu.com>
Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com>
2007-05-31 10:58:22 +01:00
kfraser@localhost.localdomain cdcecbefd4 hvm: Allow GNTTABOP_query_size.
Signed-off-by: Takanori Kasai <kasai.takanori@jp.fujitsu.com>
Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@jp.fujitsu.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-31 10:53:11 +01:00
kfraser@localhost.localdomain db4208af98 Fix stale email addresses in xenstat and xentop.
Our @us.ibm.com emails cannot forward to us; we do not have access to
them when not interning at IBM.  People have attempted to reach us via
those addresses and failed; occasionally they've Googled for a current
address, which made us realize the problem.  Change each email to a
more permanent address, so people can reach us in the future.  Change
bug reporting addresses to a xen mailing list rather than an
individual.

Signed-off-by: Josh Triplett <josh@kernel.org>
2007-05-31 10:42:34 +01:00
kfraser@localhost.localdomain ced5801d8b Fix the very-slow-IDE-IO-speed issue of Qemu 0.90
c/s 15021 updated Qemu to 0.90. In the new Qemu's ide.c, asynchronous
IO (AIO) is used to replace the previous DMA thread; here when an AIO
request is completed, dom0 sends a signal SIGUSR2 to Qemu (see
block-raw.c: qemu_aio_init(),raw_aio_setup()), then the signal
interrupts the select() in main_loop_wait() at once, next,
qemu_aio_poll() is called to reap a completed AIO request.

However, in certain Linux distributions (i.e., x86_64 RHEL 4u4), if
Qemu is spawned by the python script image.py of Control Panel, the
SIGUSR2 of Qemu is blocked by default due to some reasons (i.e. it
seems Python 2.3.4 has this issue; 2.4.2 is ok); so in most cases the
select() in main_loop_wait() can only time out in 10ms, then the
qemu_aio_poll() is called - this results in a very slow disk IO
speed...

This patch ensures aio_sig_num is unblocked when the AIO is used in
Qemu 0.90.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2007-05-31 10:30:15 +01:00
kfraser@localhost.localdomain f5e0354c53 hvm: Correctly hook VLAPIC MSR change notification for VMX into
save/restore path.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-31 09:49:53 +01:00
kfraser@localhost.localdomain 29edaf88e2 Remove 'hpet_force' option. Replace with 'clocksource' option to allow
forced selection of platform clocksource, overriding the default
priority ordering.

Usage: clocksource={pit,hpet,cyclone,acpi}

Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-30 18:29:21 +01:00
kfraser@localhost.localdomain dc059c5b49 Add support for ACPI PM Timer as platform clock source.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-30 18:12:02 +01:00
kfraser@localhost.localdomain 603d6a3905 Clean up around domain init/destroy.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-30 17:47:00 +01:00
Ian Campbell d3f7f10c42 Make header mismatch checking more robust against build time changes in
xen/include/public/foreign.

Unfortunately diff's -x and -X options do not support excluding paths just
individual files so we have to list unqualified filenames. This is ok for now
since there are no filename clashes.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-05-30 17:37:58 +01:00
kfraser@localhost.localdomain 4ae289712c Simplify APIC_ACCESS VMX support.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-30 17:01:26 +01:00
kfraser@localhost.localdomain 9d2eebd1f1 Add VMX memory-mapped Local APIC access optimization.
Some operating systems access the local APIC TPR very frequently, and
we handle that using software-based local APIC virtualization in Xen
today. Such virtualization incurs a number of VM exits from the
memory-access instructions against the APIC page in the guest.

The attached patch enables the TPR shadow feature that provides APIC
TPR virtualization in hardware. Our tests indicate it can
significantly boost the performance of such guests including 32-bit
Windows XP/2003.

Moreover, with the patch, local APIC accesses other than TPR in guests
are intercepted directly as APIC_ACCESS VM exits rather than
PAGE_FAULT VM exits; this can lower the emulation cost of such
accesses.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2007-05-30 16:48:28 +01:00
Ian Campbell 0055a08a1a Check for mismatch between headers shared by Linux and Xen.
This is only enabled for the linux-2.6-xen tree and is intended to
ensure that the separate Linux tree stays up to date once we
switch away from the sparse tree.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-05-30 13:10:20 +01:00
Ian Campbell ca938d8cc6 Fix preemption of multicalls in compat mode.
mcs->call (struct multicall_entry) always needs to be translated into
mcs->compat_call (struct compat_multicall_entry) when a multicall is
preempted in compat mode. Previously this translation only occured for
those hypercalls which explicitly called hypercall_xlat_continuation()
which doesn't cover all hypercalls which could potentially be
preempted.

Change hypercall_xlat_continuation() to only translate only the
hypercall arguments themselves and not the multicall_entry
layout. Translate the layout for all hypercalls in in
compat_multicall() instead.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-05-30 11:55:38 +01:00
kfraser@localhost.localdomain 96469475a6 [NET] back: Add lazy copying
This patch adds lazy copying using the new unmap_and_replace grant
table operation.

We keep a list of pending entries sorted by arrival order.  We'll
process this list every time net_tx_action is invoked.  We ensure
that net_tx_action is invoked within one second of the arrival of
the first packet in the list.

When we process the list any entry that has been around for more
than half a second is copied.  This allows up to free the grant
table entry and return it to domU.

If the new grant table operation is not available (e.g., old HV
or architectures that don't support it yet) we simply copy each
packet as we receive them using skb_linearize.  We also disable
SG/TSO if this is the case.

By default the new code is disabled.  In order to enable it,
the module needs to be loaded with the argument copy_skb=1.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2007-05-30 10:47:05 +01:00
kfraser@localhost.localdomain 403542f910 [LINUX] gnttab: Add basic DMA tracking
This patch adds basic tracking of outstanding DMA requests on
grant table entries marked as PageForeign.

When a PageForeign struct page is about to be mapped for DMA,
we set its map count to 1 (or zero in actual value).  This is
then checked for when we need to free a grant table entry early
to ensure that we don't free an entry that's currently used for
DMA.

So any entry that has been marked for DMA will not be freed early.

If the unmapping API had a struct page (which exists for the sg
case) then we could do this properly.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2007-05-30 10:46:13 +01:00
kfraser@localhost.localdomain 38d075a82c [XEN] gnttab: Add new op unmap_and_replace
The operation unmap_and_replace is an extension of unmap_grant_ref.
A new argument in the form of a virtual address (for PV) is given.
Instead of modifying the PTE for the mapped grant table entry to
null, we change it to the PTE for the new address.  In turn we
point the new address to null.

As it stands grant table entries once mapped cannot be
remapped by the guest OS (it can however perform a new
mapping on the same entry but that is within our control).
Therefore it's safe to manipulate the mapped PTE entry to
redirect it to a normal page where we've copied the contents.

It's intended to be used as follows:

1) map_grant_ref to v1
2) ...
3) alloc page at v2
4) copy the page at v1 to v2
5) unmap_and_replace v1 with v2

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Added compat integration (PAE-on-64).

Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-30 10:45:44 +01:00
kfraser@localhost.localdomain 4cd3453855 xend: Don't destroy domains on shutdown timeout.
Do not destroy domains on shutdown timeout: the administrator needs to
be able to decide what to do if a domain does not shut down.

Signed-off-by: John Levon <john.levon@sun.com>
2007-05-30 10:06:23 +01:00
kfraser@localhost.localdomain 29dd27927c Fix xenstore entry accounting
xenstored is incorrectly accounting domain nodes when transactions
fail. Store pending count changes in the transaction structure, and
apply at transaction completion, instead of directly applying the
changes.

Signed-off-by: Max Zhen <max.zhen@sun.com>
2007-05-30 10:04:23 +01:00
kfraser@localhost.localdomain 57e9895926 Fix xen build on NetBSD.
From: Christoph Egger <Christoph.Egger@amd.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-30 09:59:09 +01:00
kfraser@localhost.localdomain 6f337f7427 xen: Remove assumption that first NUMA node to be discovered is node0.
Based on a patch by Alex Williamson.

Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-30 09:51:38 +01:00
kfraser@localhost.localdomain 0062fcfa82 pv-on-hvm: Re-init hypercall stubs page after HVM save/restore.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-25 17:26:26 +01:00
kfraser@localhost.localdomain d26ddf539c x86: Sanitise the MFN passed to mod_l1_entry().
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-25 16:06:36 +01:00
Ian Campbell cf71bfc68e Correct 32on64 handling of VCPUOP_register_runstate_memory_area. We
were copying too many bytes from the guest so the test for
area.addr.h.c != area.addr.p was failing.

Added a WARN_ON to the kernel to catch this case. It would be a BUG_ON
but this would break the new kernel on older hypervisors and the only
real problem is that stolen time is not updated, which we can live
with.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-05-25 15:28:52 +01:00
kfraser@localhost.localdomain f91feaa0fd Revert 15164:d93e560c1d50afcf39c99a4211c20c8b9ce63c38 2007-05-25 13:41:01 +01:00
kfraser@localhost.localdomain 8eda7551e9 xend: Fix PAM authentication method for some versions of PyPAM.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-25 13:02:08 +01:00
Ian Campbell d1252ef838 LINUX/x86_64: Cleanup 15129:a40967e39652 by using __pgd rather than
abusing mk_kernel_pgd.

Also set the user bit on the vsyscall entry in the user pgd.

Both changes suggested by Jan Beulich.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-05-25 11:24:02 +01:00
Ian Campbell 7a35a3f0b5 Factor out sparse tree makefile fragments and introduce hg-clone and
tarball methods in preparation for migrating away from the sparse tree
layout.

This re-introduces 14883:6568c1882af5 and 14862:98efd2e410ae plus
further fixes.

Also add makefile fragments to support building the paravirt ops tree
(make linux-2.6-paravirt-build).

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-05-25 11:03:40 +01:00
kfraser@localhost.localdomain 4117d5c1db xend: Fix checkname so that it detects duplicate domains.
Signed-off-by: Mats Petersson <mats.petersson@amd.com>
2007-05-25 10:53:07 +01:00
kfraser@localhost.localdomain 2320487314 [XEND/XM] Improve error reporting in 'xm restore'.
From: Mats Petersson <Mats.Petersson@amd.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-25 10:23:16 +01:00