* [GIT PULL] KVM: MIPS: VZ support, Octeon III, and TLBR
@ 2017-04-06 8:27 James Hogan
2017-04-06 17:38 ` Radim Krčmář
0 siblings, 1 reply; 2+ messages in thread
From: James Hogan @ 2017-04-06 8:27 UTC (permalink / raw)
To: Paolo Bonzini, Radim Krčmář; +Cc: Ralf Baechle, linux-mips, kvm
[-- Attachment #1: Type: text/plain, Size: 5313 bytes --]
Hi Paolo, Radim,
Here are the main KVM MIPS changes for 4.12, mainly to add VZ support.
Please consider pulling.
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
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [GIT PULL] KVM: MIPS: VZ support, Octeon III, and TLBR
2017-04-06 8:27 [GIT PULL] KVM: MIPS: VZ support, Octeon III, and TLBR James Hogan
@ 2017-04-06 17:38 ` Radim Krčmář
0 siblings, 0 replies; 2+ messages in thread
From: Radim Krčmář @ 2017-04-06 17:38 UTC (permalink / raw)
To: James Hogan; +Cc: Paolo Bonzini, Ralf Baechle, linux-mips, kvm
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
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-04-06 17:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-06 8:27 [GIT PULL] KVM: MIPS: VZ support, Octeon III, and TLBR James Hogan
2017-04-06 17:38 ` Radim Krčmář
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).