An error occurred fetching the project authors.
- 24 Jun, 2008 3 commits
-
-
Gerd Hoffmann authored
This patch updates the kvm host code to use the pvclock structs. It also makes the paravirt clock compatible with Xen. Signed-off-by:
Gerd Hoffmann <kraxel@redhat.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Marcelo Tosatti authored
If a timer fires after kvm_inject_pending_timer_irqs() but before local_irq_disable() the code will enter guest mode and only inject such timer interrupt the next time an unrelated event causes an exit. It would be simpler if the timer->pending irq conversion could be done with IRQ's disabled, so that the above problem cannot happen. For now introduce a new vcpu requests bit to cancel guest entry. Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Marcelo Tosatti authored
A guest vcpu instance can be scheduled to a different physical CPU between the test for KVM_REQ_MIGRATE_TIMER and local_irq_disable(). If that happens, the timer will only be migrated to the current pCPU on the next exit, meaning that guest LAPIC timer event can be delayed until a host interrupt is triggered. Fix it by cancelling guest entry if any vcpu request is pending. This has the side effect of nicely consolidating vcpu->requests checks. Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
- 06 Jun, 2008 1 commit
-
-
Marcelo Tosatti authored
Migrate the PIT timer to the physical CPU which vcpu0 is scheduled on, similarly to what is done for the LAPIC timers, otherwise PIT interrupts will be delayed until an unrelated event causes an exit. Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
- 04 May, 2008 5 commits
-
-
Andrea Arcangeli authored
This make sure not to schedule in atomic during fx_init. I also changed the name of fpu_init to fx_finit to avoid duplicating the name with fpu_init that is already used in the kernel, this makes grep simpler if nothing else. Signed-off-by:
Andrea Arcangeli <andrea@qumranet.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Jan Kiszka authored
Clear pending exceptions when setting new register values. This avoids spurious exceptions after restoring a vcpu state or after reset-on-triple-fault. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Izik Eidus authored
The busy bit is bit 1 of the type field, not bit 8. Signed-off-by:
Izik Eidus <izike@qumranet.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Sheng Yang authored
[aliguory: plug leak] Signed-off-by:
Sheng Yang <sheng.yang@intel.com> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Sheng Yang authored
Enable kvm_set_spte() to generate EPT entries. Signed-off-by:
Sheng Yang <sheng.yang@intel.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
- 27 Apr, 2008 28 commits
-
-
Marcelo Tosatti authored
There is a window open between testing of pending IRQ's and assignment of guest_mode in __vcpu_run. Injection of IRQ's can race with __vcpu_run as follows: CPU0 CPU1 kvm_x86_ops->run() vcpu->guest_mode = 0 SET_IRQ_LINE ioctl .. kvm_x86_ops->inject_pending_irq kvm_cpu_has_interrupt() apic_test_and_set_irr() kvm_vcpu_kick if (vcpu->guest_mode) send_ipi() vcpu->guest_mode = 1 So move guest_mode=1 assignment before ->inject_pending_irq, and make sure that it won't reorder after it. Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Marcelo Tosatti authored
So userspace can save/restore the mpstate during migration. [avi: export the #define constants describing the value] [christian: add s390 stubs] [avi: ditto for ia64] Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by:
Carsten Otte <cotte@de.ibm.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Avi Kivity authored
We wish to export it to userspace, so move it into the kvm namespace. Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Feng (Eric) Liu authored
Trace markers allow userspace to trace execution of a virtual machine in order to monitor its performance. Signed-off-by:
Feng (Eric) Liu <eric.e.liu@intel.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Avi Kivity authored
Noticed by Marcelo Tosatti. Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Marcelo Tosatti authored
Unify slots_lock acquision around vcpu_run(). This is simpler and less error-prone. Also fix some callsites that were not grabbing the lock properly. [avi: drop slots_lock while in guest mode to avoid holding the lock for indefinite periods] Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Izik Eidus authored
This emulates the x86 hardware task switch mechanism in software, as it is unsupported by either vmx or svm. It allows operating systems which use it, like freedos, to run as kvm guests. Signed-off-by:
Izik Eidus <izike@qumranet.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Marcelo Tosatti authored
Hypercall based pte updates are faster than faults, and also allow use of the lazy MMU mode to batch operations. Don't report the feature if two dimensional paging is enabled. [avi: - one mmu_op hypercall instead of one per op - allow 64-bit gpa on hypercall - don't pass host errors (-ENOMEM) to guest] [akpm: warning fix on i386] Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Marcelo Tosatti authored
Add basic KVM paravirt support. Avoid vm-exits on IO delays. Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Sheng Yang authored
Signed-off-by:
Sheng Yang <sheng.yang@intel.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Sheng Yang authored
The patch moves the PIT model from userspace to kernel, and increases the timer accuracy greatly. [marcelo: make last_injected_time per-guest] Signed-off-by:
Sheng Yang <sheng.yang@intel.com> Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Tested-and-Acked-by:
Alex Davis <alex14641@yahoo.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Harvey Harrison authored
__FUNCTION__ is gcc-specific, use __func__ Signed-off-by:
Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Joerg Roedel authored
In the current inject_page_fault path KVM only checks if there is another PF pending and injects a DF then. But it has to check for a pending DF too to detect a shutdown condition in the VCPU. If this is not detected the VCPU goes to a PF -> DF -> PF loop when it should triple fault. This patch detects this condition and handles it with an KVM_SHUTDOWN exit to userspace. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Avi Kivity authored
Names like 'set_cr3()' look dangerously close to affecting the host. Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Marcelo Tosatti authored
Create large pages mappings if the guest PTE's are marked as such and the underlying memory is hugetlbfs backed. If the largepage contains write-protected pages, a large pte is not used. Gives a consistent 2% improvement for data copies on ram mounted filesystem, without NPT/EPT. Anthony measures a 4% improvement on 4-way kernbench, with NPT. Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Marcelo Tosatti authored
Mark zapped root pagetables as invalid and ignore such pages during lookup. This is a problem with the cr3-target feature, where a zapped root table fools the faulting code into creating a read-only mapping. The result is a lockup if the instruction can't be emulated. Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Cc: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Alexander Graf authored
Darwin relies on this and ceases to work without. Signed-off-by:
Alexander Graf <alex@csgraf.de> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Harvey Harrison authored
In two case statements, use the ever popular 'i' instead of index: arch/x86/kvm/x86.c:1063:7: warning: symbol 'index' shadows an earlier one arch/x86/kvm/x86.c:1000:9: originally declared here arch/x86/kvm/x86.c:1079:7: warning: symbol 'index' shadows an earlier one arch/x86/kvm/x86.c:1000:9: originally declared here Make it static. arch/x86/kvm/x86.c:1945:24: warning: symbol 'emulate_ops' was not declared. Should it be static? Drop the return statements. arch/x86/kvm/x86.c:2878:2: warning: returning void-valued expression arch/x86/kvm/x86.c:2944:2: warning: returning void-valued expression Signed-off-by:
Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Amit Shah authored
Signed-off-by:
Amit Shah <amit.shah@qumranet.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Avi Kivity authored
The x86 desc_struct unification allows us to remove segment_descriptor.h. Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Avi Kivity authored
Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Glauber de Oliveira Costa authored
This is the host part of kvm clocksource implementation. As it does not include clockevents, it is a fairly simple implementation. We only have to register a per-vcpu area, and start writing to it periodically. The area is binary compatible with xen, as we use the same shadow_info structure. [marcelo: fix bad_page on MSR_KVM_SYSTEM_TIME] [avi: save full value of the msr, even if enable bit is clear] [avi: clear previous value of time_page] Signed-off-by:
Glauber de Oliveira Costa <gcosta@redhat.com> Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Joerg Roedel authored
The load_pdptrs() function is required in the SVM module for NPT support. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Joerg Roedel authored
This patch makes the EFER register accessible on a 32bit KVM host. This is necessary to boot 32 bit PAE guests under SVM. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Joerg Roedel authored
This patch aligns the bits the guest can set in the EFER register with the features in the host processor. Currently it lets EFER.NX disabled if the processor does not support it and enables EFER.LME and EFER.LMA only for KVM on 64 bit hosts. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Joerg Roedel authored
This patch give the SVM and VMX implementations the ability to add some bits the guest can set in its EFER register. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
- 04 Mar, 2008 1 commit
-
-
Izik Eidus authored
This patch replaces the mmap_sem lock for the memory slots with a new kvm private lock, it is needed beacuse untill now there were cases where kvm accesses user memory while holding the mmap semaphore. Signed-off-by:
Izik Eidus <izike@qumranet.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
- 03 Mar, 2008 2 commits
-
-
Joerg Roedel authored
Injecting an GP when accessing this MSR lets Windows crash when running some stress test tools in KVM. So this patch emulates access to this MSR. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com> Signed-off-by:
Markus Rechberger <markus.rechberger@amd.com> Signed-off-by:
Avi Kivity <avi@qumranet.com>
-
Avi Kivity authored
One of the use cases for the supported cpuid list is to create a "greatest common denominator" of cpu capabilities in a server farm. As such, it is useful to be able to get the list without creating a virtual machine first. Since the code does not depend on the vm in any way, all that is needed is to move it to the device ioctl handler. The capability identifier is also changed so that binaries made against -rc1 will fail gracefully. Signed-off-by:
Avi Kivity <avi@qumranet.com>
-