[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.
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>
Event-channel driver: Use for_each_possible_cpu instead
of for_each_cpu , or statically initialize data when possible. Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Remove broken inline-asm string functions from Xen/x86. The
generic implementations in string.c are quite sufficient. Signed-off-by: Keir Fraser <keir@xensource.com>
New memory_op subops which return the apparent or actual physical address map.
The new subops return a memory map in e820 format. This will allow the
removal of some Xen special casing in the Linux port by using the same
code as native.
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
[LOADER] More sanity checks when parsing Elf images to avoid
out-of-bounds array accesses when loading the image. Signed-off-by: Keir Fraser <keir@xensource.com>
[ACM] Replace the union structure parameter of the ACM hypercalls
with command-specific request structures. It aligns the ACM
hypercalls with the way parameters are passed in the event channel
hypercalls.
Advantages include backward-compatibility regarding old guests when
new calls are added and clarity of the code.
[LOADER] Another change to the elf_paddr_offset/virt_base logic.
This avoids using zero to indicate 'undefined'. Instead we use
an explicit boolean to indicate whether suitable defaults should
be used. As well as making the logic clearer (I believe) it also
avoids problems if anyone ever explicitly specifies virt_base
(and also elf_paddr_offset) as zero.
[IA64] sparse-merge: check SPARSEDIR for modifications
Check SPARSEDIR for modifications before allowing the merge.
This removes the need for the FIXME. Additionally clean up
empty diffs at the end of the run.
Here's another sparse-merge patch to allow ARCH to be set on the
command-line, and to add -C to the final hg update since it's probably
switching between branches.
[LOADER] Remove check for VIRT_BASE existence: it's not needed
to prevent xend crashign (when Aravindh's latest patch is
applied) and breaks ia64. Also, ensure we set a reasonable
default for elf_paddr_offset.
[BUILDER] Always build initial PAE pagetables with a fourth mid-level
pgdir. This is required for Xen to be able to insert its own protected
mappings. At the same time, clean up 32b and pae pagetable-size
calculations to use the helper macro already used for x86/64.
Based on an original patch from Bruce Rogers at Novell.
The enforce_dom0_cpus test sets the number of vcpus for the Dom0 and
checks to see if they have been set correctly. We found that on
multi-proc systems, it takes a certain amount of time for the number of
vcpus to change.
This patch checks the number of vcpus inside a loop until it is correct
or 20 seconds elapse, whichever happens first. If after 20 seconds the
number of vcpus is not changed correctly, an error is raised.
Several page allocations, done in the hypervisor when starting an HVM
domain, are not checked. This can cause the physical machine to crash
when starting the HVM domain during low-memory conditions.
Kudos to Charles Arnold for catching the problem with
shadow_direct_map_init.
Signed-off-by: Charles Coffing <ccoffing@novell.com>
[XEND] An empirical and more conservative memory-overhead estimate for PV and HVM guests.
This patch calculates the overhead needed for HVM domains. If HVM is
supported by the hardware, I add a little ballooning overhead to
paravirtualized VMs also, to avoid low-memory situations. (There are
various unchecked alloc_domheap_pages calls in shadow*.c that I am
trying to avoid tripping over for now...) The values in this patch work
fine on 32 bit; I may update them later based on feedback and/or testing
on 64 bit.
Signed-off-by: Charles Coffing <ccoffing@novell.com>
[XEND] separate concept of initial memory size and overhead memory size.
When a domain (whether para- or fully-virtualized) reports how much
overhead memory it requires (via getDomainMemory in image.py), all such
memory was immediately allocated to the domain itself. This is
certainly incorrect for HVM domains, since additional
increase_reservation calls are made later in qemu. Since all ballooned
memory is already taken, qemu will fail. The fix is to treat the
requested memory size and the overhead size as separate values. The
requested memory size is immediately allocated to the new domain; the
overhead is left unallocated for whatever else might need it later.
Signed-off-by: Charles Coffing <ccoffing@novell.com>
Since network_tx_buf_gc unconditionally calls network_maybe_wake_tx at
the end, there is no need to call it again right after a call to
network_tx_buf_gc.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Fix a crash in gdbserver-xen where it references unmapped memory if
the page directory / page table pages are not present (for example
through dereferencing NULL in the gdb session). Changes:
- map_domain_va_32 has been rewritten to match map_domain_va_pae and
map_domain_va_64.
- All three functions have been extended to handle multiple vCPUs,
(untested, but shuld work), and check for _PAGE_PRESENT.
- Keir's workaround for the compile error in map_domain_va_64 has been
removed and hopefully fixed.
Signed-Off-By: Simon Kagstrom <simon.kagstrom@bth.se>