issues
search
Martins3
/
loongson-dune
:zap: Process virtualization based on KVM. More useable, stable and practical than Stanford Dune.
20
stars
3
forks
source link
kernel mode : mmu
#7
Open
Martins3
opened
3 years ago
Martins3
commented
3 years ago
Something related to emualted:
[x]
mapped
and
unmapped
[x] kvm_mips_gpa_pte_to_gva_unmapped, kvm_mips_gpa_pte_to_gva_mapped
[x] kvm_mips_handle_kseg0_tlb_fault <= kvm_trap_emul_gva_fault <= kvm_get_inst <= used by emulate.c
[x] kseg0
kvm_mips_handle_kseg0_tlb_fault
[x] emulated
x: kvm_trap_emul_gva_fault
x: kvm_get_inst
kvm_mips_handle_mapped_seg_tlb_fault : caller is emulate
Boring stuff
[x] move mmu notifier to mmu.c
[ ] kvm_pgd_alloc
[ ] examine transparent hugepage
[ ] dune_arch_vcpu_put : some effort to complete the code
[ ] kvm_mips_handle_commpage_tlb_fault : now that commpage is used for tlb, should dune remove it ?
[ ] remove kvm_host.c
[ ] remove dirty bit tracking in mmu.c
vcpu,
ept
and guest page table
A sthread fork will create two guest page table
A Linux fork with VM clone will create two
A dune_enter doesn't create user space percpu
dune_enter create a new vcpu and ept
kvm_memory_slot
[x] maybe we should take advantage of it
[x] move memory_slot related code into one place
Martins3
commented
3 years ago
[ ] can vz_vm substitude kvm in mmu.c ?
[ ] it's kvm_flush_remote_tlbs necessary ?
[x] vz_vm::tlbs_dirty : why we need it ? (No, only x86 use it, in the paging_tmpl.h)
[x] There is no doubt local TLB flush is obligatory
[x] flush remote is necessary if ept is shared by multiple vcpu
[ ] Should dune support remote tlb flush
[ ] What's the difference between two separate ept and one sharing ept?
ept mapping is the same
[x] does dune create two ept with fork ? (yes, but shouldn't) vmx_launch -> vmx_create_vcpu -> vmx_init_ept will create new cpu.
[x] should dune create a new vcpu for every process?
it's possible, but need some efforts like
sthread
, and set a limitation on two processes where they can't run simultaneously
Something related to emualted:
mapped
andunmapped
Boring stuff
vcpu,
ept
and guest page tablekvm_memory_slot