]> xenbits.xensource.com Git - xen.git/log
xen.git
17 years agohvm: Fix 2 type mismatches in vlapic.h and hpet.c for 32-bit build Xen
Keir Fraser [Wed, 28 Nov 2007 13:13:51 +0000 (13:13 +0000)]
hvm: Fix 2 type mismatches in vlapic.h and hpet.c for 32-bit build Xen

For 32-bit build of Xen:
1) the first mismatch (in hpet_read(), length is 4)  makes guest think
the HPET DM is buggy (we return 0 for HPET_CFG.COUNTER_CLK_PERIOD to
guest), so guest wouldn't use HPET at all.
2) the second one: if tmict is 62500000 and timer_divisor is 16
(Fedoar7's installer uses the values at some time), 10 * 62500000 * 16
= 0x2540BE400 -- it's too big to be held in uint32_t.

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>=20
17 years agohvm: Inject #UD for un-emulated instructions rather than crash guest
Keir Fraser [Wed, 28 Nov 2007 13:04:47 +0000 (13:04 +0000)]
hvm: Inject #UD for un-emulated instructions rather than crash guest

The CrashMe stress test (a process repeatedly forks child processes, and
the child processes initialize a buffer with random numbers, then treat
the buffer as code, and execute it) can crash 32-bit HVM RHEL5.1 guest
easily; this is because we haven't emulated all the instructions in
handle_mmio() yet.

The CrashMe process runs with root rights, and can access MMIO space in
an unknown way ("strace -f" shows the random codes running at CPL=3D3
don't call mmap(), and don't open any special files in /dev/ "); the gpa
may look like 0xa**** or  0xb****, or 0xfee0****. =20

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agoFix string length check for vsnprintf() in debugtrace_printk().
Keir Fraser [Wed, 28 Nov 2007 12:50:24 +0000 (12:50 +0000)]
Fix string length check for vsnprintf() in debugtrace_printk().
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
17 years agox86_emulate: Emulate RDTSC instruction.
Keir Fraser [Wed, 28 Nov 2007 12:44:46 +0000 (12:44 +0000)]
x86_emulate: Emulate RDTSC instruction.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Emulate ENTER and LEAVE instructions.
Keir Fraser [Wed, 28 Nov 2007 12:44:19 +0000 (12:44 +0000)]
x86_emulate: Emulate ENTER and LEAVE instructions.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years ago[Mini-OS] Catch NULL dereferences
Keir Fraser [Wed, 28 Nov 2007 12:42:17 +0000 (12:42 +0000)]
[Mini-OS] Catch NULL dereferences

Unmap page 0 (only used early at boot) so as to catch NULL dereferences.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Fix strrchr() when string doesn't contain the character.
Keir Fraser [Wed, 28 Nov 2007 12:41:41 +0000 (12:41 +0000)]
[Mini-OS] Fix strrchr() when string doesn't contain the character.
Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Make gnttab allocation/free safe
Keir Fraser [Wed, 28 Nov 2007 12:40:57 +0000 (12:40 +0000)]
[Mini-OS] Make gnttab allocation/free safe

Add a semaphore to protect gnttab_list from exhaustion, and disable
callbacks during allocation/free.  Fix the network frontend accordingly.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years agovt-d: Some fixes and cleanup of Intel iommu
Keir Fraser [Wed, 28 Nov 2007 12:34:11 +0000 (12:34 +0000)]
vt-d: Some fixes and cleanup of Intel iommu

This patch modifies domain id in __iommu_flush_context() and
__iommu_flush_iotlb() to be consistent consist with domain id set by
context_set_domain_id(), avoids setting NULL to  address space root
and corrects macro cap_ndoms.

Signed-off-by: Weidong Han <weidong.han@intel.com>
17 years agominios: Revert 16206:7b5b65fbaf61 (xenbus wait fixup)
Keir Fraser [Tue, 27 Nov 2007 12:49:16 +0000 (12:49 +0000)]
minios: Revert 16206:7b5b65fbaf61 (xenbus wait fixup)
Already fixed by 14432:f40079acf646.

17 years agox86_emulate: Fix use-before-initialise warning.
Keir Fraser [Tue, 27 Nov 2007 12:45:08 +0000 (12:45 +0000)]
x86_emulate: Fix use-before-initialise warning.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovmx realmode: Slight finessing of an error path.
Keir Fraser [Mon, 26 Nov 2007 22:28:48 +0000 (22:28 +0000)]
vmx realmode: Slight finessing of an error path.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovmx realmode: When returning to protected mode we have to massage the
Keir Fraser [Mon, 26 Nov 2007 22:20:21 +0000 (22:20 +0000)]
vmx realmode: When returning to protected mode we have to massage the
segment state to pass VMENTER's stringent 'sanity checks'.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovmx realmode: Emulate writes to control registers.
Keir Fraser [Mon, 26 Nov 2007 17:55:23 +0000 (17:55 +0000)]
vmx realmode: Emulate writes to control registers.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Emulate LMSW and SMSW.
Keir Fraser [Mon, 26 Nov 2007 17:54:54 +0000 (17:54 +0000)]
x86_emulate: Emulate LMSW and SMSW.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86 emulate: Emulate atomic read-modify-write instructions as a
Keir Fraser [Mon, 26 Nov 2007 16:57:57 +0000 (16:57 +0000)]
x86 emulate: Emulate atomic read-modify-write instructions as a
straightforward write. Hopefully multiprocessor synchronisation is not
relied upon in real mode!
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovmx realmode: Fix emulation of exception delivery (stack pointer must
Keir Fraser [Mon, 26 Nov 2007 16:47:10 +0000 (16:47 +0000)]
vmx realmode: Fix emulation of exception delivery (stack pointer must
be adjusted for FLAGS push), and fix up vmx_realmode() exit protocol
now that it is called from asm stub context.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Emulate RETF and RETF imm16.
Keir Fraser [Mon, 26 Nov 2007 16:46:22 +0000 (16:46 +0000)]
x86_emulate: Emulate RETF and RETF imm16.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Emulate CPUID and HLT.
Keir Fraser [Mon, 26 Nov 2007 15:32:54 +0000 (15:32 +0000)]
x86_emulate: Emulate CPUID and HLT.
vmx realmode: Fix decode & emulate loop, add hooks for CPUID, HLT and
WBINVD. Also do not hook realmode entry off of vmentry failure any
more.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Emulate LDS/LES/LFS/LGS/LSS.
Keir Fraser [Mon, 26 Nov 2007 13:54:45 +0000 (13:54 +0000)]
x86_emulate: Emulate LDS/LES/LFS/LGS/LSS.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovmx realmode: Detect and correctly plumb mmio accesses from emulated
Keir Fraser [Sun, 25 Nov 2007 21:24:48 +0000 (21:24 +0000)]
vmx realmode: Detect and correctly plumb mmio accesses from emulated
realmode. Also correctly handle debug output to I/O port 0xe9.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Emulate CMPS and SCAS string-compare instructions.
Keir Fraser [Sun, 25 Nov 2007 18:07:33 +0000 (18:07 +0000)]
x86_emulate: Emulate CMPS and SCAS string-compare instructions.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Emulate IRET.
Keir Fraser [Sun, 25 Nov 2007 18:06:30 +0000 (18:06 +0000)]
x86_emulate: Emulate IRET.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Decode and emulate PUSHF/POPF.
Keir Fraser [Sun, 25 Nov 2007 18:05:56 +0000 (18:05 +0000)]
x86_emulate: Decode and emulate PUSHF/POPF.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Allow emulated injection of exceptions and interrupts.
Keir Fraser [Sun, 25 Nov 2007 18:05:10 +0000 (18:05 +0000)]
x86_emulate: Allow emulated injection of exceptions and interrupts.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Emulate far call/jmp. This completes emulation of Grp5.
Keir Fraser [Sun, 25 Nov 2007 12:43:13 +0000 (12:43 +0000)]
x86_emulate: Emulate far call/jmp. This completes emulation of Grp5.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovmx realmode: Support privileged EFLAGS updates in emulated realmode.
Keir Fraser [Sun, 25 Nov 2007 11:45:02 +0000 (11:45 +0000)]
vmx realmode: Support privileged EFLAGS updates in emulated realmode.
Also tweak debug tracing to be much less noisy. We can emulates tens
of thousands of instructions in rombios now.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovmx realmode: Plumb through I/O port accesses in emulated realmode.
Keir Fraser [Sun, 25 Nov 2007 11:43:53 +0000 (11:43 +0000)]
vmx realmode: Plumb through I/O port accesses in emulated realmode.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovt-d: Fix iommu_map_page().
Keir Fraser [Sun, 25 Nov 2007 09:23:02 +0000 (09:23 +0000)]
vt-d: Fix iommu_map_page().
Signed-off-by: Weidong Han <weidong.han@intel.com>
17 years agoRemove unused bcopy() implementation.
Keir Fraser [Sat, 24 Nov 2007 22:33:38 +0000 (22:33 +0000)]
Remove unused bcopy() implementation.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agoRevert 16450:5e8e82e80. Instead remove all arch-specific handling of
Keir Fraser [Sat, 24 Nov 2007 22:19:03 +0000 (22:19 +0000)]
Revert 16450:5e8e82e80. Instead remove all arch-specific handling of
memcmp() and hence always use common/lib.c version.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovmx: Initial framework for real-mode emulation (disabled by default).
Keir Fraser [Sat, 24 Nov 2007 21:46:14 +0000 (21:46 +0000)]
vmx: Initial framework for real-mode emulation (disabled by default).
Still plenty to do:
 - i/o emulation
 - more instructions
 - interrupt/exception delivery
 - vm86 fast path
At this stage we can get three instructions into the rombios.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86_emulate: Support most common segment load/save instructions.
Keir Fraser [Sat, 24 Nov 2007 21:40:19 +0000 (21:40 +0000)]
x86_emulate: Support most common segment load/save instructions.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agox86: Fix read/write control-register in x86_emulate().
Keir Fraser [Sat, 24 Nov 2007 16:16:57 +0000 (16:16 +0000)]
x86: Fix read/write control-register in x86_emulate().
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agovt-d: Some fixes of Intel iommu
Keir Fraser [Sat, 24 Nov 2007 13:40:23 +0000 (13:40 +0000)]
vt-d: Some fixes of Intel iommu

This patch removes a wrong if condition judgement to setup rmrr
identify mapping for guests, and passes page count rather than address
size to iommu_flush_iotlb_psi().

Signed-off-by: Weidong Han <weidong.han@intel.com>
Signed-off-by: Anthony Xu <Anthony.xu@intel.com>
17 years ago[ACM] Remove aggregate set calculations for Domain-0
Keir Fraser [Sat, 24 Nov 2007 13:39:13 +0000 (13:39 +0000)]
[ACM] Remove aggregate set calculations for Domain-0

Since the pre_domain_create hook is called also for Dom-0, this
special case handling is not necessary any more.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
17 years agoFix non-optimized compilation of Xen's memcmp
Keir Fraser [Sat, 24 Nov 2007 13:37:26 +0000 (13:37 +0000)]
Fix non-optimized compilation of Xen's memcmp

Even when using __builtin_memcmp, gcc may emit external references to
memcmp (when not optimizing for instance), so this #define does not
always provide a completely suitable memcmp().

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years ago[Mini-OS] Fix domain blocking race
Keir Fraser [Sat, 24 Nov 2007 13:31:39 +0000 (13:31 +0000)]
[Mini-OS] Fix domain blocking race

A callback which wakes a thread may happen between the moment
schedule() gives hand to the idle thread and the latter blocks the
domain.  Idle hence needs to atomically check that no thread is
running and block, else awoken threads may have to wait up to 10
seconds.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Permit x86_64 trap handlers to return
Keir Fraser [Sat, 24 Nov 2007 13:31:01 +0000 (13:31 +0000)]
[Mini-OS] Permit x86_64 trap handlers to return

Trap handlers sometimes fix the problem, so they need to be able to
return.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Make sure schedule() is called safely
Keir Fraser [Sat, 24 Nov 2007 13:29:20 +0000 (13:29 +0000)]
[Mini-OS] Make sure schedule() is called safely

If a thread tries to sleep from a callback or with callbacks disabled,
Mini-OS will completely lock, so make sure this never happens.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Fix netfront xmit overflow
Keir Fraser [Sat, 24 Nov 2007 13:28:54 +0000 (13:28 +0000)]
[Mini-OS] Fix netfront xmit overflow

Fix xmit overflow by making netfront_xmit sleep until
network_tx_buf_gc() frees an xmit request.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Fix net backend path leak
Keir Fraser [Sat, 24 Nov 2007 13:28:27 +0000 (13:28 +0000)]
[Mini-OS] Fix net backend path leak

Free backend path after use.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Make wake_up callback-safe
Keir Fraser [Sat, 24 Nov 2007 13:27:59 +0000 (13:27 +0000)]
[Mini-OS] Make wake_up callback-safe

As it may compete with event handlers waking wait queues, wake_up
needs to be callback-safe.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Fix init_waitqueue_entry
Keir Fraser [Sat, 24 Nov 2007 13:27:32 +0000 (13:27 +0000)]
[Mini-OS] Fix init_waitqueue_entry

Fix initialization of thread_list in init_waitqueue_entry().

Signed-off-by: Samuel Thibault <samuel.thibault@xensource.com>
17 years ago[Mini-OS] Add init_SEMAPHORE
Keir Fraser [Sat, 24 Nov 2007 13:27:08 +0000 (13:27 +0000)]
[Mini-OS] Add init_SEMAPHORE

Add init_SEMAPHORE() to dynamically initialize semaphores.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Make semaphores callback-safe
Keir Fraser [Sat, 24 Nov 2007 13:26:39 +0000 (13:26 +0000)]
[Mini-OS] Make semaphores callback-safe

One may want to use semaphores in event handlers to wake threads
waiting for a resource, so semaphores then need to be callback-safe.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years agox86, hvm: Config option to allow vmxassist to be disabled.
Keir Fraser [Sat, 24 Nov 2007 13:23:22 +0000 (13:23 +0000)]
x86, hvm: Config option to allow vmxassist to be disabled.
hvmloader is modified to dynamically detect this, allowing possibility
of optional full vmxassist replacement in 3.2 stable branch in future.
Currently 'vmxassist=y' is not much use since no replacement is
implemented.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years ago[Mini-OS] Add strrchr()
Keir Fraser [Fri, 23 Nov 2007 16:42:44 +0000 (16:42 +0000)]
[Mini-OS] Add strrchr()

Add strrchr(), useful e.g. for grabbing the last part of a xenbus
path.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Add ENOTSUP
Keir Fraser [Fri, 23 Nov 2007 16:42:23 +0000 (16:42 +0000)]
[Mini-OS] Add ENOTSUP

Add missing ENOTSUP by defining it to EOPNOTSUPP like in Linux.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Move _ctype into a module
Keir Fraser [Fri, 23 Nov 2007 16:41:54 +0000 (16:41 +0000)]
[Mini-OS] Move _ctype into a module

Move the _ctype array into its own module, instead of having it
defined in a header.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years agovt-d: Fix ISA IRQ alias issue
Keir Fraser [Fri, 23 Nov 2007 16:39:45 +0000 (16:39 +0000)]
vt-d: Fix ISA IRQ alias issue

When assign multiple devices to guest which uses PIC, ISA IRQ alias
may occur. This patch splits ISA IRQ and GSI eoi function. In ISA IRQ
eoi function, searches all assigned mirqs and does eoi for the
corresponding mirqs which match the eoi ISA IRQ. Therefore fix ISA IRQ
alias issue.

Signed-off-by: Weidong Han <weidong.han@intel.com>
17 years ago[Mini-OS] Make bind_virq return the port
Keir Fraser [Fri, 23 Nov 2007 16:25:59 +0000 (16:25 +0000)]
[Mini-OS] Make bind_virq return the port

Make bind_virq() return the port bound to the irq, which is useful
e.g. for masking/unmasking it.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Fix x86 arch_switch_thread
Keir Fraser [Fri, 23 Nov 2007 16:23:28 +0000 (16:23 +0000)]
[Mini-OS] Fix x86 arch_switch_thread

Fix x86 arch_switch_thread by making it pure assembly.
There were missing general register clobbers for x86_64, and BP should
theorically be clobbered too, but gcc does not believe that, so the
only simple safe solution is to use pure assembly.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Optimize get_current()
Keir Fraser [Fri, 23 Nov 2007 16:23:03 +0000 (16:23 +0000)]
[Mini-OS] Optimize get_current()

Let gcc perform the computation with SP itself, leading to yet better
code.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Fix stack closures
Keir Fraser [Fri, 23 Nov 2007 16:22:36 +0000 (16:22 +0000)]
[Mini-OS] Fix stack closures

So as to make backtracing tools happy, correctly close x86 stacks for
new threads as well as on callback in the x86_32 case since there is
no unwind marker.

Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years ago[Mini-OS] Fix x86 initial stack alignment
Keir Fraser [Fri, 23 Nov 2007 16:22:13 +0000 (16:22 +0000)]
[Mini-OS] Fix x86 initial stack alignment

This fixes the initial stack alignment for x86, which is required for
current to return a fine NULL instead of a random value or possibly
crash during initialization.

Signed-off-by: Grzegorz Milos <gm281@cam.ac.uk>
Signed-off-by: Samuel Thibault <samuel.thibault@citrix.com>
17 years agoxend: Add support for NetBSD.
Keir Fraser [Fri, 23 Nov 2007 11:58:11 +0000 (11:58 +0000)]
xend: Add support for NetBSD.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
17 years agohvm: Clean up VMCS/VMCB construction.
Keir Fraser [Thu, 22 Nov 2007 19:55:42 +0000 (19:55 +0000)]
hvm: Clean up VMCS/VMCB construction.
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agox86: emulate I/O port access breakpoints
Keir Fraser [Thu, 22 Nov 2007 19:23:40 +0000 (19:23 +0000)]
x86: emulate I/O port access breakpoints

Emulate the trapping on I/O port accesses when emulating IN/OUT.

Also allow 8-byte breakpoints on x86-64 (and on i686 if the hardware
supports them), and tighten the condition for loading debug registers
during context switch.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agox86: single step after instruction emulation
Keir Fraser [Thu, 22 Nov 2007 18:28:47 +0000 (18:28 +0000)]
x86: single step after instruction emulation

Inject single step trap after emulating instructions if guest's
EFLAGS.TF is set.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agoacm: Fix an exit label.
Keir Fraser [Thu, 22 Nov 2007 17:44:51 +0000 (17:44 +0000)]
acm: Fix an exit label.

Jump to a different error exit label if error occurs early in the
policy update process.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
17 years agonetfront/back: Specify interface allowing multicast address add/remove
Keir Fraser [Thu, 22 Nov 2007 17:43:29 +0000 (17:43 +0000)]
netfront/back: Specify interface allowing multicast address add/remove
requests to be passed from the frontend to the backend.

Signed-off-by: David Edmondson <dme@sun.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years ago[SVM] handle MC threshold registers for Barcelona
Keir Fraser [Thu, 22 Nov 2007 15:10:47 +0000 (15:10 +0000)]
[SVM] handle MC threshold registers for Barcelona
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
17 years agox86: make set_task_gate() x86-32-only since x86-64 doesn't have task gates.
Keir Fraser [Thu, 22 Nov 2007 14:16:25 +0000 (14:16 +0000)]
x86: make set_task_gate() x86-32-only since x86-64 doesn't have task gates.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
17 years agox86-64: access only 4 bytes a the reset vector location on smpboot.
Keir Fraser [Thu, 22 Nov 2007 14:12:47 +0000 (14:12 +0000)]
x86-64: access only 4 bytes a the reset vector location on smpboot.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
17 years agoHeader dependency fix.
Keir Fraser [Thu, 22 Nov 2007 14:04:44 +0000 (14:04 +0000)]
Header dependency fix.
Signed-off-by: Jan Beulich <jbeulich@novell.com>
17 years agoMerge with ia64 tree.
Keir Fraser [Thu, 22 Nov 2007 10:44:54 +0000 (10:44 +0000)]
Merge with ia64 tree.

17 years agolibxc: Minor clean up of xc_core, and fix for -fstrict-overflow.
Keir Fraser [Thu, 22 Nov 2007 10:40:45 +0000 (10:40 +0000)]
libxc: Minor clean up of xc_core, and fix for -fstrict-overflow.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
17 years agohvm: Clean up CPUID 0x80000001 emulation. Filter out RDTSCP feature
Keir Fraser [Thu, 22 Nov 2007 10:33:10 +0000 (10:33 +0000)]
hvm: Clean up CPUID 0x80000001 emulation. Filter out RDTSCP feature
and emulate with #UD on AMD.
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agomerge with xen-unstable.hg (staging)
Alex Williamson [Wed, 21 Nov 2007 16:12:06 +0000 (09:12 -0700)]
merge with xen-unstable.hg (staging)

17 years agox86: rmb() can be weakened according to new Intel spec.
Keir Fraser [Wed, 21 Nov 2007 14:36:07 +0000 (14:36 +0000)]
x86: rmb() can be weakened according to new Intel spec.

Both Intel and AMD agree that, from a programmer's viewpoint:
 Loads cannot be reordered relative to other loads.
 Stores cannot be reordered relative to other stores.

Intel64 Architecture Memory Ordering White Paper
<http://developer.intel.com/products/processor/manuals/318147.pdf>

AMD64 Architecture Programmer's Manual, Volume 2: System Programming
<http://www.amd.com/us-en/assets/content_type/\
 white_papers_and_tech_docs/24593.pdf>

Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agox86: Re-factor and clean up system.h.
Keir Fraser [Wed, 21 Nov 2007 14:27:38 +0000 (14:27 +0000)]
x86: Re-factor and clean up system.h.
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agoi386: Remove unnecessary, and broken, address check I added to seg
Keir Fraser [Wed, 21 Nov 2007 12:00:20 +0000 (12:00 +0000)]
i386: Remove unnecessary, and broken, address check I added to seg
fixup code. Oops.
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agoi386: adjustment to segment fixup code.
Keir Fraser [Wed, 21 Nov 2007 11:49:41 +0000 (11:49 +0000)]
i386: adjustment to segment fixup code.

Clean up and support more instructions.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
17 years agox86: Make IDT/GDT/LDT updates safe.
Keir Fraser [Wed, 21 Nov 2007 11:38:51 +0000 (11:38 +0000)]
x86: Make IDT/GDT/LDT updates safe.

This involves either determining that the entry will not be
read/written while the update takes place, or atomically making the
entry 'present', or doing the entire write atomically, as appropriate.

This issue raised, and original patch provided, by Jan Beulich.

Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agoioemu: Add e100 NIC support. Req'd for w2k3/IA64.
Keir Fraser [Wed, 21 Nov 2007 09:52:04 +0000 (09:52 +0000)]
ioemu: Add e100 NIC support. Req'd for w2k3/IA64.
Signed-off-by: Zhang Xin <xing.z.zhang@intel.com>
17 years agohvm: Do not crash guest if it does an unaligned access to an HPET
Keir Fraser [Wed, 21 Nov 2007 09:49:09 +0000 (09:49 +0000)]
hvm: Do not crash guest if it does an unaligned access to an HPET
register. Some CrashMe test apaprently does this and we don't want
that to crash the domain it runs in.
From: Dexuan Cui <dexuan.cui@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agoRemove unused smpboot.h header file.
Keir Fraser [Wed, 21 Nov 2007 09:45:22 +0000 (09:45 +0000)]
Remove unused smpboot.h header file.
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agomerge with xen-unstable.hg (staging)
Alex Williamson [Tue, 20 Nov 2007 18:53:44 +0000 (11:53 -0700)]
merge with xen-unstable.hg (staging)

17 years agoxen: Allow granting of foreign access to iomem pages, and with
Keir Fraser [Tue, 20 Nov 2007 17:26:48 +0000 (17:26 +0000)]
xen: Allow granting of foreign access to iomem pages, and with
arbitrary cache attributes.
Signed-off-by: Kieran Mansley <kmansley@solarflare.com>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years ago[IA64] vti save-restore: save.h clean up
Alex Williamson [Tue, 20 Nov 2007 16:28:15 +0000 (09:28 -0700)]
[IA64] vti save-restore: save.h clean up

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
17 years ago[IA64] vti save-restore: save/restore opt_feature status
Alex Williamson [Tue, 20 Nov 2007 16:21:27 +0000 (09:21 -0700)]
[IA64] vti save-restore: save/restore opt_feature status

Make hvm domain save/restore support opt_feature.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
17 years ago[IA64] vti save-restore: preparation opt_feature support
Alex Williamson [Tue, 20 Nov 2007 16:14:43 +0000 (09:14 -0700)]
[IA64] vti save-restore: preparation opt_feature support

Pass struct domain* to domain_opt_feature().
This patch is preparation patch for HVM domain save/restore opt_feature.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
17 years ago[IA64] vti save-restore: fix opt_feature hypercall
Alex Williamson [Tue, 20 Nov 2007 16:11:15 +0000 (09:11 -0700)]
[IA64] vti save-restore: fix opt_feature hypercall

- Fix XEN_IA64_OPTF_IDENT_MAP_REG[457] definitions.
- SMP fix. writing to domain->arch.opt_feature is racy.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
17 years ago[IA64] vti save-restore: fix vacpi_save()
Alex Williamson [Tue, 20 Nov 2007 15:46:24 +0000 (08:46 -0700)]
[IA64] vti save-restore: fix vacpi_save()

Always returned 0.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
17 years agox86, 32-on-64: Improve checking in vcpu_destroy_pagetables(). It *is*
Keir Fraser [Tue, 20 Nov 2007 15:34:25 +0000 (15:34 +0000)]
x86, 32-on-64: Improve checking in vcpu_destroy_pagetables(). It *is*
possible for 64-bit guest to have matching guest_table and
guest_table_user.
Original patch by John Levon <levon@movementarian.org>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agoxenapi: Extension to get vif total i/o stats.
Keir Fraser [Tue, 20 Nov 2007 15:18:09 +0000 (15:18 +0000)]
xenapi: Extension to get vif total i/o stats.
From: Stefan de Konink <skinkie@xs4all.nl>
Signed-off-by: Keir Fraser <keir.fraser@eu.citrix.com>
17 years agoACM: Test sharing as part of the authorization check.
Keir Fraser [Tue, 20 Nov 2007 15:13:29 +0000 (15:13 +0000)]
ACM: Test sharing as part of the authorization check.

Protected the policy from being changed while the hooks are being
called.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
17 years agosvm: Fix __update_guest_eip() to clear interrupt shadow.
Keir Fraser [Tue, 20 Nov 2007 15:05:36 +0000 (15:05 +0000)]
svm: Fix __update_guest_eip() to clear interrupt shadow.
Get rid of assertions about return value of get_instruction_length()
-- instead test in __update_guest_eip() and crash the domain.
Cache value of 'current' in svm_do_hlt().

The mismanagement of the interrupt shadow was found by Christoph
Egger of AMD.

Signed-off-by: Keir Fraser <keir@xensource.com>
17 years agoxen: Domain0 builder should set start_info magic string to
Keir Fraser [Tue, 20 Nov 2007 14:35:36 +0000 (14:35 +0000)]
xen: Domain0 builder should set start_info magic string to
'xen-3.0-...' just like user-space builder for domUs.
Signed-off-by: Keir Fraser <keir@xensource.com>
17 years agox86: Move log-dirty-mode assertion to correct place.
Keir Fraser [Sat, 17 Nov 2007 13:11:25 +0000 (13:11 +0000)]
x86: Move log-dirty-mode assertion to correct place.
Signed-off-by: Keir Fraser <keir@xensource.com>
17 years agoLog dirty radix tree code cleanup. Also do not deference non-existent
Keir Fraser [Fri, 16 Nov 2007 20:06:15 +0000 (20:06 +0000)]
Log dirty radix tree code cleanup. Also do not deference non-existent
pointer in paging_new_log_dirty_*() functions if allocation fails.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agohvm: RTC emulation - RTC_UIE/RTC_SET fix
Keir Fraser [Fri, 16 Nov 2007 19:07:46 +0000 (19:07 +0000)]
hvm: RTC emulation - RTC_UIE/RTC_SET fix

This patch fixes a bug in the RTC code which appears to originate in
having written the emuated device following an incorrect
specification. VMware has (or had, at least, at the time we were still
testing on both VMWare and Xen) the same issue. In the current code,
when RTC_SET is set, RTC_UIE is cleared. This does not match the
behavior of real hardware, where the case is simply that no update
ended interrupts are sent as long as RTC_SET is set, but the UE ints
will resume as soon as RTC_SET is cleared and the clock update is
done. This little patch fixes this issue. In practicality, this means
OS/2 can now set the time without having the clock stop. I don't know
if any other guests have been affected by this issue.

From: Trolle Selander <trolle.selander@gmail.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agohvm: make dirty logging stop requiring physical pages of order > 0
Keir Fraser [Fri, 16 Nov 2007 18:33:24 +0000 (18:33 +0000)]
hvm: make dirty logging stop requiring physical pages of order > 0

This patch re-implements the (x86) hypervisor dirty page log with a
simple four-level radix tree whose nodes are all single pages, thus
making migration require only order-0 pages (where before it required
at least an order-5 page).

Unlike the p2m radix tree implementation, the interior nodes of this
tree are NOT page table nodes.  I chose a lazy-allocation and -mapping
approach because most pages are not marked dirty while dirty-logging is
enabled.  There are doubtless situations (the 'stream' benchmark, for
example) where a more complex p2m-like approach is faster, but I'm not
sure they're worth the effort.

Signed-off-by: Dave Lively <dlively@virtualiron.com>
17 years agox86: Clean up some files of inline asm, and fix
Keir Fraser [Fri, 16 Nov 2007 17:59:34 +0000 (17:59 +0000)]
x86: Clean up some files of inline asm, and fix
__copy_{to,from}_user_ll() for gcc 3.4 (asm output constraints all
need to be '=&').
Based on a patch by Jan Beulich.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
17 years agohvm passthru: Uses of XC_PAGE_MASK should be XC_PAGE_SIZE-1.
Keir Fraser [Fri, 16 Nov 2007 17:09:53 +0000 (17:09 +0000)]
hvm passthru: Uses of XC_PAGE_MASK should be XC_PAGE_SIZE-1.
Signed-off-by: Weidong Han <weidong.han@intel.com>
17 years agoxentrace: make xentrace and xenmon work on Solaris and *BSD.
Keir Fraser [Fri, 16 Nov 2007 17:08:05 +0000 (17:08 +0000)]
xentrace: make xentrace and xenmon work on Solaris and *BSD.
 - Use getopt() to get rid of argp dependency which does not exist
   on Solaris and *BSD. Done by Tariq Magdon-Ismail.
 - Minor modifications by me (Christoph) to make it also work on *BSD.
 - Tested on Linux by me (Christoph). No functional change on Linux.
 - Tariq ok'd BSD modifications for Solaris
 - Tariq ok'd submission by me :)

Signed-off-by: Tariq Magdon-Ismail <tariqmi@sun.com>
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
17 years agoxentrace: Fix TypeError handling of xentrace_format.
Keir Fraser [Fri, 16 Nov 2007 17:05:20 +0000 (17:05 +0000)]
xentrace: Fix TypeError handling of xentrace_format.
Signed-off-by: Yosuke Iwamatsu <y-iwamatsu@ab.jp.nec.com>
17 years agoqemu: more verbose on failures.
Keir Fraser [Fri, 16 Nov 2007 17:03:46 +0000 (17:03 +0000)]
qemu: more verbose on failures.
Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
17 years agovt-d: Clean up VT-d code
Keir Fraser [Fri, 16 Nov 2007 17:01:50 +0000 (17:01 +0000)]
vt-d: Clean up VT-d code
Signed-off-by: Weidong Han <weidong.han@intel.com>