remarkable-linux/arch/x86/kvm
Anthony Liguori 35149e2129 KVM: MMU: Don't assume struct page for x86
This patch introduces a gfn_to_pfn() function and corresponding functions like
kvm_release_pfn_dirty().  Using these new functions, we can modify the x86
MMU to no longer assume that it can always get a struct page for any given gfn.

We don't want to eliminate gfn_to_page() entirely because a number of places
assume they can do gfn_to_page() and then kmap() the results.  When we support
IO memory, gfn_to_page() will fail for IO pages although gfn_to_pfn() will
succeed.

This does not implement support for avoiding reference counting for reserved
RAM or for IO memory.  However, it should make those things pretty straight
forward.

Since we're only introducing new common symbols, I don't think it will break
the non-x86 architectures but I haven't tested those.  I've tested Intel,
AMD, NPT, and hugetlbfs with Windows and Linux guests.

[avi: fix overflow when shifting left pfns by adding casts]

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
2008-04-27 12:01:15 +03:00
..
i8254.c KVM: Add reset support for in kernel PIT 2008-04-27 12:00:23 +03:00
i8254.h KVM: Add reset support for in kernel PIT 2008-04-27 12:00:23 +03:00
i8259.c
irq.c KVM: In kernel PIT model 2008-04-27 12:00:21 +03:00
irq.h KVM: Move apic timer migration away from critical section 2008-01-30 18:01:22 +02:00
Kconfig KVM: no longer EXPERIMENTAL 2008-04-27 12:00:36 +03:00
kvm_svm.h KVM: SVM: allocate the MSR permission map per VCPU 2008-04-27 11:53:21 +03:00
lapic.c KVM: replace remaining __FUNCTION__ occurances 2008-04-27 11:53:27 +03:00
lapic.h KVM: Accelerated apic support 2008-01-30 18:01:20 +02:00
Makefile KVM: In kernel PIT model 2008-04-27 12:00:21 +03:00
mmu.c KVM: MMU: Don't assume struct page for x86 2008-04-27 12:01:15 +03:00
mmu.h KVM: MMU: add TDP support to the KVM MMU 2008-04-27 11:53:20 +03:00
paging_tmpl.h KVM: MMU: Don't assume struct page for x86 2008-04-27 12:01:15 +03:00
svm.c KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
svm.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: MMU: unify slots_lock usage 2008-04-27 12:00:52 +03:00
vmx.h KVM: VMX: fix typo in VMX header define 2008-04-27 11:53:21 +03:00
x86.c KVM: Free apic access page on vm destruction 2008-04-27 12:00:54 +03:00
x86_emulate.c KVM: x86 emulator: fix sparse warnings in x86_emulate.c 2008-04-27 11:53:24 +03:00