[PAE] Fix support for pgdirs above 4GB. Requires an interface change so that %cr3
is extended to include high-order address bits at bottom of %cr3 value.
Guests who understand this interface change publish the fact by setting the
option 'PAE=yes[extended-cr3]' in their __xen_guest section. Signed-off-by: Keir Fraser <keir@xensource.com>
[IA64] Fix Xen running on IA64. Some function prototypes were
moved to domain.h and hence undefined in some source files.
This meant that some return types defaulted to int, resulting
in corruption. Signed-off-by: Kevin Tian <kevin.tian@intel.com>
Fix pagetable accessor macros in Xen to have better names and to
preserve top bits of PAE pgdirs situated above 4GB. Signed-off-by: Keir Fraser <keir@xensource.com>
Allow all trace-buffer hypercalls to be executed even when tracing is currently disabled.
From: George Dunlap Signed-off-by: Keir Fraser <keir@xensource.com>
The temporary mappings needed to set up the 1:1 mappings must be torn down after use; otherwise they may trigger the
WARN_ON() in vmap_pte_range() (namely if the chunk allocated to hold kernel and initial page tables gets close to or
exceeds 128Mb, or if a sufficiently high mem= argument causes the static allocations to grow beyond 128Mb, which in
either case means these mappings extend into the modules area).
[HVM] Allow more dynamic use of the qemu serial lines by allowing the Summagraphics port to float.
qemu will emulate up to 4 serial lines (COM1 - COM4). One of these
lines supports a Summagraphics protocol. This has changed recently,
and it's now always COM2. This patch allows the user to specify
to qemu which lines should be serial lines, and the code will place
the Summagraphics compatible line at just above the last specified
serial line. qemu defaults serial line 0 (COM1) to be "vc", resulting
in the Summagraphics support residing on COM2. This is in keeping
with the current behavior.
The results, via qemu command line, are:
<none> COM2
-serial x COM2
-serial x -serial x COM3
-serial x -serial x -serial x COM4
-serial x -serial x -serial x -serial x <none>
The results are deterministic, and allow the use of up to 4 serial
lines including none with Summagraphics support. There is no
change from current behavior, unless requested.
[SECURITY] Allow domid and ssidref args to get_decision in
util/security.py to be either strings or ints (previously only strings
would work due to the underlying call to lowlevel.acm).
Signed-off-by: Bryan D. Payne <bdpayne@us.ibm.com> Signed-off-by: Reiner Sailer <sailer@us.ibm.com>
[LINUX] Converge ia64 versions of xen/drivers Makefiles with general versions.
This patch converges the ia64-specific and general versions of
xen/drivers/Makefile and xen/drivers/core/Makefile, using Kconfig
settings instead to control whether specific pieces are built.
Fix negation of unsigned quantities in the Xen x86 emulator.
This fixes the problems left behind by c/s 10171. Again pointed
out by Jan Beulich; and again different from his suggested patch.
Hopefully this one will be less embarrassing.
network-bridge: Fall back to eth0/xenbr0 if no default route.
From: Dave Lively <dave.lively@gmail.com> Signed-off-by: Keir Fraser <keir@xensource.com>
[IA64] preparation for vga acceleration of VTI domain
This patch fixes several minor issues, as a prepare step to support VGA
acceleration for VTI domain:
- shared vram buffer needs to be mapped as WB in both sides, because
the shared vram is the true WB memory though VTI domain is told as UC
- Introduced a new pte_mem to indicate p2m entry containing valid mfn
when replace p2m entry. Pte_none doesn't work for VTI case, since IO
type is encoded into p2m entry which however doesn't contain valid mfn.
After above change, guest_physmap_add/remove_page is available to
be used by qemu to setup linear buffer for VTI domain.
The xm dmesg command wasn't taking the -c/--clear options because of
incorrect values to arg_check(). Patch simply allows for the possible
option with arg_check().
Signed-off-by: Daniel Stekloff <dsteklof@us.ibm.com>
[VTPM_TOOLS] Updated vtpm for new release of the tpm_emulator.
New emulator includes AIK, DAA, and Transport Sessions Signed-off-by: Vinnie Scarlata <Vincent.r.scarlata@intel.com>
1. Make Mini-OS start from 0x0.
2. Fixes the pagetable builder to handle half full, but already mapped
pt frames.=20
3. Add a bounds check to ensure than Mini-OS does not try to use Xen
virtual space.
Signed-off-by: Grzegorz Milos <gm281@cam.ac.uk> Signed-off-by: Aravindh Puthiyaparambil
<aravindh.puthiyaparambil@unisys.com>
[SVM] Fix virtualization of the CPUID NX bit, and clean up other CPUID bits. Signed-off-by: Tom Woller <thomas.woller@amd.com> Signed-off-by: Wei Huang <wei.huang2@amd.com>
[ACM] Add a hypervisor call macro to the linux kernel; it
completes the alignment of the ACM call interface with the other Xen
hypervisor call interfaces. This macro is used to call from the a guest
kernel directly into the ACM hypervisor module.
Fix PAE debug builds to avoid shadowing shadow-mode pgdirs below 4GB.
The current shadow mode is not aware of this extra level of shadowing
and gets rather confused. Furthermore it *always* ensures that its
PAE pgdirs are below 4GB so there is no need for the extra shadowing
logic to be invoked.
Now xen drivers use is_running_on_xen() to check whether it runs on
xen or bare metal. There remains many if (running_on_xen) in ia64
specific codes. This patch replaces running_on_xen with is_running_on_xen()
Define halt() and safe_halt() properly for Linux-on-Xen. Remove duplicated
code for initial bringup of secondary VCPUs. Signed-off-by: Keir Fraser <keir@xensource.com>
[HVM] Fix a bug in the emulation of the xchg instruction.
This bug has prevented us from booting fully virtualized SMP guests
that write to the APIC using the xchg instruction (when
CONFIG_X86_GOOD_APIC is not set). On 32 bit platforms, sles 10 kernels
are built without CONFIG_x86_GOOD_APIC not set and hence we have had
problems booting fully virtualized SMP sles 10 guests.
Signed-off-by: K. Y. Srinivasan <ksrinivasan@novell.com>
[BALLOON] Remove the static lower bound on memory target from balloon driver.
Experimentation an discussion on xen-devel concludes that a dynamic method
for determining safe balloon size will be required. Signed-off-by: Keir Fraser <keir@xensource.com>
Fix the support for PAE pgdirs above 4GB that was introduced in
changeset 10173:954f4dea9da6336aaa35d0706aed55fde7909644. Signed-off-by: Keir Fraser <keir@xensource.com>
Fix SMP boot for kernels without CONFIG_HOTPLUG_CPU.
The function cpu_is_allowed() appears that it should return a boolean
but in fact returns zero on success and an errno on failure. Thus
rename it to the more vague cpu_up_check(), in line with its return
value and thge fact it has unspecified side effects.
Fix the macro definition of cpu_up_check() when building non-hotplug
kernel to return zero rather than one (which always failed secondary
cpu bringup!).
[PAE] Allow pgdirs above 4GB for paravirt guests.
**NOTE**: This obviates the need for lowmem_emergency_pool.
Unpriv guests no longer need to be able to allocate memory
below 4GB for PAE PDPTs. Signed-off-by: Keir Fraser <keir@xensource.com>
Cast to a signed type before negating if we really want the result to be negative.
From: Jan Beulich <jbeulich@novell.com> Signed-off-by: Keir Fraser <keir@xensource.com>
Remove net_driver_util module. Inline the one mac-parsing function
into the netfront and netback drivers. Take the opportunity to fix
the mac-parsing logic. Signed-off-by: Keir Fraser <keir@xensource.com>
[XEND] Wait sufficient time for memory to balloon out before creating a new domain.
On the ES7000 when Dom0 boots up with all of system memory and you try
to bring up a DomU with more than 2GB of memory, xend times out before
the memory is freed causing the domain not to be created. This patch
increases the timeout depending on the amount of memory that needs to be
freed. It also places a cap on the sleep time so that it does not grow
without a limit. This fixes bug# 650
[HVM] Support multiple HVM time device models coming soon.
1: Adopt an abstract layer for periodic time on top of different
HV time device models like PIT, RTC and ACPI time.
2: Extract VMM knowledge from PIT DM code and keep close with
qemu for easy maintain in future.
3: Use guest time (TSC) to drive PIT CLK that helps us to remove
a lot of extra logic previously introduced to convert from host time to
guest time.
4: Some cleanup for SMP code like move cache_tsc_offset to per VP.
[NET] front: Use netif_carrier to model backend-connection state.
The tristate backend_state really only needs to be a boolean. In fact
other virtualisation network drivers such as the s390 already model this
using netif_carrier_*. So by converting backend_state over to the net
carrier flag we can tap into existing infrastructure rather than creating
new ones.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Separate xenbusstate enumeration from typedef. Avoid using the typedef
in Linux coe as it is consider bad coding style. Signed-off-by: Keir Fraser <keir@xensource.com>
Fix IDE CD-drive PIO mode.
CD drives in PIO mode don't work under Xen because of a change in Linux
between 2.6.12 and 2.6.16, as a result of the following thread:
http://lists.parisc-linux.org/pipermail/parisc-linux/2005-August/027197.html
The change breaks systems which have highmem and a swiotlb because the
ide-cd driver doesn't use the swiotlb, resulting in read/writes to/from
highmem pages in PIO mode not working any longer. Xen kernels usually have
both highmem and a swiotlb.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
This patch adds support for ptc.l emulation for xenlinux.
In 2.6.16 kernel it flush_tlb_range will call global_tlb_purge
directly, so ptc.l shouldn't be used when CONFIG_SMP enable.
But in order to enhance performance (maybe), 2.6.17 kernel in
smp environment will do mm check first. If mm is current->active_mm
and the mm (corresponding process) just runs on the local processor,
kernel only needs to do ptc.l at local processor instead of global purge.
So ptc.l emulation is necessary for 2.6.17 kernel.
Signed-off-by: Kevin Tian <kevin.tian@intel.com> Signed-off-by: Zhang Xiantao <xiantao.zhang@intel.com>