This patch changes the PIC interrupts delivery. Now it is only deliverd
to vcpu0 when either condition is met (on vcpu0):
1. local APIC is hardware disabled
2. LVT0 is unmasked and configured to delivery mode ExtInt
It fixes the 2x faster wall clock on x86_64 and SMP i386 Linux guests
He, Qing wrote:
This patch changes the PIC interrupts delivery. Now it is only deliverd
to vcpu0 when either condition is met (on vcpu0):
1. local APIC is hardware disabled
2. LVT0 is unmasked and configured to delivery mode ExtInt
It fixes the 2x faster wall clock on x86_64 and SMP i386
From: Qing He [EMAIL PROTECTED]
This patch adds a `vcpu_id' field in `struct vcpu', so we can
differentiate BSP and APs without pointer comparison or arithmetic.
Signed-off-by: Qing He [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h |1 +
From: Nguyen Anh Quynh [EMAIL PROTECTED]
*nopage() in kvm_main.c should only store the type of mmap() fault if
the pointers are not NULL. This patch fixes the problem.
Signed-off-by: Nguyen Anh Quynh [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c |8
Note that as the size of struct kvm_run is not part of the ABI, we can add
things at the end.
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
include/linux/kvm.h |2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/include/linux/kvm.h b/include/linux/kvm.h
index
From: Eddie Dong [EMAIL PROTECTED]
Add string pio write support to support some version of Windows.
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c | 48 +---
1 files
The following represents the patch queue for the 2.6.24, posted here for
review. Most of the patches have already been on kvm-devel (and all of
them on kvm-commits), but some folding has occured to merge fixes
and to make the whole series bisect-friendly.
A few patches are likely to change in
From: Rusty Russell [EMAIL PROTECTED]
Don't pre-declare hardware_disable: shuffle the reboot hook down.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c | 40 +++-
1 files changed, 19
From: Rusty Russell [EMAIL PROTECTED]
I have shied away from touching x86_emulate.c (it could definitely use
some love, but it is forked from the Xen code, and it would be more
productive to cross-merge fixes).
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL
From: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.h |2 --
1 files changed, 0 insertions(+), 2 deletions(-)
diff --git a/drivers/kvm/x86_emulate.h b/drivers/kvm/x86_emulate.h
index
From: Jeff Dike [EMAIL PROTECTED]
Signed-off-by: Jeff Dike [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c |2 +-
drivers/kvm/svm.c |1 -
drivers/kvm/vmx.c |1 -
3 files changed, 1 insertions(+), 3 deletions(-)
diff --git
From: Rusty Russell [EMAIL PROTECTED]
Creating one's own BITMAP macro seems suboptimal: if we use manual
arithmetic in the one place exposed to userspace, we can use standard
macros elsewhere.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
From: Rusty Russell [EMAIL PROTECTED]
The kernel now has asm/cpu-features.h: use those macros instead of inventing
our own.
Also spell out definition of CR3_RESEVED_BITS, fix spelling and
tighten it for the non-PAE case.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity
From: Rusty Russell [EMAIL PROTECTED]
KVM interface is no longer experimental.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
include/linux/kvm.h |3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/include/linux/kvm.h
The writeback fixes (02c03a326a5df825cc01de426f72e160db2b9538) broke
cmov emulation. Fix.
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 22 +++---
1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/drivers/kvm/x86_emulate.c
From: Rusty Russell [EMAIL PROTECTED]
Speling error in comment.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/kvm/x86_emulate.c
From: Shaohua Li [EMAIL PROTECTED]
vmx_cpu_run doesn't handle error correctly and kvm_mmu_reload might
sleep with mutex changes, so I move it above.
Signed-off-by: Shaohua Li [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/vmx.c |8
1 files changed, 4
From: Rusty Russell [EMAIL PROTECTED]
Intel manual (and KVM definition) say the TPR is 4 bits wide. Also fix
CR8_RESEVED_BITS typo.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Acked-by: H. Peter Anvin [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c
From: Rusty Russell [EMAIL PROTECTED]
On this machine (Intel), writing to the CR4 bits 0x0800 and
0x1000 cause a GPF. The Intel manual is a little unclear, but
AFIACT they're reserved, too.
Also fix spelling of CR4_RESEVED_BITS.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
From: Rusty Russell [EMAIL PROTECTED]
Changes some svm.c internal function names:
1) io_adress - io_address (de-germanify the spelling)
2) kvm_reput_irq - reput_irq (it's not a generic kvm function)
3) kvm_do_inject_irq - (it's not a generic kvm function)
Signed-off-by: Rusty Russell [EMAIL
From: Aurelien Jarno [EMAIL PROTECTED]
The writeback fixes (02c03a326a5df825cc01de426f72e160db2b9538) let
some dead code in the cmpxchg instruction emulation. Remove it.
Signed-off-by: Aurelien Jarno [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c |
From: Rusty Russell [EMAIL PROTECTED]
Avi wants the allocations of vcpus centralized again. The easiest way
is to add a size arg to kvm_init_arch, and expose the thus-prepared
cache to the modules.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
From: Yang, Sheng [EMAIL PROTECTED]
Put cpu feature detecting part in hardware_setup, and stored the vmcs
condition in global variable for further check.
[glommer: fix for some i386-only machines not supporting CR8 load/store
exiting]
Signed-off-by: Sheng Yang [EMAIL PROTECTED]
Signed-off-by:
From: Rusty Russell [EMAIL PROTECTED]
load_pdptrs can be handed an invalid cr3, and it should not oops.
This can happen because we injected #gp in set_cr3() after we set
vcpu-cr3 to the invalid value, or from kvm_vcpu_ioctl_set_sregs(), or
memory configuration changes after the guest did
From: Jeff Dike [EMAIL PROTECTED]
Add the hypercall number to kvm_run and initialize it. This changes the ABI,
but as this particular ABI was unusable before this no users are affected.
Signed-off-by: Jeff Dike [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
From: Rusty Russell [EMAIL PROTECTED]
Don't fall through and turn on PAE in this case.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c |1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git
From: Rusty Russell [EMAIL PROTECTED]
Now we use a kmem cache for allocating vcpus, we can get the 16-byte
alignment required by fxsave fxrstor instructions, and avoid
manually aligning the buffer.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
From: Rusty Russell [EMAIL PROTECTED]
container_of is wonderful, but not casting at all is better. This
patch changes vmx.c's internal functions to pass struct vcpu_vmx
instead of struct kvm_vcpu and using container_of.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity
From: Shaohua Li [EMAIL PROTECTED]
gfn_to_page might sleep with swap support. Move it out of the kmap calls.
Signed-off-by: Shaohua Li [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h |2 +-
drivers/kvm/kvm_main.c|7 ++--
drivers/kvm/mmu.c
From: Yang, Sheng [EMAIL PROTECTED]
All the physical CPUs on the board should support the same VMX feature
set. Add check_processor_compatibility to kvm_arch_ops for the consistency
check.
Signed-off-by: Sheng Yang [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
Right now, the bug is harmless as we never emulate one-byte 0xb6 or 0xb7.
But things may change.
Noted by the mysterious Gabriel C.
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git
From: Rusty Russell [EMAIL PROTECTED]
set_msr_interception() is used by svm to set up which MSRs should be
intercepted. It can only fail if someone has changed the code to try
to intercept an MSR without updating the array of ranges.
The return value is ignored anyway: it should just BUG() if
From: Rusty Russell [EMAIL PROTECTED]
For some reason, mark_page_dirty open-codes __gfn_to_memslot().
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c | 24 +++-
1 files changed, 7 insertions(+), 17
From: Rusty Russell [EMAIL PROTECTED]
We use kfree in svm.c and vmx.c, and this works, but it could break at
any time. kfree() is supposed to match up with kmalloc().
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/svm.c |4 ++--
From: Rusty Russell [EMAIL PROTECTED]
Now that kvm generally runs with preemption enabled, we need to protect
the fpu intialization sequence.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c |3 +++
1 files changed, 3
From: Li, Xin B [EMAIL PROTECTED]
Remove a duplicated ia32e mode VM Entry control definition and use the
proper one.
Signed-off-by: Xin Li [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/vmx.c |8
drivers/kvm/vmx.h |3 ---
2 files changed, 4
Current kvm disables preemption while the new virtualization registers are
in use. This of course is not very good for latency sensitive workloads (one
use of virtualization is to offload user interface and other latency
insensitive stuff to a container, so that it is easier to analyze the
From: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 16 ++--
1 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/drivers/kvm/x86_emulate.c
From: Yang, Sheng [EMAIL PROTECTED]
This allows running 64-bit Windows.
Signed-off-by: Sheng Yang [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/vmx.c |3 ++-
include/linux/kvm.h |1 +
2 files changed, 3 insertions(+), 1 deletions(-)
diff --git
From: Rusty Russell [EMAIL PROTECTED]
We shouldn't define stat_set on the debug attributes, since that will
cause silent failure on writing: without a set argument, userspace
will get -EACCESS.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
From: Eddie Dong [EMAIL PROTECTED]
This patch is to wrap APIC base register and CR8 operation which can
provide a unique API for user level irqchip and kernel irqchip.
This is a preparation of merging lapic/ioapic patch.
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Avi
From: Laurent Vivier [EMAIL PROTECTED]
Split kvm_setup_pio() into two functions, one to setup in/out pio
(kvm_emulate_pio()) and one to setup ins/outs pio (kvm_emulate_pio_string()).
Signed-off-by: Laurent Vivier [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
From: Rusty Russell [EMAIL PROTECTED]
Devices don't need open or release functions.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c | 12
1 files changed, 0 insertions(+), 12 deletions(-)
diff --git
From: Laurent Vivier [EMAIL PROTECTED]
Both vmx and svm decode the I/O instructions, and both botch the job,
requiring the instruction prefixes to be fetched in order to completely
decode the instruction.
So, if we see a string I/O instruction, use the x86 emulator to decode it,
as it already
From: Rusty Russell [EMAIL PROTECTED]
There are several places where hardcoded numbers are used in place of
the easily-available constant, which is poor form.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c |2 +-
From: Izik Eidus [EMAIL PROTECTED]
Signed-off-by: Izik Eidus [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/vmx.c |2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index cd999c0..b400668 100644
---
From: Laurent Vivier [EMAIL PROTECTED]
Line 1809 of kvm_main.c is useless, value is overwritten in line 1815:
1809 now = min(count, PAGE_SIZE / size);
1810
1811 if (!down)
1812 in_page = PAGE_SIZE - offset_in_page(address);
1813 else
1814
From: Eddie Dong [EMAIL PROTECTED]
pio operation and IRQ_LINE kvm_vm_ioctl is not kvm-lock
protected. Add lock to same with IOAPIC MMIO operations.
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c |6 ++
1 files
From: Nitin A Kamble [EMAIL PROTECTED]
Implement emulation of instruction
and al imm8 (opcode 0x24)
and ax/eax imm16/imm32 (opcode 0x25)
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 21 +++--
From: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 16 +++-
1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/drivers/kvm/x86_emulate.c
Pointed out by Rusty Russell.
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c |1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c
index cf895aa..7439b34 100644
--- a/drivers/kvm/x86_emulate.c
+++
From: Eddie Dong [EMAIL PROTECTED]
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/Makefile |2 +-
drivers/kvm/i8259.c| 442
drivers/kvm/irq.c | 61 +++
From: Rusty Russell [EMAIL PROTECTED]
All guest-invokable printks should be ratelimited to prevent malicious
guests from flooding logs. This is a start.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h |8
From: He, Qing [EMAIL PROTECTED]
Signed-off-by: Qing He [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h |1 +
drivers/kvm/lapic.c | 33 -
2 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/drivers/kvm/kvm.h
From: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c |3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/kvm/x86_emulate.c b/drivers/kvm/x86_emulate.c
index
From: Eddie Dong [EMAIL PROTECTED]
This reduces overhead by accessing cachelines from the wrong node, as well
as simplifying locking.
[Qing: fix for inactive or expired one-shot timer]
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Qing He [EMAIL PROTECTED]
Signed-off-by:
From: Qing He [EMAIL PROTECTED]
This patch changes the PIC interrupts delivery. Now it is only delivered
to vcpu0 when either condition is met (on vcpu0):
1. local APIC is hardware disabled
2. LVT0 is unmasked and configured to delivery mode ExtInt
It fixes the 2x faster wall clock on x86_64
From: Eddie Dong [EMAIL PROTECTED]
Add in kernel irqchip save/restore support for pending vectors.
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Qing He [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h |2 ++
From: Eddie Dong [EMAIL PROTECTED]
APIC timer IRQ is set every time when a certain period
expires at host time, but the guest may be descheduled
at that time and thus the irq be overwritten by later fire.
This patch keep track of firing irq numbers and decrease
only when the IRQ is injected to
From: Laurent Vivier [EMAIL PROTECTED]
vmx_load_host_state() bundles fs, gs, ldt, and tss reloading into
one in the hope that it is infrequent. With smp guests, fs reloading is
frequent due to fs being used by threads.
Unbundle the reloads so reduce expensive gs reloads.
Signed-off-by: Laurent
From: Rusty Russell [EMAIL PROTECTED]
SVM gets the DB and L bits for the cs by decoding the segment. This
is in fact the completely generic code, so hoist it for kvm-lite to use.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h
From: He, Qing [EMAIL PROTECTED]
This patch adds two new ioctls to dump and write kernel irqchips for
save/restore and live migration. PIC s/r and l/m is implemented in this
patch.
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Qing He [EMAIL PROTECTED]
Signed-off-by: Avi
From: Rusty Russell [EMAIL PROTECTED]
invlpg shouldn't fetch the src address, since it may not be valid,
however SVM's solution which neuters emulation of all group 7
instruction is horrible and breaks kvm-lite. The simplest fix is to
put a special check in for invlpg.
Signed-off-by: Rusty
From: Amit Shah [EMAIL PROTECTED]
This was missed when moving stuff around in fbc4f2e
Fixes Solaris guests and bug #1773613
Signed-off-by: Amit Shah [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c |1 +
1 files changed, 1 insertions(+), 0
From: He, Qing [EMAIL PROTECTED]
Signed-off-by: Qing He [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c |3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index f4cbd4f..a25dfc9
From: Rusty Russell [EMAIL PROTECTED]
We don't update the vcpu control registers in various places. We
should do so.
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm_main.c |8
1 files changed, 4 insertions(+), 4
From: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h |1 -
drivers/kvm/svm.c |6 --
2 files changed, 0 insertions(+), 7 deletions(-)
diff --git a/drivers/kvm/kvm.h b/drivers/kvm/kvm.h
From: Gregory Haskins [EMAIL PROTECTED]
struct kvm_vcpu has vmx-specific members; remove them to a private structure.
Signed-off-by: Gregory Haskins [EMAIL PROTECTED]
Signed-off-by: Rusty Russell [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h | 31
From: Eddie Dong [EMAIL PROTECTED]
This patch adds a new vcpu-based IOCTL to save and restore the local
apic registers for a single vcpu. The kernel only copies the apic page as
a whole, extraction of registers is left to userspace side. On restore, the
APIC timer is restarted from the initial
From: Yang, Sheng [EMAIL PROTECTED]
This patch enables TPR shadow of VMX on CR8 access. 64bit Windows using
CR8 access TPR frequently. The TPR shadow can improve the performance of
access TPR by not causing vmexit.
Signed-off-by: Sheng Yang [EMAIL PROTECTED]
Signed-off-by: Yaozu (Eddie) Dong
From: He, Qing [EMAIL PROTECTED]
This patch adds support for in-kernel ioapic save and restore (to
and from userspace). It uses the same get/set_irqchip ioctl as
in-kernel PIC.
Signed-off-by: Qing He [EMAIL PROTECTED]
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Avi Kivity
From: Christian Ehrhardt [EMAIL PROTECTED]
This patch just renames the current (misnamed) _arch namings to _x86 to
ensure better readability when a real arch layer takes place.
Signed-off-by: Christian Ehrhardt [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h
From: Yang, Sheng [EMAIL PROTECTED]
This patch mainly imports some constants and rename two exist constants
of vmcs according to IA32 SDM.
It also adds two constants to indicate Lock bit and Enable bit in
MSR_IA32_FEATURE_CONTROL, and replace the hardcode _5_ with these two
bits.
Signed-off-by:
From: He, Qing [EMAIL PROTECTED]
According to Intel Software Developer's Manual, Vol. 3B, Appendix H.4.2,
exit qualification should be of natural width. However, current code
uses u64 as the data type for this register, which occasionally
introduces invalid value to VMExit handling logics. This
From: Nitin A Kamble [EMAIL PROTECTED]
Implement emulation of instruction:
popf
opcode: 0x9d
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c |5 -
1 files changed, 4 insertions(+), 1 deletions(-)
diff
From: Nitin A Kamble [EMAIL PROTECTED]
Implement the instruction
push imm8
opcode: 0x6a
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 17 ++---
1 files changed, 14 insertions(+), 3
From: Nitin A Kamble [EMAIL PROTECTED]
Some operand fetches are less than the machine word size and can result in
stale bits if used together with operands of different sizes.
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
From: Eddie Dong [EMAIL PROTECTED]
Because lightweight exits (exits which don't involve userspace) are many
times faster than heavyweight exits, it makes sense to emulate high usage
devices in the kernel. The local APIC is one such device, especially for
Windows and for SMP, so we add an APIC
From: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 99 ++---
1 files changed, 49 insertions(+), 50 deletions(-)
diff --git
Report failed opcodes from all locations.
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h |1 +
drivers/kvm/kvm_main.c | 16
drivers/kvm/svm.c |2 +-
drivers/kvm/vmx.c |2 +-
4 files changed, 11 insertions(+), 10 deletions(-)
diff
From: Eddie Dong [EMAIL PROTECTED]
This allows in-kernel host-side device drivers to raise guest interrupts
without going to userspace.
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/Makefile |2 +-
drivers/kvm/ioapic.c |
From: Eddie Dong [EMAIL PROTECTED]
By sleeping in the kernel when hlt is executed, we simplify the in-kernel
guest interrupt path considerably.
Signed-off-by: Gregory Haskins [EMAIL PROTECTED]
Signed-off-by: Yaozu (Eddie) Dong [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
From: Nitin A Kamble [EMAIL PROTECTED]
Implement emulation of instruction
lea r16/r32, m
opcode: 0x8d:
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c |5 -
1 files changed, 4 insertions(+), 1
From: Nitin A Kamble [EMAIL PROTECTED]
Implement emulation of instruction
pushf
opcode: 0x9c
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 11 +--
1 files changed, 9 insertions(+), 2
From: He, Qing [EMAIL PROTECTED]
This patch enables INIT/SIPI handling using in-kernel APIC by
introducing a -mp_state field to emulate the SMP state transition.
[avi: remove smp_processor_id() warning]
Signed-off-by: Qing He [EMAIL PROTECTED]
Signed-off-by: Xin Li [EMAIL PROTECTED]
This will help moving the main loop to subarch independent code.
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/vmx.c | 19 ++-
1 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/drivers/kvm/vmx.c b/drivers/kvm/vmx.c
index 57a6055..713f78a 100644
---
This simplifies adding new code as well as reducing overall code size.
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/kvm.h |9 +++-
drivers/kvm/kvm_main.c | 124 +-
drivers/kvm/svm.c | 142
Before preempt notifiers, kvm needed to allocate memory with GFP_NOWAIT so
as not to have to enable preemption and take a heavyweight exit. On oom, we'd
fall back to a GFP_KERNEL allocation.
With preemption notifiers, we can do a GFP_KERNEL allocation, and perform
the heavyweight exit only if
From: Nitin A Kamble [EMAIL PROTECTED]
Implement emulation of instruction:
jump absolute r/m
opcode: 0xff /4
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c |6 ++
1 files changed, 6 insertions(+), 0
What guest drivers?
Cc: Jan Engelhardt [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
An August 18 patch from Jan Engelhardt (06bfb7e) added help text for the
virtualization menu.
Unfortunately the text is misleading, as guest drivers are usually
interpreted to
mean drivers
From: Nitin A Kamble [EMAIL PROTECTED]
Implement emulation of more jump conditional instructions
jcc shortrel
opcodes: 0x70 - 0x7f
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 15 +--
1 files
From: Nitin A Kamble [EMAIL PROTECTED]
Implement emulation of instruction:
jump conditional rel
opcodes: 0x0f 0x80 - 0x0f 0x8f
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 61
On Mon, Sep 17, 2007 at 10:30:43AM +0200, Avi Kivity wrote:
From: Nguyen Anh Quynh [EMAIL PROTECTED]
*nopage() in kvm_main.c should only store the type of mmap() fault if
the pointers are not NULL. This patch fixes the problem.
Care to convert it to -faul while you're at it?
Christoph Hellwig wrote:
On Mon, Sep 17, 2007 at 10:30:43AM +0200, Avi Kivity wrote:
From: Nguyen Anh Quynh [EMAIL PROTECTED]
*nopage() in kvm_main.c should only store the type of mmap() fault if
the pointers are not NULL. This patch fixes the problem.
Care to convert it to -faul
Avi Kivity wrote:
Christoph Hellwig wrote:
On Mon, Sep 17, 2007 at 10:30:43AM +0200, Avi Kivity wrote:
From: Nguyen Anh Quynh [EMAIL PROTECTED]
*nopage() in kvm_main.c should only store the type of mmap() fault if
the pointers are not NULL. This patch fixes the problem.
From: Nitin A Kamble [EMAIL PROTECTED]
Implement emulation of instruction
opcode: 0xe8
call (near)
Signed-off-by: Nitin A Kamble [EMAIL PROTECTED]
Signed-off-by: Avi Kivity [EMAIL PROTECTED]
---
drivers/kvm/x86_emulate.c | 22 +-
1 files changed, 21
On Monday 17 September 2007 19:18, Avi Kivity wrote:
Avi Kivity wrote:
Christoph Hellwig wrote:
On Mon, Sep 17, 2007 at 10:30:43AM +0200, Avi Kivity wrote:
From: Nguyen Anh Quynh [EMAIL PROTECTED]
*nopage() in kvm_main.c should only store the type of mmap() fault if
the pointers are
Sy m[b+oool F[D+E!G
Last 0.04
Ta.rg et 0.12
i've try kvm-40 it now on centos-5 with kernel-2.6.18-8.1.10.el5 x86_64
host (8gb ram and 4 core) and one centos-5 x86_64, centos-5 i386,
mandrake i586 guests. i try to give 4 cpu for the first 2 guest and 1
cpu for the last. after i start these 3 guests the host kernel crash all
the time after
Dor Laor wrote:
i've try kvm-40 it now on centos-5 with kernel-2.6.18-8.1.10.el5 x86_64
host (8gb ram and 4 core) and one centos-5 x86_64, centos-5 i386,
mandrake i586 guests. i try to give 4 cpu for the first 2 guest and 1
cpu for the last. after i start these 3 guests the host kernel crash
1 - 100 of 133 matches
Mail list logo