Commit Graph
15173 Commits
Author SHA1 Message Date
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
kfraser@localhost.localdomain cc32978664 linux: Fix PV-on-HVM crash when installing PV drivers on native system.
From: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-25 10:17:43 +01:00
kfraser@localhost.localdomain 55c81d635c xend: Increase shutdown timeout.
30 seconds is not a very long time for a busy domain to cleanly
shutdown all its services, which may be arbitrary in
complexity. Increase the timeout to 5 minutes.

Signed-off-by: John Levon <john.levon@sun.com>
2007-05-25 10:16:00 +01:00
kfraser@localhost.localdomain 7e0cff453f Do not destroy domains that timeout when shutting down.
Instead of violently destroying a domain that is not responding to a
shutdown request, rename the domain to indicate the problem and leave
it alone; this allows the admin to make corrective actions (which may
or may not include destroying the domain).

Signed-off-by: John Levon <john.levon@sun.com>
2007-05-25 10:15:37 +01:00
kfraser@localhost.localdomain 3023191026 xm: Extend width of ID in 'xm list' to 5 digits.
The Domain ID is currently expected to fit in 3 digits.

When doing extensive testing on SAVE/RESTORE I can easily get ID's
into the 4-digit range, which makes some of the formatting to get out
of sync. Extend the width to 5 digits (and change some %-ns to %ns, as
the ID for example is right justified, %-ns is left-justified, which
didn't look too good).

Signed-off-by: Mats Petersson <mats.petersson@amd.com>
2007-05-24 15:45:43 +01:00
kfraser@localhost.localdomain 34a0b876d2 xm-test: ia64 min memory & arbitrarily large ramdisk
1) Sets a minimum of 128MB RAM for an ia64 domU; this limit was set
after experimentation, which seems to indicate it's a reasonable lower
limit (the 32MB limit previously in place did not allow an ia64 domU
to start).  If there's any problem with this, I don't mind splitting
the patch and sending it to the ia64 list, but it was small, so I hope
it's okay to include it.

2) xm-test uses ramdisks built with uClibc, which doesn't compile on
ia64.  I was able to create a ramdisk by hand, but as it was too
large, the resultant domU crashed after boot.  This patch enables the
use of an arbitrarily large ramdisk, so long as it's uncompressed.  As
xm-test builds only uncompressed ramdisks, I figured this was
reasonable for that specific application.  Suggestions on how to
detect and handle a compressed ramdisk would be welcome.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
2007-05-24 15:40:54 +01:00
kfraser@localhost.localdomain 2df50e48b8 xend: Give "xm start" a -c parameter for connecting to the console
From: Chris Lalancette <clalance@redhat.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-24 15:36:13 +01:00
kfraser@localhost.localdomain a616484850 xend: Add site-packages into Python search path
Signed-off-by: S.Caglar Onur <caglar@pardus.org.tr>
2007-05-24 15:30:05 +01:00
kfraser@localhost.localdomain f910c09590 VTPM: Fix bug where enabling vtpm causes installation error
Signed-off-by: S.Caglar Onur <caglar@pardus.org.tr>
2007-05-24 15:29:11 +01:00
kfraser@localhost.localdomain c0a12ddfdc ioemu: Attempt to setup tap interface up to 3 times.
As there is a (small) chance that vl.c:tap_open() fails (due to some
sort of race-condition in the Linux kernel, which is noted as a bug in
the source .../net/core/dev.c), we should attempt it again a couple of
times if it doesn't succeed on the first attempt. I think three times
in total is sufficient to avoid the problem.

If tap_open() fails, qemu-dm will exit, which means that the domain
dies - which is not such a good thing when attempting to restore a saved
domain [of course, it would be even worse if it started, but didn't
have networking - because there may not be a way to shut it down
cleanly without network].

Signed-off-by: Mats Petersson <mats.petersson@amd.com>
2007-05-24 15:25:35 +01:00
kfraser@localhost.localdomain be422ace19 xend: Fix for removing devices at save/destroy domain.
The function XendDomainInfo:_releaseDevices() is called during the
save/destroy phase of a domain. It made some attempt to clean up the
devices, but wasn't complete, leaving dangling devices in the
xenstore. Not a big problem with normal use of Xen, but a buildup over
a large number of save/destroy instances, it would make the xenstore
database grow quite large, which in turn meant swap-thrashing in Dom0.

This patch makes use of the destroyDevices() function in
XendDomainInfo. This function needed some re-writing to make it work
correctly - I think it had some old code (not sure how old, as xm
annotate says that it's changeset 12071, but that, I think, is when it
was split out from XendDomain.py, rather than when it was created).

I have tested this over a few hundred save/restore cycles [two domains
constantly saved/restored with a short sleep to let them process some
work] combined with a loop of "xenstore-ls|wc". The output of the
latter is pretty much constant (it obviously varies a bit depending on
when in the save/restore cycle it hits). Previously, it would increase
by some 10 lines or so per save/restore cycle.

Signed-off-by: Mats Petersson <mats.petersson@amd.com>
2007-05-24 15:21:29 +01:00
kfraser@localhost.localdomain 26e96c98bc linux/x86: consolidate pte_val/p[mug]d_val replacements
- replace incomplete pXX_val_ma() set with complete __pXX_val() set
 - use __pXX_val() instead of pXX_val() when only flags are accessed or
   the frame number is only compared against zero

Signed-off-by: Jan Beulich <jbeulich@novell.com>
2007-05-24 15:13:13 +01:00
kfraser@localhost.localdomain 7eb2ea0351 linux/x86-64: force _PAGE_NX on the 1:1 mapping (matching native)
Signed-off-by: Jan Beulich <jbeulich@novell.com>
2007-05-24 15:12:31 +01:00
kfraser@localhost.localdomain ecc82ca3e6 blktap: Fix compile errors
When compiling the various blktap drivers with warnings cranked up, I
get errors that return values are not checked.

Signed-off-by: Charles Coffing <ccoffing@novell.com>
2007-05-24 14:07:40 +01:00
kfraser@localhost.localdomain 1c77b7cb9f xend: Tear down domain if device hotplug fails during startup
If creating an unmanaged guest (eg xm create), if device hotplug fails
during the startup of the guest, then the guest will be torn down
again. If creating and starting a managed guest (eg xm new && xm
start), then if device hotplug fails, the still born guest gets left
in 'paused' state. This confuses users no end, who go an unpause and
then get all upset when it shortly crashes (due to lack of disk or
network devices).

The attached patch fixes XenDomain.py's domain_start() method so that
if waitForDevices() fails, then the entire domain is torn down. This
is the same approach used in xm create.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2007-05-24 14:05:58 +01:00
kfraser@localhost.localdomain 565f279e07 xend: Fix CPU affinity reset across save/restore.
Fixes bug #936.
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
2007-05-24 14:02:09 +01:00
kfraser@localhost.localdomain ff3ee91914 Console daemon - remove duplicate include.
Signed-off-by: Mats Petersson <mats.petersson@amd.com>
2007-05-24 13:58:01 +01:00
kfraser@localhost.localdomain 012be4bc30 svm: Replace call to svm_load_cr2 with conditional call to svm_trace_vmentry
Remove the call to svm_load_cr2 (which doesn't do anything useful).
The old svm_load_cr2 is now replaced with a svm_trace_vmentry. A call
to this function is done if "tb_init_done" is non-zero, so we don't call
this unless it's actually being used.

Signed-off-by: Mats Petersson <mats.petersson@amd.com>
2007-05-24 13:56:58 +01:00
kfraser@localhost.localdomain 8cc22ae8d1 xend: Fix scheduler parameters of rebooted domain
When I changed the scheduler parameters of a domain with
xm sched-credit, the information of xm sched-credit was changed.
But as for the information of xm list, the values of the domain
configuration definition were kept.
And, then I rebooted the domain. The information of xm list was
not changed. But as for the information of xm sched-credit, the
values of the domain configuration definition were returned.

# xm create /xen/PVdomain.1 cpu_cap=150 cpu_weight=512
Using config file "/xen/PVdomain.1".
Started domain PVdomain.1
# xm sched-credit -d PVdomain.1
Name                              ID Weight Cap
PVdomain.1                         1    512  150
# xm sched-credit -d PVdomain.1 -c 75 -w 384
# xm sched-credit -d PVdomain.1
Name                              ID Weight Cap
PVdomain.1                         1    384   75
# xm list --long PVdomain.1 | grep cpu_
    (cpu_weight 512)
    (cpu_cap 150)
    (cpu_time 29.353831745)
# xm reboot PVdomain.1
# xm sched-credit -d PVdomain.1
Name                              ID Weight Cap
PVdomain.1                         2    512  150
# xm list --long PVdomain.1 | grep cpu_
    (cpu_weight 512)
    (cpu_cap 150)
    (cpu_time 5.950247186)


If the scheduler parameters of the domain were changed with
xm sched-credit, I think that xm list should show the current
values about the scheduler parameters.
And, then if the domain is rebooted, I think that the rebooted
domain should keep the preceding values about the scheduler
parameters.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
2007-05-24 13:45:47 +01:00
kfraser@localhost.localdomain 7ffb087b8c vmxassist: Fix some copy-and-paste mistakes in vmx_check_descriptor()
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
2007-05-24 13:42:41 +01:00
kfraser@localhost.localdomain efe3f7fcb9 Cleanups to map_vcpu_info.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-24 13:42:16 +01:00
kfraser@localhost.localdomain d5fb8810c2 vnc: Fix Zenkaku_Hankaku and add deadkey keysyms
Signed-off-by: Pat Campbell <plc@novell.com>
2007-05-24 13:34:19 +01:00
Jeremy Fitzhardinge 5104a14358 merged 2007-05-24 13:32:03 +01:00
kfraser@localhost.localdomain fea68d9d91 svm: Handle MC4_MISC threshold register for guests
The threshold register has been introduced in AMD RevF CPUs along with
SVM (Actually this MCA/MCE msr register existed before, but had no
meaning). Therefore no need for additional cpuid checks.

On read access it reports the HVM guest the register has been locked
by the BIOS. This means, it is not available for OS use. Thus, write
accesses are simply ignored. This behaviour actually matches real HW,
so guests can deal with this.

Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
2007-05-24 13:30:29 +01:00
Jeremy Fitzhardinge 11623a8d90 Unmap vcpu_info mapping in arch_domain_destroy.
We don't need to touch it in arch_vcpu_reset() because that's only used
to recover from a failed suspend, and the correct behaviour there is to
leave the mapping as-is.
2007-05-24 13:25:05 +01:00
kfraser@localhost.localdomain 55e8bb3f3f Clean up map_domain_page().
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-24 11:33:39 +01:00
kfraser@localhost.localdomain 541b4e900d blktap: Add one more error reason statement to blktapctrl
blktapctrl already prints out exits reasons for all goto's to
open_failed except of not finding a device number for blktap0
This patch adds just that message so the user will get more info than
just "Unable to start blktapctrl"
Common source of this issue is that blktap is missing/failed to
load/...

Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
2007-05-24 10:50:07 +01:00
Jeremy Fitzhardinge b9cc5236c7 merged 2007-05-24 10:48:58 +01:00
Jeremy Fitzhardinge c58ae69360 Implement VCPUOP_register_vcpu_info
This change implements the VCPUOP_register_vcpu_info vcpu_op.  This
allows a guest to choose where each VCPU's vcpu_info structure is
placed within its address space, allowing it to put it somewhere which
is easily accessible via some per-cpu data access mechanism.

When changing the mapping of the vcpu info, there's no obvious way to
prevent the other vcpus from getting a stale pointer of the vcpu_info,
which could result in them accessing bad memory (stale pointers to the
shared_info page are not a problem, because its always valid).  To
avoid this, we prevent guests from changing the vcpu_info location
more than once, since there's no obvious need to allow them to do this
at this point.

(If we really want to allow guests to update the vcpu_info location
more than once, then some sort of RCU wait between updating the
pointer and performing the unmap may be the way to do it.)

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
2007-05-24 10:47:27 +01:00
kfraser@localhost.localdomain 99bf801eac linux: Fix mem= kernel parameter when it is smaller than initial memory allocation.
From: Chris Lalancette <clalance@redhat.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-24 10:46:57 +01:00
Jeremy Fitzhardinge 8a981e0bf2 Make map_domain_page_global fail
When the global mapping cache runs out, make map_domain_page_global
return NULL on failure rather than fire an assertion failure.  This
also updates the callers to handle the error gracefully.

The only exception to this is the shadow pagetable code, which uses
map_domain_page_global to create a mapping for
v->arch.paging.shadow.guest_vtable; it's not clear this needs to be a
global mapping anyway.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
2007-05-24 10:45:03 +01:00
kfraser@localhost.localdomain c6e5b4c106 blktap: Do not install libs or headers with execute permissions.
rpmlint complains that various blktap files are installed with
unnecessary execute permissions:
E: xen-devel spurious-executable-perm (Badness: 100)
/usr/lib64/libblktap.a
E: xen-devel spurious-executable-perm (Badness: 100)
/usr/include/blktaplib.h

Signed-off-by: Charles Coffing <ccoffing@novell.com>
2007-05-24 10:44:01 +01:00
kfraser@localhost.localdomain d5ab9f9089 x86: Prevent an infinite series of traps
In some cases, we can end up in a vicious cycle of fatal_trap()s
within fatal_trap()s. Panic after a certain number of attempts.

Signed-off-by: Nils Nieuwejaar <nils.nieuwejaar@sun.com>

Use a per-cpu depth variable.

Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-24 10:39:28 +01:00
kfraser@localhost.localdomain fab51b46ae [ACM] Simpler interface to hypercalls
Implement a simpler interface for the hypercalls to ACM. I put the
parameters to all hypercalls into a union. On top of this I have
implemented a shim layer for enabling ACM hypercalls on PPC.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
2007-05-24 10:18:55 +01:00
kfraser@localhost.localdomain 903fb0f33d blktap: Small changes to blktap + add a hook to clear ptes on implicit release of VMAs.
* free memory on release
 * invalidate p2m entry when unmapping grants
 * check for alloc failure of idx_map
 * add DONTCOPY vma flag
 * hook for clearing ptes when a vma is freed by the kernel

From: Geoffrey Lefebvre <geoffrey@cs.ubc.ca>
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-24 10:14:05 +01:00
kfraser@localhost.localdomain d5cd127e3b ia64: nvram setup.
From: "Zhang, Xing Z" <xing.z.zhang@intel.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-24 09:54:03 +01:00
Ian Campbell 6b64aaa35a merge 2007-05-24 09:15:58 +01:00
Ian Campbell 65fd68d6d0 LINUX/x86_64: Ensure that the initial page tables allow userspace
mappings of the vsyscall page. This matches native behaviour by
setting the U bit on the L2-L4 page table entries and controlling
access using the L1 entries.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
2007-05-24 09:14:43 +01:00
kfraser@localhost.localdomain 8f058e2bff Revert 15127:98cf6c05c32a59ad3f4fcd505ca60348589e6096
Breaks 64-bit build.
2007-05-24 09:10:43 +01:00
Steven Hand 1a46ed999b This patch fixes the issue with waiting for devices to disconnect during the end
stage of migration in Xend. The problem was cause by a deletion of the VM domain
ID which is used by testDevicecompleComplete ->deviceIDs->backendRoot() to get
the virtual backend device path. The virtual backend device path is used to
check if a device still exists in xenstore.

Signed-off-by: Yung Giang <yung.giang@gmail.com>
2007-05-22 15:32:50 +01:00
Jeremy Fitzhardinge 5f7304ca64 Implement VCPUOP_register_vcpu_info
This change implements the VCPUOP_register_vcpu_info vcpu_op.  This
allows a guest to choose where each VCPU's vcpu_info structure is
placed within its address space, allowing it to put it somewhere which
is easily accessible via some per-cpu data access mechanism.

Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com>
2007-05-22 14:48:56 +01:00
kfraser@localhost.localdomain 09bf75fb8a Merge with xen-ia64-unstable.hg 2007-05-22 06:43:05 +01:00
Keir Fraser cbf6afa30d vmxassist: Include terminating 0xff byte in TSS I/O bitmap.
Signed-off-by: Keir Fraser <keir@xensource.com>
2007-05-20 19:05:10 +01:00
Jake Wires 9ae5c53e34 [BLKTAP] Ensure blktap doesn't try to re-create extant sysfs entries
Signed-off-by: Jake Wires <jwires@xensource.com>
2007-05-19 10:54:01 -07:00
kfraser@localhost.localdomain aee276299a Added tag 3.1.0-branched for changeset d2ef85c6bf84cc619ca2d42c2edfc6229e70a6ad 2007-05-18 17:01:20 +01:00