android_kernel_xiaomi_sm8350/arch/x86/kvm
Beth Kon e9f4275732 KVM: PIT support for HPET legacy mode
When kvm is in hpet_legacy_mode, the hpet is providing the timer
interrupt and the pit should not be. So in legacy mode, the pit timer
is destroyed, but the *state* of the pit is maintained. So if kvm or
the guest tries to modify the state of the pit, this modification is
accepted, *except* that the timer isn't actually started. When we exit
hpet_legacy_mode, the current state of the pit (which is up to date
since we've been accepting modifications) is used to restart the pit
timer.

The saved_mode code in kvm_pit_load_count temporarily changes mode to
0xff in order to destroy the timer, but then restores the actual
value, again maintaining "current" state of the pit for possible later
reenablement.

[avi: add some reserved storage in the ioctl; make SET_PIT2 IOW]
[marcelo: fix memory corruption due to reserved storage]

Signed-off-by: Beth Kon <eak@us.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2009-09-10 08:33:12 +03:00
..
i8254.c KVM: PIT support for HPET legacy mode 2009-09-10 08:33:12 +03:00
i8254.h KVM: PIT support for HPET legacy mode 2009-09-10 08:33:12 +03:00
i8259.c KVM: Add trace points in irqchip code 2009-09-10 08:33:11 +03:00
irq.c KVM: Remove irq_pending bitmap 2009-06-10 11:48:57 +03:00
irq.h
Kconfig KVM: remove old KVMTRACE support code 2009-09-10 08:33:03 +03:00
kvm_cache_regs.h KVM: Cache pdptrs 2009-09-10 08:32:46 +03:00
kvm_timer.h KVM: Use pointer to vcpu instead of vcpu_id in timer code. 2009-09-10 08:32:52 +03:00
lapic.c KVM: Add trace points in irqchip code 2009-09-10 08:33:11 +03:00
lapic.h KVM: x2apic interface to lapic 2009-09-10 08:33:08 +03:00
Makefile KVM: remove old KVMTRACE support code 2009-09-10 08:33:03 +03:00
mmu.c KVM: Trace shadow page lifecycle 2009-09-10 08:33:10 +03:00
mmu.h KVM: MMU: add kvm_mmu_get_spte_hierarchy helper 2009-09-10 08:32:56 +03:00
mmutrace.h KVM: Trace shadow page lifecycle 2009-09-10 08:33:10 +03:00
paging_tmpl.h KVM: MMU: Trace guest pagetable walker 2009-09-10 08:33:09 +03:00
svm.c KVM: ignore AMDs HWCR register access to set the FFDIS bit 2009-09-10 08:33:02 +03:00
timer.c KVM: Drop useless atomic test from timer function 2009-09-10 08:32:57 +03:00
trace.h KVM: Add trace points in irqchip code 2009-09-10 08:33:11 +03:00
tss.h
vmx.c KVM: convert custom marker based tracing to event traces 2009-09-10 08:32:59 +03:00
x86_emulate.c KVM: x86 emulator: Add sysexit emulation 2009-09-10 08:33:01 +03:00
x86.c KVM: PIT support for HPET legacy mode 2009-09-10 08:33:12 +03:00
x86.h KVM: Add Directed EOI support to APIC emulation 2009-09-10 08:33:07 +03:00