linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL] KVM: MIPS: GVA/GPA page tables, dirty logging, SYNC_MMU etc
@ 2017-02-03 16:06 James Hogan
  2017-02-03 16:06 ` James Hogan
  2017-02-07 17:18 ` Paolo Bonzini
  0 siblings, 2 replies; 3+ messages in thread
From: James Hogan @ 2017-02-03 16:06 UTC (permalink / raw)
  To: Paolo Bonzini, Radim Krčmář; +Cc: Ralf Baechle, linux-mips, kvm

[-- Attachment #1: Type: text/plain, Size: 7318 bytes --]

Hi Paolo, Radim,

The following changes since commit 0b4c208d443ba2af82b4c70f99ca8df31e9a0020:

  Revert "KVM: nested VMX: disable perf cpuid reporting" (2017-01-20 22:18:55 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/kvm-mips.git tags/kvm_mips_4.11_1

for you to fetch changes up to 12ed1faece3f141c2604b5b3a8377ba71d23ec9d:

  KVM: MIPS: Allow multiple VCPUs to be created (2017-02-03 15:21:34 +0000)

It is already included in linux-next (though I did tweak one of the
commit messages just now to remove a patch changelog I had accidentally
left in, with no changes to the code).

It includes a merge of my mips branch in the same repo, which is based
on v4.10-rc2 and contains the general MIPS changes in the GVA/GPA page
tables series, for Ralf to also merge if he likes.

Cheers
James

----------------------------------------------------------------
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.

----------------------------------------------------------------
James Hogan (63):
      MIPS: Move pgd_alloc() out of header
      MIPS: Export pgd/pmd symbols for KVM
      MIPS: uasm: Add include guards in asm/uasm.h
      MIPS: Export some tlbex internals for KVM to use
      MIPS: Add return errors to protected cache ops
      Merge MIPS prerequisites
      KVM: MIPS: Drop partial KVM_NMI implementation
      KVM: MIPS/MMU: Simplify ASID restoration
      KVM: MIPS: Convert get/set_regs -> vcpu_load/put
      KVM: MIPS/MMU: Move preempt/ASID handling to implementation
      KVM: MIPS: Remove duplicated ASIDs from vcpu
      KVM: MIPS: Add vcpu_run() & vcpu_reenter() callbacks
      KVM: MIPS/T&E: Restore host asid on return to host
      KVM: MIPS/T&E: active_mm = init_mm in guest context
      KVM: MIPS: Wire up vcpu uninit
      KVM: MIPS/T&E: Allocate GVA -> HPA page tables
      KVM: MIPS/T&E: Activate GVA page tables in guest context
      KVM: MIPS: Support NetLogic KScratch registers
      KVM: MIPS: Add fast path TLB refill handler
      KVM: MIPS/TLB: Fix off-by-one in TLB invalidate
      KVM: MIPS/TLB: Generalise host TLB invalidate to kernel ASID
      KVM: MIPS/MMU: Invalidate GVA PTs on ASID changes
      KVM: MIPS/MMU: Invalidate stale GVA PTEs on TLBW
      KVM: MIPS/MMU: Convert KSeg0 faults to page tables
      KVM: MIPS/MMU: Convert TLB mapped faults to page tables
      KVM: MIPS/MMU: Convert commpage fault handling to page tables
      KVM: MIPS: Drop vm_init() callback
      KVM: MIPS: Use uaccess to read/modify guest instructions
      KVM: MIPS/Emulate: Fix CACHE emulation for EVA hosts
      KVM: MIPS/TLB: Drop kvm_local_flush_tlb_all()
      KVM: MIPS/Emulate: Drop redundant TLB flushes on exceptions
      KVM: MIPS/MMU: Drop kvm_get_new_mmu_context()
      KVM: MIPS/T&E: Don't treat code fetch faults as MMIO
      KVM: MIPS: Improve kvm_get_inst() error return
      KVM: MIPS: Use CP0_BadInstr[P] for emulation
      KVM: MIPS/MMU: Convert guest physical map to page table
      KVM: MIPS: Update vcpu->mode and vcpu->cpu
      KVM: MIPS/T&E: Handle TLB invalidation requests
      KVM: MIPS/T&E: Reduce stale ASID checks
      KVM: MIPS/T&E: Add lockless GVA access helpers
      KVM: MIPS/T&E: Use lockless GVA helpers for dyntrans
      KVM: MIPS/MMU: Use lockless GVA helpers for get_inst()
      KVM: MIPS/Emulate: Use lockless GVA helpers for cache emulation
      KVM: MIPS: Implement kvm_arch_flush_shadow_all/memslot
      KVM: MIPS/T&E: Ignore user writes to CP0_Config7
      KVM: MIPS: Pass type of fault down to kvm_mips_map_page()
      KVM: MIPS/T&E: Abstract bad access handling
      KVM: MIPS/T&E: Treat unhandled guest KSeg0 as MMIO
      KVM: MIPS/T&E: Handle read only GPA in TLB mod
      KVM: MIPS/MMU: Add GPA PT mkclean helper
      KVM: MIPS/MMU: Use generic dirty log & protect helper
      KVM: MIPS: Clean & flush on dirty page logging enable
      KVM: MIPS/MMU: Handle dirty logging on GPA faults
      KVM: MIPS/MMU: Pass GPA PTE bits to KSeg0 GVA PTEs
      KVM: MIPS/MMU: Pass GPA PTE bits to mapped GVA PTEs
      KVM: MIPS/MMU: Implement KVM_CAP_SYNC_MMU
      KVM: MIPS: Claim KVM_CAP_READONLY_MEM support
      KVM: MIPS/T&E: Move CP0 register access into T&E
      KVM: MIPS/T&E: Implement CP0_EBase register
      KVM: MIPS/T&E: Default to reset vector
      KVM: MIPS/T&E: Expose CP0_EntryLo0/1 registers
      KVM: MIPS/T&E: Expose read-only CP0_IntCtl register
      KVM: MIPS: Allow multiple VCPUs to be created

Markus Elfring (1):
      MIPS: KVM: Return directly after a failed copy_from_user() in kvm_arch_vcpu_ioctl()

 Documentation/virtual/kvm/api.txt   |   10 +
 arch/mips/include/asm/kvm_host.h    |  183 +++--
 arch/mips/include/asm/mmu_context.h |    9 +-
 arch/mips/include/asm/pgalloc.h     |   16 +-
 arch/mips/include/asm/r4kcache.h    |   55 +-
 arch/mips/include/asm/tlbex.h       |   26 +
 arch/mips/include/asm/uasm.h        |    5 +
 arch/mips/include/uapi/asm/kvm.h    |    2 +
 arch/mips/kvm/Kconfig               |    2 +
 arch/mips/kvm/dyntrans.c            |   50 +-
 arch/mips/kvm/emulate.c             |  432 ++++++------
 arch/mips/kvm/entry.c               |  155 +++-
 arch/mips/kvm/interrupt.c           |    5 +-
 arch/mips/kvm/mips.c                |  496 ++++---------
 arch/mips/kvm/mmu.c                 | 1335 ++++++++++++++++++++++++++++-------
 arch/mips/kvm/tlb.c                 |  299 ++------
 arch/mips/kvm/trap_emul.c           |  740 ++++++++++++++++---
 arch/mips/mm/Makefile               |    2 +-
 arch/mips/mm/init.c                 |    1 +
 arch/mips/mm/pgtable-64.c           |    2 +
 arch/mips/mm/pgtable.c              |   25 +
 arch/mips/mm/tlbex.c                |   38 +-
 22 files changed, 2611 insertions(+), 1277 deletions(-)
 create mode 100644 arch/mips/include/asm/tlbex.h
 create mode 100644 arch/mips/mm/pgtable.c

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [GIT PULL] KVM: MIPS: GVA/GPA page tables, dirty logging, SYNC_MMU etc
  2017-02-03 16:06 [GIT PULL] KVM: MIPS: GVA/GPA page tables, dirty logging, SYNC_MMU etc James Hogan
@ 2017-02-03 16:06 ` James Hogan
  2017-02-07 17:18 ` Paolo Bonzini
  1 sibling, 0 replies; 3+ messages in thread
From: James Hogan @ 2017-02-03 16:06 UTC (permalink / raw)
  To: Paolo Bonzini, Radim Krčmář; +Cc: Ralf Baechle, linux-mips, kvm

[-- Attachment #1: Type: text/plain, Size: 7318 bytes --]

Hi Paolo, Radim,

The following changes since commit 0b4c208d443ba2af82b4c70f99ca8df31e9a0020:

  Revert "KVM: nested VMX: disable perf cpuid reporting" (2017-01-20 22:18:55 +0100)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/kvm-mips.git tags/kvm_mips_4.11_1

for you to fetch changes up to 12ed1faece3f141c2604b5b3a8377ba71d23ec9d:

  KVM: MIPS: Allow multiple VCPUs to be created (2017-02-03 15:21:34 +0000)

It is already included in linux-next (though I did tweak one of the
commit messages just now to remove a patch changelog I had accidentally
left in, with no changes to the code).

It includes a merge of my mips branch in the same repo, which is based
on v4.10-rc2 and contains the general MIPS changes in the GVA/GPA page
tables series, for Ralf to also merge if he likes.

Cheers
James

----------------------------------------------------------------
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.

----------------------------------------------------------------
James Hogan (63):
      MIPS: Move pgd_alloc() out of header
      MIPS: Export pgd/pmd symbols for KVM
      MIPS: uasm: Add include guards in asm/uasm.h
      MIPS: Export some tlbex internals for KVM to use
      MIPS: Add return errors to protected cache ops
      Merge MIPS prerequisites
      KVM: MIPS: Drop partial KVM_NMI implementation
      KVM: MIPS/MMU: Simplify ASID restoration
      KVM: MIPS: Convert get/set_regs -> vcpu_load/put
      KVM: MIPS/MMU: Move preempt/ASID handling to implementation
      KVM: MIPS: Remove duplicated ASIDs from vcpu
      KVM: MIPS: Add vcpu_run() & vcpu_reenter() callbacks
      KVM: MIPS/T&E: Restore host asid on return to host
      KVM: MIPS/T&E: active_mm = init_mm in guest context
      KVM: MIPS: Wire up vcpu uninit
      KVM: MIPS/T&E: Allocate GVA -> HPA page tables
      KVM: MIPS/T&E: Activate GVA page tables in guest context
      KVM: MIPS: Support NetLogic KScratch registers
      KVM: MIPS: Add fast path TLB refill handler
      KVM: MIPS/TLB: Fix off-by-one in TLB invalidate
      KVM: MIPS/TLB: Generalise host TLB invalidate to kernel ASID
      KVM: MIPS/MMU: Invalidate GVA PTs on ASID changes
      KVM: MIPS/MMU: Invalidate stale GVA PTEs on TLBW
      KVM: MIPS/MMU: Convert KSeg0 faults to page tables
      KVM: MIPS/MMU: Convert TLB mapped faults to page tables
      KVM: MIPS/MMU: Convert commpage fault handling to page tables
      KVM: MIPS: Drop vm_init() callback
      KVM: MIPS: Use uaccess to read/modify guest instructions
      KVM: MIPS/Emulate: Fix CACHE emulation for EVA hosts
      KVM: MIPS/TLB: Drop kvm_local_flush_tlb_all()
      KVM: MIPS/Emulate: Drop redundant TLB flushes on exceptions
      KVM: MIPS/MMU: Drop kvm_get_new_mmu_context()
      KVM: MIPS/T&E: Don't treat code fetch faults as MMIO
      KVM: MIPS: Improve kvm_get_inst() error return
      KVM: MIPS: Use CP0_BadInstr[P] for emulation
      KVM: MIPS/MMU: Convert guest physical map to page table
      KVM: MIPS: Update vcpu->mode and vcpu->cpu
      KVM: MIPS/T&E: Handle TLB invalidation requests
      KVM: MIPS/T&E: Reduce stale ASID checks
      KVM: MIPS/T&E: Add lockless GVA access helpers
      KVM: MIPS/T&E: Use lockless GVA helpers for dyntrans
      KVM: MIPS/MMU: Use lockless GVA helpers for get_inst()
      KVM: MIPS/Emulate: Use lockless GVA helpers for cache emulation
      KVM: MIPS: Implement kvm_arch_flush_shadow_all/memslot
      KVM: MIPS/T&E: Ignore user writes to CP0_Config7
      KVM: MIPS: Pass type of fault down to kvm_mips_map_page()
      KVM: MIPS/T&E: Abstract bad access handling
      KVM: MIPS/T&E: Treat unhandled guest KSeg0 as MMIO
      KVM: MIPS/T&E: Handle read only GPA in TLB mod
      KVM: MIPS/MMU: Add GPA PT mkclean helper
      KVM: MIPS/MMU: Use generic dirty log & protect helper
      KVM: MIPS: Clean & flush on dirty page logging enable
      KVM: MIPS/MMU: Handle dirty logging on GPA faults
      KVM: MIPS/MMU: Pass GPA PTE bits to KSeg0 GVA PTEs
      KVM: MIPS/MMU: Pass GPA PTE bits to mapped GVA PTEs
      KVM: MIPS/MMU: Implement KVM_CAP_SYNC_MMU
      KVM: MIPS: Claim KVM_CAP_READONLY_MEM support
      KVM: MIPS/T&E: Move CP0 register access into T&E
      KVM: MIPS/T&E: Implement CP0_EBase register
      KVM: MIPS/T&E: Default to reset vector
      KVM: MIPS/T&E: Expose CP0_EntryLo0/1 registers
      KVM: MIPS/T&E: Expose read-only CP0_IntCtl register
      KVM: MIPS: Allow multiple VCPUs to be created

Markus Elfring (1):
      MIPS: KVM: Return directly after a failed copy_from_user() in kvm_arch_vcpu_ioctl()

 Documentation/virtual/kvm/api.txt   |   10 +
 arch/mips/include/asm/kvm_host.h    |  183 +++--
 arch/mips/include/asm/mmu_context.h |    9 +-
 arch/mips/include/asm/pgalloc.h     |   16 +-
 arch/mips/include/asm/r4kcache.h    |   55 +-
 arch/mips/include/asm/tlbex.h       |   26 +
 arch/mips/include/asm/uasm.h        |    5 +
 arch/mips/include/uapi/asm/kvm.h    |    2 +
 arch/mips/kvm/Kconfig               |    2 +
 arch/mips/kvm/dyntrans.c            |   50 +-
 arch/mips/kvm/emulate.c             |  432 ++++++------
 arch/mips/kvm/entry.c               |  155 +++-
 arch/mips/kvm/interrupt.c           |    5 +-
 arch/mips/kvm/mips.c                |  496 ++++---------
 arch/mips/kvm/mmu.c                 | 1335 ++++++++++++++++++++++++++++-------
 arch/mips/kvm/tlb.c                 |  299 ++------
 arch/mips/kvm/trap_emul.c           |  740 ++++++++++++++++---
 arch/mips/mm/Makefile               |    2 +-
 arch/mips/mm/init.c                 |    1 +
 arch/mips/mm/pgtable-64.c           |    2 +
 arch/mips/mm/pgtable.c              |   25 +
 arch/mips/mm/tlbex.c                |   38 +-
 22 files changed, 2611 insertions(+), 1277 deletions(-)
 create mode 100644 arch/mips/include/asm/tlbex.h
 create mode 100644 arch/mips/mm/pgtable.c

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [GIT PULL] KVM: MIPS: GVA/GPA page tables, dirty logging, SYNC_MMU etc
  2017-02-03 16:06 [GIT PULL] KVM: MIPS: GVA/GPA page tables, dirty logging, SYNC_MMU etc James Hogan
  2017-02-03 16:06 ` James Hogan
@ 2017-02-07 17:18 ` Paolo Bonzini
  1 sibling, 0 replies; 3+ messages in thread
From: Paolo Bonzini @ 2017-02-07 17:18 UTC (permalink / raw)
  To: James Hogan, Radim Krčmář; +Cc: Ralf Baechle, linux-mips, kvm


[-- Attachment #1.1: Type: text/plain, Size: 7847 bytes --]



On 03/02/2017 17:06, James Hogan wrote:
> Hi Paolo, Radim,
> 
> The following changes since commit 0b4c208d443ba2af82b4c70f99ca8df31e9a0020:
> 
>   Revert "KVM: nested VMX: disable perf cpuid reporting" (2017-01-20 22:18:55 +0100)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/kvm-mips.git tags/kvm_mips_4.11_1
> 
> for you to fetch changes up to 12ed1faece3f141c2604b5b3a8377ba71d23ec9d:
> 
>   KVM: MIPS: Allow multiple VCPUs to be created (2017-02-03 15:21:34 +0000)
> 
> It is already included in linux-next (though I did tweak one of the
> commit messages just now to remove a patch changelog I had accidentally
> left in, with no changes to the code).
> 
> It includes a merge of my mips branch in the same repo, which is based
> on v4.10-rc2 and contains the general MIPS changes in the GVA/GPA page
> tables series, for Ralf to also merge if he likes.
> 
> Cheers
> James
> 
> ----------------------------------------------------------------
> 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.
> 
> ----------------------------------------------------------------
> James Hogan (63):
>       MIPS: Move pgd_alloc() out of header
>       MIPS: Export pgd/pmd symbols for KVM
>       MIPS: uasm: Add include guards in asm/uasm.h
>       MIPS: Export some tlbex internals for KVM to use
>       MIPS: Add return errors to protected cache ops
>       Merge MIPS prerequisites
>       KVM: MIPS: Drop partial KVM_NMI implementation
>       KVM: MIPS/MMU: Simplify ASID restoration
>       KVM: MIPS: Convert get/set_regs -> vcpu_load/put
>       KVM: MIPS/MMU: Move preempt/ASID handling to implementation
>       KVM: MIPS: Remove duplicated ASIDs from vcpu
>       KVM: MIPS: Add vcpu_run() & vcpu_reenter() callbacks
>       KVM: MIPS/T&E: Restore host asid on return to host
>       KVM: MIPS/T&E: active_mm = init_mm in guest context
>       KVM: MIPS: Wire up vcpu uninit
>       KVM: MIPS/T&E: Allocate GVA -> HPA page tables
>       KVM: MIPS/T&E: Activate GVA page tables in guest context
>       KVM: MIPS: Support NetLogic KScratch registers
>       KVM: MIPS: Add fast path TLB refill handler
>       KVM: MIPS/TLB: Fix off-by-one in TLB invalidate
>       KVM: MIPS/TLB: Generalise host TLB invalidate to kernel ASID
>       KVM: MIPS/MMU: Invalidate GVA PTs on ASID changes
>       KVM: MIPS/MMU: Invalidate stale GVA PTEs on TLBW
>       KVM: MIPS/MMU: Convert KSeg0 faults to page tables
>       KVM: MIPS/MMU: Convert TLB mapped faults to page tables
>       KVM: MIPS/MMU: Convert commpage fault handling to page tables
>       KVM: MIPS: Drop vm_init() callback
>       KVM: MIPS: Use uaccess to read/modify guest instructions
>       KVM: MIPS/Emulate: Fix CACHE emulation for EVA hosts
>       KVM: MIPS/TLB: Drop kvm_local_flush_tlb_all()
>       KVM: MIPS/Emulate: Drop redundant TLB flushes on exceptions
>       KVM: MIPS/MMU: Drop kvm_get_new_mmu_context()
>       KVM: MIPS/T&E: Don't treat code fetch faults as MMIO
>       KVM: MIPS: Improve kvm_get_inst() error return
>       KVM: MIPS: Use CP0_BadInstr[P] for emulation
>       KVM: MIPS/MMU: Convert guest physical map to page table
>       KVM: MIPS: Update vcpu->mode and vcpu->cpu
>       KVM: MIPS/T&E: Handle TLB invalidation requests
>       KVM: MIPS/T&E: Reduce stale ASID checks
>       KVM: MIPS/T&E: Add lockless GVA access helpers
>       KVM: MIPS/T&E: Use lockless GVA helpers for dyntrans
>       KVM: MIPS/MMU: Use lockless GVA helpers for get_inst()
>       KVM: MIPS/Emulate: Use lockless GVA helpers for cache emulation
>       KVM: MIPS: Implement kvm_arch_flush_shadow_all/memslot
>       KVM: MIPS/T&E: Ignore user writes to CP0_Config7
>       KVM: MIPS: Pass type of fault down to kvm_mips_map_page()
>       KVM: MIPS/T&E: Abstract bad access handling
>       KVM: MIPS/T&E: Treat unhandled guest KSeg0 as MMIO
>       KVM: MIPS/T&E: Handle read only GPA in TLB mod
>       KVM: MIPS/MMU: Add GPA PT mkclean helper
>       KVM: MIPS/MMU: Use generic dirty log & protect helper
>       KVM: MIPS: Clean & flush on dirty page logging enable
>       KVM: MIPS/MMU: Handle dirty logging on GPA faults
>       KVM: MIPS/MMU: Pass GPA PTE bits to KSeg0 GVA PTEs
>       KVM: MIPS/MMU: Pass GPA PTE bits to mapped GVA PTEs
>       KVM: MIPS/MMU: Implement KVM_CAP_SYNC_MMU
>       KVM: MIPS: Claim KVM_CAP_READONLY_MEM support
>       KVM: MIPS/T&E: Move CP0 register access into T&E
>       KVM: MIPS/T&E: Implement CP0_EBase register
>       KVM: MIPS/T&E: Default to reset vector
>       KVM: MIPS/T&E: Expose CP0_EntryLo0/1 registers
>       KVM: MIPS/T&E: Expose read-only CP0_IntCtl register
>       KVM: MIPS: Allow multiple VCPUs to be created
> 
> Markus Elfring (1):
>       MIPS: KVM: Return directly after a failed copy_from_user() in kvm_arch_vcpu_ioctl()
> 
>  Documentation/virtual/kvm/api.txt   |   10 +
>  arch/mips/include/asm/kvm_host.h    |  183 +++--
>  arch/mips/include/asm/mmu_context.h |    9 +-
>  arch/mips/include/asm/pgalloc.h     |   16 +-
>  arch/mips/include/asm/r4kcache.h    |   55 +-
>  arch/mips/include/asm/tlbex.h       |   26 +
>  arch/mips/include/asm/uasm.h        |    5 +
>  arch/mips/include/uapi/asm/kvm.h    |    2 +
>  arch/mips/kvm/Kconfig               |    2 +
>  arch/mips/kvm/dyntrans.c            |   50 +-
>  arch/mips/kvm/emulate.c             |  432 ++++++------
>  arch/mips/kvm/entry.c               |  155 +++-
>  arch/mips/kvm/interrupt.c           |    5 +-
>  arch/mips/kvm/mips.c                |  496 ++++---------
>  arch/mips/kvm/mmu.c                 | 1335 ++++++++++++++++++++++++++++-------
>  arch/mips/kvm/tlb.c                 |  299 ++------
>  arch/mips/kvm/trap_emul.c           |  740 ++++++++++++++++---
>  arch/mips/mm/Makefile               |    2 +-
>  arch/mips/mm/init.c                 |    1 +
>  arch/mips/mm/pgtable-64.c           |    2 +
>  arch/mips/mm/pgtable.c              |   25 +
>  arch/mips/mm/tlbex.c                |   38 +-
>  22 files changed, 2611 insertions(+), 1277 deletions(-)
>  create mode 100644 arch/mips/include/asm/tlbex.h
>  create mode 100644 arch/mips/mm/pgtable.c
> 

Pulled, thanks.

Paolo


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 473 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-02-07 17:18 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-03 16:06 [GIT PULL] KVM: MIPS: GVA/GPA page tables, dirty logging, SYNC_MMU etc James Hogan
2017-02-03 16:06 ` James Hogan
2017-02-07 17:18 ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).