• Paolo Bonzini's avatar
    Merge tag 'kvm_mips_4.11_1' of... · d9c0e59f
    Paolo Bonzini authored
    Merge tag 'kvm_mips_4.11_1' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/kvm-mips into HEAD
    
    KVM: MIPS: GVA/GPA page tables, dirty logging, SYNC_MMU etc
    
    Numerous MIPS KVM fixes, improvements, and features for 4.11, many of
    which continue to pave the way for VZ support, the most interesting of
    which are:
    
     - Add GVA->HPA page tables for T&E, to cache GVA mappings.
     - Generate fast-path TLB refill exception handler which loads host TLB
       entries from GVA page table, avoiding repeated guest memory
       translation and guest TLB lookups.
     - Use uaccess macros when T&E needs to access guest memory, which with
       GVA page tables and the Linux TLB refill handler improves robustness
       against TLB faults and fixes EVA hosts.
     - Use BadInstr/BadInstrP registers when available to obtain instruction
       encodings after a synchronous trap.
     - Add GPA->HPA page tables to replace the inflexible linear array,
       allowing for multiple sparsely arranged memory regions.
     - Properly implement dirty page logging.
     - Add KVM_CAP_SYNC_MMU support so that changes in GPA mappings become
       effective in guests even if they are already running, allowing for
       copy-on-write, KSM, idle page tracking, swapping, and guest memory
       ballooning.
     - Add KVM_CAP_READONLY_MEM support, so writes to specified memory
       regions are treated as MMIO.
     - Implement proper CP0_EBase support in T&E.
     - Expose a few more missing CP0 registers to userland.
     - Add KVM_CAP_NR_VCPUS and KVM_CAP_MAX_VCPUS support, and allow up to 8
       VCPUs to be created in a VM.
     - Various cleanups and dropping of dead and duplicated code.
    d9c0e59f
api.txt 134 KB