Keir Fraser [Wed, 23 Jan 2008 14:30:29 +0000 (14:30 +0000)]
x86_emulate: Emulate FNINIT, FNSTCW, FNSTSW x87 instructions.
Provide new hook ->load_fpu_ctxt() to ensure emulated environment's
FPU state is loaded onto the local processor. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Wed, 23 Jan 2008 13:22:13 +0000 (13:22 +0000)]
New XS_SET_TARGET
Stubdomains (and probably other domain disagregation elements too)
need to be able to tinker with another domain. This adds
XS_SET_TARGET so that XenStore allows domains to have permissions on
files on which the "target" has permissions. This also adds
xs_set_target, called by the domain builder when the 'target' option
is used in the configuration.
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Keir Fraser [Wed, 23 Jan 2008 13:21:44 +0000 (13:21 +0000)]
New XEN_DOMCTL_set_target
Stubdomains (and probably other domain disagregation elements too)
need to be able to tinker with another domain. This adds IS_PRIV_FOR
that extends IS_PRIV by allowing domains to have privileges over a
given "target" domain. XEN_DOMCTL_set_target permits to set this
"target". A new 'target' configuration option makes the domain builder
use it.
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Keir Fraser [Wed, 23 Jan 2008 11:21:35 +0000 (11:21 +0000)]
tools/check: Add explicit include path for funcs.sh.
When the current directory is not in $PATH,
then the patch fixes the following errors:
Checking check_brctl: .: funcs.sh: not found
Checking check_crypto_lib: .: funcs.sh: not found
Checking check_curl: .: funcs.sh: not found
Checking check_iproute: .: funcs.sh: not found
Checking check_python: .: funcs.sh: not found
Checking check_python_xml: .: funcs.sh: not found
Checking check_udev: .: funcs.sh: not found
Checking check_xml2: .: funcs.sh: not found
Checking check_zlib_lib: .: funcs.sh: not found
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
Keir Fraser [Tue, 22 Jan 2008 17:20:39 +0000 (17:20 +0000)]
vmx: Disable vmxassist in the default build.
We now use x86 real-mode emulation by default.
Select old behaviour (for now) by specifying vmxassist=y at build time. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Tue, 22 Jan 2008 17:18:51 +0000 (17:18 +0000)]
vmx realmode: Faster emulation of REP INS and REP OUTS.
This makes, in particular, reading files via the BIOS disk abstraction
much much much faster. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Tue, 22 Jan 2008 09:51:49 +0000 (09:51 +0000)]
xend: On block-attach, remove device information when VmError occurs.
I tested xm block-attach command with a wrong
parameter(file:). Naturally a command error occurred. Then I retested
xm block-attach command with a correct parameter(phy:). But a command
error occurred again. The second command error occurred because Xend
did not remove device information from self.info when the first
command error occurred.
Keir Fraser [Tue, 22 Jan 2008 09:50:06 +0000 (09:50 +0000)]
hvm, ioemu: Fix the ide/cdrom emulation error on FC7 guest.
The new libata-eh in the Linux kernel is throwing a fit over the QEMU
cdrom device for two reasons:
1) DRQ can be set with ERR_STAT set. This is a violation of the ATAPI
state machine.
2) After a TEST_UNIT_READY ATAPI command is sent ERR_STAT is getting
set
which is correct. But, when the OS issues another ATAPI command
ERR_STAT is still set. Which is bad since the next expected command
from the OS is REQUEST_SENSE to find out why ERR_STAT is set.
bug this fixes: https://bugzilla.novell.com/show_bug.cgi?id=3D291775
Signed-off-by: Brandon Philips <bphilips@suse.de>
Porting this qemu fix to xen.
Keir Fraser [Tue, 22 Jan 2008 09:43:53 +0000 (09:43 +0000)]
Make tools/Makefile cross-friendly
Pass Xen cross-compilation options through to ioemu.
Export CROSS_SYS_ROOT for use by scripts. Unexport
IOEMU_DIR since it isn't used outside of the Makefile.
Keir Fraser [Mon, 21 Jan 2008 14:39:33 +0000 (14:39 +0000)]
hvm: Allow PCI high-memory resource to be decided by hvmloader at
HVM-guest boot time. Also make a few PCI0 resource ResourceProducer
type -- this seems to be specified by some randomly-sampled real ACPI
systems. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Keir Fraser [Fri, 18 Jan 2008 15:28:59 +0000 (15:28 +0000)]
pv-on-hvm: fix/adjust pv driver's mkbuildtree
Allow invoking the script from other than the current directory (the
script now infers the tree is where the script lives). Print which
trees are actually being used.
Fix the linking of sources from Linux tree's drivers/xen/ - this was
needlessly invoking lndir on various sub-directories, in some cases
even twice.
Adjust the script to be able to deal with Linux 2.6.24's unified x86
include directory.
Keir Fraser [Fri, 18 Jan 2008 15:22:42 +0000 (15:22 +0000)]
minios: extend map_frames into being able to map a series of
contiguous frames, or the same frame several times, aligned, from
another domain, with specific protection, and with potential
failures.
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Keir Fraser [Fri, 18 Jan 2008 13:43:26 +0000 (13:43 +0000)]
Clarify 'xm mem-set' and 'xm vcpu-set' requirements in documentation.
From: Richard W.M. Jones <rjones@redhat.com> Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Alex Williamson [Thu, 17 Jan 2008 19:05:43 +0000 (12:05 -0700)]
[IA64] domheap: Allocate privregs from domain heap for VTi domain
- Pin privregs down with both dtr/itr so that privregs can be allocated
from the domain heap
- Introduce vmx_vpd_pin()/vmx_vpd_unpin().
The vpd area is pinned down when current. But two functions,
update_vhpi() and alloc_vpd() are exceptions.
We have to pin down the area before PAL call.
- Minor twist context switch not to use unpinned vpd area.
vmx_load_state() needs the vpd area pinned down.
Call it after vmx_load_all_rr()
- Fix vmx_load_all_rr()
vmx_switch_rr7() sets psr.ic = 0 so that clearing psr.ic before calling
vmx_switch_rr7() doesn't make sense.
- Improve vmx_switch_rr7()
It sets psr.ic = 0 after switching to physical mode. But it can be
done at the switching time.
Alex Williamson [Thu, 17 Jan 2008 19:05:43 +0000 (12:05 -0700)]
[IA64] domheap: Allocate shared_info page from domain heap
Hyperprivops were accessing shared_info page with psr.ic = 0.
They are accessing the page via current_psr_i_addr.
We can set it to shared_info_va which is mapped by IA64_TR_SHARED_INFO.
Thus we can allocate the page form domain heap
Alex Williamson [Thu, 17 Jan 2008 19:05:43 +0000 (12:05 -0700)]
[IA64] Fix ia64_reload_tr in mca_asm.S
- DTR for stack comparison should be done with xen heap.
- cpu_kr current offset contains (physicall address >> IA64_GRANULE_SHIFT)
so the comparison was done with the wrong value.
- When mapping VHPT area, overlapping should be avoided.
Alex Williamson [Thu, 17 Jan 2008 19:05:43 +0000 (12:05 -0700)]
[IA64] Remove init_task definition
init_task in kernel area shouldn't be referenced.
The corresponding address in the identity mapping area should be used.
i.e. ia64_tpa(init_task) + PAGE_OFFSET, because ia64_switch_rr7() and
vmx_switch_rr7() assume that stack is in indentity mapping area.
To make it sure, remove init_task definition.