Keir Fraser [Mon, 1 Oct 2007 14:38:58 +0000 (15:38 +0100)]
x86: Rename math_state_restore() to more logical
do_device_not_available(), following naming convection for all other C
exception handlers. Signed-off-by: Keir Fraser <keir@xensource.com>
Keir Fraser [Mon, 1 Oct 2007 14:12:05 +0000 (15:12 +0100)]
hvm: Avoid need for ugly setcpucontext() in HVM domain builder by
pre-setting the vcpu0 to runnable inside Xen, and have the builder
insert a JMP instruction to reach the hvmloader entry point from
address 0x0. Signed-off-by: Keir Fraser <keir@xensource.com>
Keir Fraser [Mon, 1 Oct 2007 05:34:40 +0000 (06:34 +0100)]
vt-d: Allocate iommu pages from domheap rather than xenheap.
xenheap size is 9M on x86/32 xen, it's not enough to setup 1:1 mapping
page table for dom0. It causes dom0 cannot boot successfully. Instead
of xenheap, this patch setup 1:1 mapping page tabel in domheap, and
use map_domain_page() to get temporary mappings when need them.
Signed-off-by: Weidong Han <weidong.han@intel.com>
xend: Fix name uniqueness check (revert 15168:a717cb2fac90).
Changeset 15168:a717cb2fac90 altered check_name() in XendDomainInfo so
that it compares domain IDs instead of UUIDs. This breaks a number of
things
- You can no longer use 'xm new' to define a persistent config file for
a running guest. This breaks the key OS provisioning scenario where
you boot a kenrel+initrd for the installer, and at the same time
define a permanent config with pygrub.
- It lets you define multiple inactive guests with different UUIDs, but
the same name because all inactive guests have a domid of None. So
you can now end up with multiple guests with same name, which is
contrary to the goal implied by the patch which was name uniqueness.
It is unclear from the original commit logs just what scenario it was
trying to protect against, but the original checking of uniqueness
based on UUID was correct & is what was used in previous releases XenD.
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Changeset 15951:ad339d88639d split policy_dir_prefix into
security_dir_prefix and policy_dir_prefix in acm code. I think this
needs to be reflected in the dummy module as well (otherwise we blowup
when bootloader.py tries to reference security.security_dir_prefix).
Fixed in below patch.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
libaio: Fix for *BSD
- Remove unused linux specific header
- Include <sys/time.h> needed for struct timespec Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
When creating domains that specify scheduler parameters with XenAPI,
the specified parameters are not used when starting the domain. This
patch collapses cpu_weight and cpu_cap in XendConfig into the
vcpus_params dictionary. The patch has been tested using xm and
XenAPI on config with and without scheduler parameters.
In order for Dom0 to be able to map the DMI table, it must not be in
E820 RAM; since some BIOS versions apparently fail to set the type
correctly for the page(s) containing this table, adjust it before
starting to consume memory.
Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Keir Fraser <keir@xensource.com>
On 32-bit xen, dom0 crashes when using VT-d to assign devices. It is
caused by setting m2p in clear_mmio_p2m_entry(), because
machine_to_phys_map[] entry for mmio address is not mapped.
Signed-off-by: Weidong Han <weidong.han@intel.com>
- portability fix in Makefile: mkhex is not bash specific
- GNU od separates column with one blank, BSD od uses eight blanks.
Change sed to deal with this.
- Add a fourth sed to fix a build error on NetBSD
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
xend: Fix VIF MAC address being lost across localhost migration.
VIF details in /vm/<uuid> directory in xenstore get deleted by old
domain dying. Signed-off-by: Keir Fraser <keir@xensource.com>
zlib and crypto libs are part of the base system in *BSD.
So no need to check for them on *BSD. This conveniently avoids
executing a non-portable usage of ldconfig.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Protect pygrub from possible malicious content in guest grub
config file. This fixes CVE-2007-4993. Original patch from
Jeremy Katz, I updated to close 2 remaining issues pointed out
by Christian and Keir, and to use setattr(self, ...).
xend memory ballooning: do not bother if guest will not fit in
physical memory constraints.
If users require domain memory size larger than a physical memory
size, we do not need waiting for ballooning, and should cause
xm create command error right away.
[Xend/ACM] Automatic loading of policy after xend has started.
On systems where the grub bootloader is not available or active the
to-be-activated policy is written a simple textfile. Once xend has
started the contents can be read. Using 'xm setpolicy' the policy can
be activated and the Domain-0 label set (using 'xm addlabel').
I fixed some bugs in the grub bootloader handler on the way and
removed some dead functions.
x86: Auto-probe the serial port baud rate if 'com1' or 'com2' is
specified as a Xen console target. Avoids need for 'com1=' or 'com2='
command-line option in some cases. Signed-off-by: Keir Fraser <keir@xensource.com>
Tim Deegan [Mon, 24 Sep 2007 12:44:29 +0000 (13:44 +0100)]
[HVM] Don't count "missed ticks" on one-shot timers.
It's not clear what it would mean, and it leads to division by zero. Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Fixes a number of these errors:
cc1: warnings being treated as errors
fsys_fat.c: In function 'fat_dir':
fsys_fat.c:304: warning: array subscript has type 'char'
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
These ugly casts are needed according to the ISO C spec.
network-bridge: default to eth0 if no default gateway.
From: Luke Szymanski <Lukasz.Szymanski@unisys.com> Signed-off-by: Keir Fraser <keir@xensource.com>
George Dunlap [Fri, 21 Sep 2007 14:33:37 +0000 (15:33 +0100)]
[xen][hvm][tracing] Refine hvm tracing
This patch does two things:
* Allows hvm traces to take advantage of the variable-size traces
* Adds some hvm functionality
This includes tracing actions like clts and lmsw, values of {p,mm}io reads
and writes, and making different trace records for hvm domains running in
64-bit mode if the trace record includes a virtual address.
George Dunlap [Fri, 21 Sep 2007 14:26:07 +0000 (15:26 +0100)]
[xen][tracing] Introduce variable-size trace records
This patch introduces variable-size trace records. Each record consists of
a 32-bit "header", an optional cycle count, and up to seven more 32-bit words.
The header is packed with the following information:
bits 0-27: The trace event.
bits 28-30: The number of 32-bit "extra" words in the records
bit 31: Does the trace include a 64-bit tsc?
This patch standardizes behavior wrt 32 and 64-bit hypervisors and dom0s.
Note that this patch requires a new version of the xentrace daemon running in
dom0. The new daemon, instead of pre-pending the cpu to every record as it
writes it, inserts a "cpu change" record to the trace file that record the
cpu and the number of records it's about to write.
Signed-off-by: George Dunlap <gdunlap@xensource.com>
Fix tools/console to build on NetBSD.
- include headers needed to build on NetBSD
- Remove unused pty.h
- Initialize spty terminal before actually using it
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
cpufreq: Support cpufreq updates on AMD hardware by dom0 kernel. Signed-off-by: Mark Langsdorf <mark.langsdorf@amd.com> Signed-off-by: Keir Fraser <keir@xensource.com>
- use MAP_ANON, that is what both (BSD-)Unix and Linux have
- change last_error handling to use pthreads
- round mlock() parameters to page alignment
- cleanup: No need to include <xen/sys/privcmd.h>
a second time in xg_private.h
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> Signed-off-by: Keir Fraser <keir@xensource.com>
hvm: Always keep canonical copy of RIP/RSP/RFLAGS in
guest_cpu_user_regs(). Reduces complexity at little or no performance
cost (except on really old Intel P4 hardware where VMREAD/VMWRITE are
silly expensive). Signed-off-by: Keir Fraser <keir@xensource.com>
Ian Campbell [Wed, 19 Sep 2007 11:12:49 +0000 (12:12 +0100)]
Using "make install" causes a distro specific script
(/sbin/installkernel) to be called since linux-2.6.18-xen.hg
211:c1f5d027adf7.
Unfortunately on some distros this script is broken for non-root
use. Our needs are pretty simple anyway so just open code the
installation of the kernel.
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
George Dunlap [Wed, 19 Sep 2007 10:58:04 +0000 (11:58 +0100)]
[shadow] Be smarter about what we check to avoid unnecessary brute-force searches
The old code checked only if the page was still a pagetable before
doing a brute-force search, rather than checking if it was still
shadowed as the type indicated. This meant that if a page was shadowed
as two different types, it was guaranteed to do a full brute-force search
even if all references could be found by up-pointers.
This checks the proper thing so that it will only do a brute-force if
necessary.
It also re-orders the unshadows so that higher levels are done first. In
many cases, lower-level shadows will be destroyed in the process of
higher-level shadows being destroyed, again saving brute-force searches.
hvm: hvm_{load,store}_cpu_guest_regs() does not touch segment
selectors. We have separate accessors for that now. It is now an
invariant that guest_cpu_user_regs()->{cs,ds,es,fs,gs,ss} are invalid
for an HVM guest. Signed-off-by: Keir Fraser <keir@xensource.com>
This fixes a build error for PV guests (OpenBSD, NetBSD) where the use
of XEN_GUEST_HANDLE_64(uint8_t) leads to a build error because uint8_t
is a #define and not a typedef.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
If vtpm_managed is started with the same vtpm instance, the following
error occurs.
++++++++++++
Loading NVM.
Sending LoadNVM command
INFO[VTSP]: Unbinding 256 bytes of data.
ERROR in VTSP_Unbind at vtsp.c:719 code: TPM_BAD_PARAMETER.
ERROR in envelope_decrypt at securestorage.c:156
code:TPM_BAD_PARAMETER.
ERROR[VTPM]: Failed to envelope decrypt data
.ERROR in VTPM_Handle_Load_NVM at securestorage.c:284 code:
TPM_BAD_PARAMETER.
ERROR[VTPM]: Failed to load NVM
.INFO[VTPM]: [VTPM Listener]: VTPM Listener waiting for messages.
Reading LoadNVM header
++++++++++++
I have added CONFIG_PASSTHROUGH in ioemu/Makefile.target and
ioemu/hw/pc.c in attached vtd_tools2.patch. This should turn off
libpci usage by default until user specifically enables it.
This can be safely check-in without breaking builds for people who do
not care about pass-through devices. I will try to think of a better
way to enable this.
Signed-off-by: Allen Kay <allen.m.kay@intel.com> Signed-off-by: Guy Zana <guy@neocleus.com>
I don't know how significant this is (most of the NUMA node data seems
unused at this point), but anyway: enable proper operation of NUMA
emulation and the fake NUMA node in case there's no SRAT table on
x86-32. This will at least make the "Faking node ..." message not
print confusing information anymore.