[HVM] Route ISA IRQ 0 to IOAPIC GSI 2, just like 99% of native systems.
This is a built-in assumption of HPET 'legacy' IRQ routing, which is
why we have changed to this routing strategy now.
Ewan Mellor [Mon, 25 Dec 2006 16:26:51 +0000 (16:26 +0000)]
Change the way that networks and PIFs relate to each other -- the PIF holds a
reference to the network (and the host) not the other way around. Persist only
the necessary details for the network (not the set of PIFs and VIFs).
Fix the plumbing of the network class inside XendAPI, and implement a few more
functions.
Ewan Mellor [Mon, 25 Dec 2006 16:20:23 +0000 (16:20 +0000)]
Change the way that MESSAGE_PARAMETER_COUNT_MISMATCH is diagnosed (using a
separate dictionary to record parameter counts, rather than trying to parse them
out of the exception) and tidy up the validator preprocessing and the
validators themselves.
Ewan Mellor [Mon, 25 Dec 2006 15:04:28 +0000 (15:04 +0000)]
Plumb the new PIF and network implementations in through the XendAPI class.
Use the new stateful records to save host, SR, network, and PIF configuration.
Add extra functionality to the SR class, to calculate capacities et al.
Ewan Mellor [Fri, 22 Dec 2006 11:39:29 +0000 (11:39 +0000)]
Added Xen-API-style error handling for INTERNAL_ERROR and
MESSAGE_METHOD_UNKNOWN. Only add the Xen-API methods to the official Xen-API
XML-RPC server, not to the legacy one.
Ewan Mellor [Fri, 22 Dec 2006 11:38:05 +0000 (11:38 +0000)]
Move the decoration of all the Xen-API methods out of XendAPI.__init__ and
into the module scope. This avoids the decorators being added multiple times,
once for each server running.
Fix handling of MESSAGE_PARAMETER_COUNT_MISMATCH in many cases. Move the
get_by_uuid declarations, so that those functions get the per-class validator
as well, to check for existence of the object requested.
[HVM] Emulates HPET in hypervisor and extend ACPI tables. Signed-off-by: Dexuan Cui <dexuan.cui@intel.com> Signed-off-by: Eddie Dong <eddie.dong@intel.com> Signed-off-by: Xiaowei Yang <xiaowei.yang@intel.com>
Tim Deegan [Wed, 20 Dec 2006 12:07:10 +0000 (12:07 +0000)]
[HVM] Mask cmpxchg8b capability in cpuid for non-pae guests
This allows non-PAE NT4 kernels to boot Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Tim Deegan [Wed, 20 Dec 2006 12:04:38 +0000 (12:04 +0000)]
[XEN] Don't pass spurious fast-path faults to the guest at all.
Instead, retry and get a sensible fault from the hardware next time. Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Tim Deegan [Wed, 20 Dec 2006 12:03:07 +0000 (12:03 +0000)]
[XEN] Clean up the shadow interface
Remove a lot of unneccesary things from shadow.h, and move the shadow lock
entirely inside the shadow code. Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Tim Deegan [Wed, 20 Dec 2006 11:57:53 +0000 (11:57 +0000)]
[HVM] Add expansion-ROM boot support to the ROMBIOS
This is rudimentary support for parts of the BIOS Boot Specification,
just enough to use Etherboot ROM images. Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Tim Deegan [Wed, 20 Dec 2006 11:54:57 +0000 (11:54 +0000)]
[XEN] Skip shadowing of guest PTE writes when known to be safe
That is, when the guest replaces a not-present pte with another one Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
Tim Deegan [Wed, 20 Dec 2006 11:53:01 +0000 (11:53 +0000)]
[XEN] Better diagnostics of recursive shadow faults
Give a trace of the recursive fault instead of BUG()ing in the shadow handler. Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
[LINUX] dma: Use swiotlb mask for coherent mappings too
The recent change to use a default DMA bit width of 30 bits (required
by chips like the b44) only converted the streaming DMA primitives.
The coherent mappings are still hard-coded to 31 bits. This means
that b44 still doesn't work under Xen.
This patch makes the io_tlb_dma_bits variable global and uses it for
coherent memory mappings.
Thanks to Calvin Webster for providing a machine with a b44 and 2G
of memory I've been able to verify that this finally makes the b44
work under Xen.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Rename 'io_tlb_dma_bits' to the more correct 'dma_bits'. This also
affects the name of the boot parameter, which is now 'dma_bits='.
[HVM] Sync per vcpu LAPIC timer with its TSC:
- benefits LAPIC calibration
- makes scheduling policy based on LAPIC more precise
- makes LAPIC timer code becomes simpler and cleaner after using
periodic time layer
Signed-off-by: Xiaowei Yang <xiaowei.yang@intel.com>
[HVM] Enable more than one platform timer (PIT/RTC/HPET)
programmed as periodic timer and adds them to abstract layer, which
keeps track of pending_intr_nr to avoid time interrupt lost and
sync'ed timer with TSC.
It also makes some cleanup to the time related code.
Signed-off-by: Xiaowei Yang <xiaowei.yang@intel.com> Signed-off-by: Yunhong Jiang <yunhong.jiang@intel.com>
[HVM][SVM] Modify the interrupt/event injection logic.
Resolves performance issues concerning AMD-V virtual interrupt/event
injection:
- Remove extra VINTRs vmexits, and only setup fake interrupt if intr
pending.
- Allow both event injection and interrupt injection concurrently in
vmcb.
Since we had changed to use event callback to deliver interrupts,
1. The pending_interruption is changed to pending_event.
2. get_ivr, set_tpr, get_trp and set_eoi are not used or only used
in the initialization phase. There is no need to write this code
in assembly. This code is deleted.
3. hyper_ssm_i needs to be rewritten to jump to entchn_callback_handler
instead of iva+0x3000 interrupt handler. I will do this later.
Ewan Mellor [Sat, 16 Dec 2006 12:52:18 +0000 (12:52 +0000)]
An error occurs if the first detach was successful and the 2nd one is
not (of course). Return if the 1st detach is successful, try the 2nd one
if it was not successful. Throw an error if the 2nd one fails.
This should also fix problems I am currently seeing in the xm-test
suite.
Brendan Cully [Thu, 14 Dec 2006 01:45:50 +0000 (17:45 -0800)]
Improve XendCheckpoint's forkHelper error handling.
When inputHandler raises an exception, close stdin and stdout in the
child before attempting to close stderr, which is held open by a
separate thread. Without this patch, exceptions raised by device
migration caused xend to hang on child.childerr.close().
Ewan Mellor [Fri, 15 Dec 2006 17:18:02 +0000 (17:18 +0000)]
Allow the XenAPI Session object to have login_with_password called as a
methodname, to re-login through the same object (say when the server is
restarted).
VNC pasword authentication support for the paravirt framebuffer server.
The rules for configuring the password are equivalent of those used
for HVM, but the actual guest config option is a little different as a
result of the recent refactoring of the PVFB config file syntax.
- If the 'vfb' option in the guest config has a 'vncpasswd' parameter
specified
- If the passwd is not zero length, use that
- Else run with no authentication (important as it enables
override of next rule)
- Else-if the xend-config.sxp has a password specified use that
- Else run with no authentication
Example configuration:
- To set an explicit guest password:
vfb = [ "type=vnc,vncunused=1,vnclisten=0.0.0.0,vncpasswd=123456"]
- To disable authentication, overriding any XenD configured
default password
vfb = [ "type=vnc,vncunused=1,vnclisten=0.0.0.0,vncpasswd="]
- To run with default XenD configured password (if any)
vfb = [ "type=vnc,vncunused=1,vnclisten=0.0.0.0"]
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>