Re: [GIT PULL] KVM: MIPS: VZ support, Octeon III, and TLBR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2017-04-06 09:27+0100, James Hogan:
> Hi Paolo, Radim,
> 
> Here are the main KVM MIPS changes for 4.12, mainly to add VZ support.
> Please consider pulling.

Pulled, thanks.  The capability numbers 137-139 are now set in stone.

> Thanks
> James
> 
> The following changes since commit 97da3854c526d3a6ee05c849c96e48d21527606c:
> 
>   Linux 4.11-rc3 (2017-03-19 19:09:39 -0700)
> 
> are available in the git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/kvm-mips.git tags/kvm_mips_4.12_1
> 
> for you to fetch changes up to dc44abd6aad22411f7f9890e39fd4753dabf0d03:
> 
>   KVM: MIPS/Emulate: Properly implement TLBR for T&E (2017-03-28 16:31:37 +0100)
> 
> ----------------------------------------------------------------
> KVM: MIPS: VZ support, Octeon III, and TLBR
> 
> Add basic support for the MIPS Virtualization Module (generally known as
> MIPS VZ) in KVM. We primarily support the ImgTec P5600, P6600, I6400,
> and Cavium Octeon III cores so far. Support is included for the
> following VZ / guest hardware features:
> - MIPS32 and MIPS64, r5 (VZ requires r5 or later) and r6
> - TLBs with GuestID (IMG cores) or Root ASID Dealias (Octeon III)
> - Shared physical root/guest TLB (IMG cores)
> - FPU / MSA
> - Cop0 timer (up to 1GHz for now due to soft timer limit)
> - Segmentation control (EVA)
> - Hardware page table walker (HTW) both for root and guest TLB
> 
> Also included is a proper implementation of the TLBR instruction for the
> trap & emulate MIPS KVM implementation.
> 
> Preliminary MIPS architecture changes are applied directly with Ralf's
> ack.
> 
> ----------------------------------------------------------------
> James Hogan (42):
>       MIPS: Add defs & probing of UFR
>       MIPS: Separate MAAR V bit into VL and VH for XPA
>       MIPS: Probe guest CP0_UserLocal
>       MIPS: Probe guest MVH
>       MIPS: Add some missing guest CP0 accessors & defs
>       MIPS: asm/tlb.h: Add UNIQUE_GUEST_ENTRYHI() macro
>       KVM: MIPS: Implement HYPCALL emulation
>       KVM: MIPS/Emulate: De-duplicate MMIO emulation
>       KVM: MIPS/Emulate: Implement 64-bit MMIO emulation
>       KVM: MIPS: Update kvm_lose_fpu() for VZ
>       KVM: MIPS: Extend counters & events for VZ GExcCodes
>       KVM: MIPS: Add VZ & TE capabilities
>       KVM: MIPS: Add 64BIT capability
>       KVM: MIPS: Init timer frequency from callback
>       KVM: MIPS: Add callback to check extension
>       KVM: MIPS: Add hardware_{enable,disable} callback
>       KVM: MIPS: Add guest exit exception callback
>       KVM: MIPS: Abstract guest CP0 register access for VZ
>       KVM: MIPS/Entry: Update entry code to support VZ
>       KVM: MIPS/TLB: Add VZ TLB management
>       KVM: MIPS/Emulate: Update CP0_Compare emulation for VZ
>       KVM: MIPS/Emulate: Drop CACHE emulation for VZ
>       KVM: MIPS: Update exit handler for VZ
>       KVM: MIPS: Implement VZ support
>       KVM: MIPS: Add VZ support to build system
>       KVM: MIPS/VZ: Support guest CP0_BadInstr[P]
>       KVM: MIPS/VZ: Support guest CP0_[X]ContextConfig
>       KVM: MIPS/VZ: Support guest segmentation control
>       KVM: MIPS/VZ: Support guest hardware page table walker
>       KVM: MIPS/VZ: Support guest load-linked bit
>       KVM: MIPS/VZ: Emulate MAARs when necessary
>       KVM: MIPS/VZ: Support hardware guest timer
>       KVM: MIPS/VZ: Trace guest mode changes
>       MIPS: Add Octeon III register accessors & definitions
>       KVM: MIPS/Emulate: Adapt T&E CACHE emulation for Octeon
>       KVM: MIPS/TLB: Handle virtually tagged icaches
>       KVM: MIPS/T&E: Report correct dcache line size
>       KVM: MIPS/VZ: VZ hardware setup for Octeon III
>       KVM: MIPS/VZ: Emulate hit CACHE ops for Octeon III
>       KVM: MIPS/VZ: Handle Octeon III guest.PRid register
>       MIPS: Allow KVM to be enabled on Octeon CPUs
>       KVM: MIPS/Emulate: Properly implement TLBR for T&E
> 
>  Documentation/virtual/kvm/api.txt        |   90 +-
>  Documentation/virtual/kvm/hypercalls.txt |    5 +
>  arch/mips/Kconfig                        |    1 +
>  arch/mips/include/asm/cpu-features.h     |   10 +
>  arch/mips/include/asm/cpu-info.h         |    2 +
>  arch/mips/include/asm/cpu.h              |    1 +
>  arch/mips/include/asm/kvm_host.h         |  467 ++++-
>  arch/mips/include/asm/maar.h             |   10 +-
>  arch/mips/include/asm/mipsregs.h         |   62 +-
>  arch/mips/include/asm/tlb.h              |    6 +-
>  arch/mips/include/uapi/asm/inst.h        |    2 +-
>  arch/mips/include/uapi/asm/kvm.h         |   20 +-
>  arch/mips/kernel/cpu-probe.c             |   13 +-
>  arch/mips/kernel/time.c                  |    1 +
>  arch/mips/kvm/Kconfig                    |   27 +-
>  arch/mips/kvm/Makefile                   |    9 +-
>  arch/mips/kvm/emulate.c                  |  500 +++--
>  arch/mips/kvm/entry.c                    |  132 +-
>  arch/mips/kvm/hypcall.c                  |   53 +
>  arch/mips/kvm/interrupt.h                |    5 +
>  arch/mips/kvm/mips.c                     |  120 +-
>  arch/mips/kvm/mmu.c                      |   20 +
>  arch/mips/kvm/tlb.c                      |  441 ++++
>  arch/mips/kvm/trace.h                    |   74 +-
>  arch/mips/kvm/trap_emul.c                |   73 +-
>  arch/mips/kvm/vz.c                       | 3223 ++++++++++++++++++++++++++++++
>  arch/mips/mm/cache.c                     |    1 +
>  arch/mips/mm/init.c                      |    2 +-
>  include/uapi/linux/kvm.h                 |    7 +
>  29 files changed, 5010 insertions(+), 367 deletions(-)
>  create mode 100644 arch/mips/kvm/hypcall.c
>  create mode 100644 arch/mips/kvm/vz.c





[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux