Fix code which finds the default interface if there are static routes.
The current code will break if there are multiple scope global routes
since the "ip route list default" command doesn't use "default" as a
filter, and will output multiple devices which breaks the rest of the
script.
Also make the vif/xenbr/eth naming consistent, i.e. if your default
network interface is eth1, you get vif1 and xenbr1.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
The buildroot xm-test grabs is no longer present, this patch fixes it.
Made it a minor release bump for xm-test so old ramdisk will work. The
ramdisk is functionally the same.
Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
Instead of just having the bootloader config sxp replace anything else,
merge with given values. This will allow a bootloader to not have to
specify everything which is useful for bootloaders other than pygrub.
Fix injection of guest faults resulting from failed injection of a
previous event. We enter an infinite loop if the original failed
injection cannot be fixed up by Xen (e.g., because it's not a shadow
pagetable issue).
The RHEL4 HVM guest hang issue was actually a side effect of
change-set 9699. In the rhel4 guest hang rc.sysinit init-script was
calls kmodule program to probe the hardware. The kmodule uses the kudzu
library call probeDevices(). For probing the graphics hardware in the
vbe_get_mode_info() function, sets up the environment and goes into the
vm86 mode to do the int x10 call. For returning back to protected mode
it sets up a int 0xff call. At the time of calling the int 0xff the
guest process pages were not filled up. And it was causing an infinite
loop of vmexits with the IDT_VECTORING_INFO on the int 0xff instruction.
The reason for the infinite loop is changeset 9699. With that
the guest page fault was always getting overridden by the int 0xff gp
fault coming from the IDT_VECTORING_INFO. With the attached patch if VMM
is injecting exceptions like page faults or gp faults then
IDT_VECTORING_INFO field does not override it, and that breaks the
vmexit infinite loop for the rhel4.
Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Jun Nakajima <jun.nakajima@intel.com> Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
Fix python pciif script to reference correct 2.0 compatibility variable.
In the Xen 2.0.x compatibility section of xend (where we try to parse
the s-expressions if they came from an SXP configuration file for Xen
2.0.x), the wrong variable is referenced. This fix corrects the python
script to use the correct variable.
Replace a bash-specific redirection in tools/ioemu/configure with a
standard POSIX one which allows the Xen tools to be built with a POSIX
shell other than bash. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Replace a bash-specific substitution with equivalent POSIX /bin/sh
substitutions. This allows a Xen-patched Linux to build when /bin/sh
is a POSIX shell other than bash.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Adjust skb->truesize appropriately in netback driver.
When you generate non-linear skb's as netback does, it is up to you
to ensure that truesize reflects the size of paged part of the skb.
Otherwise socket memory accounting in Linux falls apart.
Thanks to the new check that David Miller added to TCP we were able
to catch this bug.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Add missing spin_unlock_irq() at xen/arch/x86/irq.c
Changeset 9889:42a8e3101c6c reorganized the code on this file, and
missed this spin_unlock_irq(). Without this patch, my machine hangs
completely during boot. With this, it works.
Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Chris Wright <chrisw@sous-sol.org>
SVM patch for 64bit hv, to reset the ss, es, ds host selectors to NULL
during a context switch to the SVM domain's vcpu. This patch also
initializes the tlb_control to 1 for the initial do_launch(). Signed-off-by: Tom Woller <thomas.woller@amd.com>
Add new networking infrastructure to Xm-Test. The goal is to make
creating domains with networking very easy. This patch:
1) Adds new XenDevice class, with the XenNetDevice subclass. These
classes represent devices for xm-test and are tied to XenDomains.
This can eventually be used for block devices as well. Currently,
devices must be added to domains prior to starting the domain. The
attach and detach needs to be handled.
2) Adds a new NetConfig class to handle configuring the network
environment in which the tests run. This patch only handles ranges
of IPs in a bridged environment. DHCP needs to be added as well as
handling NAT and routed environments.
3) Modifies XenDomain class to handle XenDevices.
4) Adds new configuration options for defining a range of IPs, their
network address, and their netmask.
5) Removes the old Network.py and Network class.
6) Modifies the existing tests to use the new infrastructure.
7) Adds some documentation to help creating domains.
Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
Second step toward a new network infrastructure, move XmConsole to be
in XenDomain. The devices we will add, like network, will need to run
console commands when a domain is started. So I have made console be
a part of domain object, which it's tied to anyway.
Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
First step to network infrastructure, add a type to XenDomain to identify
it as HVM or PV rather than using the config time option. The forthcoming
XenNetDevice will need to check. This is also the first step toward running
PV and HVM domains at the same time.
Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
Change Mini-OS so that it uses stddef.h to define size_t and
NULL. This problem fixes errors that occur when linking Mini-OS with
ANSI standard code that uses stddef.h. Signed-off-by: Keir Fraser <keir@xensource.com>
This patch
- moves the TPM frontend completely into the char/tpm directory where it
is a plug-in to the generic TPM driver
- removes a now obsolete include file
- adapts part of the documentation
- fixes some locking problems where copy_to/from_user was called with
IRQs blocked
Fix fault handler for both 32 and 64 bit architecture. Clean up unused code. Signed-off-by: Grzegorz Milos <gm281@cam.ac.uk> Signed-off-by: Aravindh Puthiyaparambil
<aravindh.puthiyaparambil@unisys.com>
SVM patch to cleanup the host save area allocation and deallocation,
including removing memory leaks concerning these areas. Also fixes
problem where the HSA MSR was not initialized properly for cores>0.
Fix xenbus userspace device transaction tracking.
If a transaction end command fails, the semaphore which keeps track
of whether we're in a transaction or not was not getting updated.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
Introduce some finer-grained locking to prevent calling
copy_from/to_user while preventing interrupts and fix allocation of
memory from within a task and other issues.
Xm-tests 01_memset_basic_pos.test and 03_memset_random_pos.test start
domUs with 64MB of memory,
and assume that all of that memory is available in the domU. They then
perform various xm memset tests
based on the assumed starting conditions.
When netback & blkback are comiled into the domU kernel, they eat about
5MB. This mismatch will cause
01_memset_basic_pos.test to fail every time. 03_memset_random_pos.test
will probably fail, but can
pass with some lucky numbers from the random number generator.
This patch changes both tests to read the starting memory allocation from
the balloon driver in the domU.
Balloon driver should hijack the ->lru list field rather than
adding another list field to every page structure. Signed-off-by: Keir Fraser <keir@xensource.com>
This patch changes to format in which EIP is printed to be consistent on 64-bit regardless of whether the addresses
leading bits are set or clear. It additionally changes the formatting so that trailing spaces are avoided, and it
suppresses the printing of empty records. It also prevents combining records with identical EIP but from different
domains.
It further changes the type of some variables from plain int to unsigned int, as that is yielding more efficient code
on x86-64 (signed 32-bit array indices require explicit sign extension, whereas in most cases an extra copy can be
avoided when the index type is unsigned, since all 32-bit operations already zero-extend their results).
This patch conditionalizes some output from perfc_printall(), thus making relevant information more compact and easier
legible. It additionally changes the formatting so that trailing spaces are avoided.
Also changing the type of some variables from plain int to unsigned int, as that is yielding more efficient code on
x86-64 (signed 32-bit array indices require explicit sign extension, whereas in most cases an extra copy can be avoided
when the index type is unsigned, since all 32-bit operations already zero-extend their results).
Move Linux-specific privcmd code into private libxc implementations.
Make header path for kernel's privcmd/evtchn headers generic.
Remove pointless xi_*() interface that was using private libxc
interfaces.
Fix x86/64 version of Mini-OS. It encompasses the following:
a) 64-bit switch_to scheduler macro (by Aravindh Puthiyaparambil)
b) implements 64-bit hypervisor_callback
c) fixes thread creation issues (thread_starter used to perform
initialisation)
Change semantics of grant transfers for vp guests so that the
operation automatically gets you a fresh page at the same
pseudo-physical address as Keir suggested.
Debugging Xend with XEND_DAEMONIZE set to False doesn't work as
expected. Xend actually creates two children and the XEND_DAEMONIZE
flag only prevents one of the children from being created. This
patch causes none of the children to be created. With this patch,
Xend functionality is performed in the process executed from the
command line (i.e., /usr/sbin/xend). This patch makes it possible to
debug Xend with pdb.
Define new event-channel and physdev hypercalls with a more extensible
interface (the legacy hypercalls would break if subcommands with large
argument structures were added, as it would grow the size of the
union of all argument structures).
Also, based on a patch from Kevin Tian, add a new physdev op to
signal EOI for a particular irq.
Wait for the device to be connected on the guest (with a 10s timeout)
before detaching it. Fix a race condition that dom0 was tearing down the
block device while the guest was putting it in a Connected state.
Signed-off-by: Vincent Hanquez <vincent@snarc.org>
xen/ia64 with dom0 vp model doesn't need the blkbkack ia64 workarounds
any more. xen/ia64 dom0 vp model is a big change so that xen/ia64
with the old model (P=M) still remains as the compile option.
Hopefully the work around will be eliminated in the future completely.
When boot device is cdrom but the cdrom is not bootable, the guest appears
to hang. This patch fixes this by filling in second- and third-priority
fallback boot devices.
This patch fixes the buildroot for the xm-test ramdisk. The buildroot xm-test
was getting is no longer there, they've pruned the snapshots. This patch
adds a new buildroot and updates the buildroot configuration. I also
incremented the xm-test release version to 0.8.
Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
Instead of relying on xm create to always run the bootloader, make sure
we run it if we get into domain creation with a bootloader set but no
image. This could happen if someone creates a domain config via the
XML-RPC or sxp interfaces.
The features for a domain are more a property of the domain than the
image. Move them into the domain info so that the image is just the
pieces needed for booting (eg, kernel + initrd + args)
When building with FORTIFY_SOURCE to ensure that return codes of common
functions are checked to avoid some bugs, a few warnings pop up and
become errors due to -Werror. Attached checks the return codes
(or at least stores them to a dummy variable).
Relax BUG_ON() state ment in increase_reservation() in balloon.c.
When xen_feature(XENFEAT_auto_translated_physmap) = 1,
phys_to_machine_mapping_valid(pfn) always returns true.
Relaxed BUG_ON() for xen_feature(XENFEAT_auto_translated_physmap) = 1 case.
Define __XEN_TOOLS__ when building tools. Use this to
automatically build against latest Xen interface version,
and to specifically define GET_XEN_GUEST_HANDLE().
Occasionally large smp machines fail to reboot properly and die under
an IPI storm of smp_call_function() to machine_reboot. Only the boot
processor needs to run machine_restart, so send an IPI to CPU0.
This patch adds the ability to have restricted write access to some
of the structures on the capability list. Specifically, this patch adds
support for reading data through the Vital Product Data capability
structure and for manipulating power management of a card. A driver
domain is not allowed to enable Power Management Events (the PME trace
may be shared across devices in many domains), but it can put a device
in its control to sleep or query it for power usage statistics. This
code could possibly be expanded in the future to add support for AGP,
PCI-X, and MSI/MSIX (all of which are controlled through structures on
the capability list).
This patch also corrects some formatting issues in the PCI backend and
adds some comments to the code regarding permissive mode.
This patch addresses CVE-2006-1056 (information leak from
fxsave/fxrstor on AMD CPUs) and also adjusts 64-bit handling so that
full 64-bit RIP/RDP values get saved/restored. More fine-grained
handling may be needed if 32-bit processes are expected to properly
see their selectors (native Linux doesn't currently do that either,
but there is a patch to adjust it there).
Original patch: Jan Beulich (based on Linux original by Andi Kleen)