All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/41] KVM: PPC: Book3S: C-ify the P9 entry/exit code
@ 2021-03-05 15:05 ` Nicholas Piggin
  0 siblings, 0 replies; 158+ messages in thread
From: Nicholas Piggin @ 2021-03-05 15:05 UTC (permalink / raw)
  To: kvm-ppc; +Cc: linuxppc-dev, Nicholas Piggin

This tidies up things, and fixes a few corner cases and unfinished
"XXX:" bits. The major one being "bad host interrupt" detection and
handling (taking a MCE/SRESET while switching into guest regs) which
was missing previously from the new P9 path.

Adds a few new patches and makes some changes for issues noticed
by reviewers (thank you).

Thanks,
Nick

Nicholas Piggin (41):
  KVM: PPC: Book3S HV: Disallow LPCR[AIL] to be set to 1 or 2
  KVM: PPC: Book3S HV: Prevent radix guests from setting LPCR[TC]
  KVM: PPC: Book3S HV: Remove redundant mtspr PSPB
  KVM: PPC: Book3S HV: remove unused kvmppc_h_protect argument
  KVM: PPC: Book3S HV: Fix CONFIG_SPAPR_TCE_IOMMU=n default hcalls
  powerpc/64s: Remove KVM handler support from CBE_RAS interrupts
  powerpc/64s: remove KVM SKIP test from instruction breakpoint handler
  KVM: PPC: Book3S HV: Ensure MSR[ME] is always set in guest MSR
  KVM: PPC: Book3S 64: move KVM interrupt entry to a common entry point
  KVM: PPC: Book3S 64: Move GUEST_MODE_SKIP test into KVM
  KVM: PPC: Book3S 64: add hcall interrupt handler
  KVM: PPC: Book3S 64: Move hcall early register setup to KVM
  KVM: PPC: Book3S 64: Move interrupt early register setup to KVM
  KVM: PPC: Book3S 64: move bad_host_intr check to HV handler
  KVM: PPC: Book3S 64: Minimise hcall handler calling convention
    differences
  KVM: PPC: Book3S HV P9: Move radix MMU switching instructions together
  KVM: PPC: Book3S HV P9: implement kvmppc_xive_pull_vcpu in C
  KVM: PPC: Book3S HV P9: Move xive vcpu context management into
    kvmhv_p9_guest_entry
  KVM: PPC: Book3S HV P9: Stop handling hcalls in real-mode in the P9
    path
  KVM: PPC: Book3S HV P9: Move setting HDEC after switching to guest
    LPCR
  KVM: PPC: Book3S HV P9: Use large decrementer for HDEC
  KVM: PPC: Book3S HV P9: Use host timer accounting to avoid decrementer
    read   
  KVM: PPC: Book3S HV P9: Reduce mftb per guest entry/exit
  powerpc: add set_dec_or_work API for safely updating decrementer
  KVM: PPC: Book3S HV P9: Reduce irq_work vs guest decrementer races
  KVM: PPC: Book3S HV P9: Implement the rest of the P9 path in C
  KVM: PPC: Book3S HV P9: inline kvmhv_load_hv_regs_and_go into
    __kvmhv_vcpu_entry_p9
  KVM: PPC: Book3S HV P9: Read machine check registers while MSR[RI] is
    0
  KVM: PPC: Book3S HV P9: Improve exit timing accounting coverage
  KVM: PPC: Book3S HV P9: Move SPR loading after expiry time check
  KVM: PPC: Book3S HV P9: Add helpers for OS SPR handling
  KVM: PPC: Book3S HV P9: Switch to guest MMU context as late as
    possible
  KVM: PPC: Book3S HV: Implement radix prefetch workaround by disabling
    MMU
  KVM: PPC: Book3S HV: Remove support for dependent threads mode on P9
  KVM: PPC: Book3S HV: Remove radix guest support from P7/8 path
  KVM: PPC: Book3S HV P9: Allow all P9 processors to enable nested HV
  KVM: PPC: Book3S HV: small pseries_do_hcall cleanup
  KVM: PPC: Book3S HV: add virtual mode handlers for HPT hcalls and page
    faults
  KVM: PPC: Book3S HV P9: implement hash guest support
  KVM: PPC: Book3S HV P9: implement hash host / hash guest support
  KVM: PPC: Book3S HV: remove ISA v3.0 and v3.1 support from P7/8 path

 arch/powerpc/include/asm/asm-prototypes.h |   3 +-
 arch/powerpc/include/asm/exception-64s.h  |  13 +
 arch/powerpc/include/asm/kvm_asm.h        |   3 +-
 arch/powerpc/include/asm/kvm_book3s_64.h  |   8 +
 arch/powerpc/include/asm/kvm_host.h       |   1 -
 arch/powerpc/include/asm/kvm_ppc.h        |  10 +-
 arch/powerpc/include/asm/mmu_context.h    |   6 -
 arch/powerpc/include/asm/time.h           |  16 +
 arch/powerpc/kernel/exceptions-64s.S      | 262 ++-------
 arch/powerpc/kernel/security.c            |   5 +-
 arch/powerpc/kernel/time.c                |  21 +-
 arch/powerpc/kvm/Makefile                 |   6 +
 arch/powerpc/kvm/book3s_64_entry.S        | 368 ++++++++++++
 arch/powerpc/kvm/book3s_hv.c              | 669 +++++++++++-----------
 arch/powerpc/kvm/book3s_hv_builtin.c      |   6 +
 arch/powerpc/kvm/book3s_hv_interrupt.c    | 519 +++++++++++++++++
 arch/powerpc/kvm/book3s_hv_interrupts.S   |   9 +-
 arch/powerpc/kvm/book3s_hv_nested.c       |  10 +-
 arch/powerpc/kvm/book3s_hv_ras.c          |   2 +
 arch/powerpc/kvm/book3s_hv_rm_mmu.c       |  15 +-
 arch/powerpc/kvm/book3s_hv_rmhandlers.S   | 625 +-------------------
 arch/powerpc/kvm/book3s_segment.S         |   7 +
 arch/powerpc/kvm/book3s_xive.c            |  91 +++
 arch/powerpc/mm/book3s64/radix_pgtable.c  |  27 +-
 arch/powerpc/mm/book3s64/radix_tlb.c      |  46 --
 arch/powerpc/mm/mmu_context.c             |   4 +-
 arch/powerpc/platforms/powernv/idle.c     |  52 +-
 27 files changed, 1506 insertions(+), 1298 deletions(-)
 create mode 100644 arch/powerpc/kvm/book3s_64_entry.S
 create mode 100644 arch/powerpc/kvm/book3s_hv_interrupt.c

-- 
2.23.0


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

end of thread, other threads:[~2021-03-23  7:27 UTC | newest]

Thread overview: 158+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-05 15:05 [PATCH v3 00/41] KVM: PPC: Book3S: C-ify the P9 entry/exit code Nicholas Piggin
2021-03-05 15:05 ` Nicholas Piggin
2021-03-05 15:05 ` [PATCH v3 01/41] KVM: PPC: Book3S HV: Disallow LPCR[AIL] to be set to 1 or 2 Nicholas Piggin
2021-03-05 15:05   ` Nicholas Piggin
2021-03-08 15:26   ` Fabiano Rosas
2021-03-08 15:26     ` Fabiano Rosas
2021-03-09  1:11     ` Nicholas Piggin
2021-03-09  1:11       ` Nicholas Piggin
2021-03-05 15:05 ` [PATCH v3 02/41] KVM: PPC: Book3S HV: Prevent radix guests from setting LPCR[TC] Nicholas Piggin
2021-03-05 15:05   ` Nicholas Piggin
2021-03-08 15:47   ` Fabiano Rosas
2021-03-08 15:47     ` Fabiano Rosas
2021-03-09  1:14     ` Nicholas Piggin
2021-03-09  1:14       ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 03/41] KVM: PPC: Book3S HV: Remove redundant mtspr PSPB Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-12  5:07   ` Daniel Axtens
2021-03-12  5:07     ` Daniel Axtens
2021-03-05 15:06 ` [PATCH v3 04/41] KVM: PPC: Book3S HV: remove unused kvmppc_h_protect argument Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 05/41] KVM: PPC: Book3S HV: Fix CONFIG_SPAPR_TCE_IOMMU=n default hcalls Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 06/41] powerpc/64s: Remove KVM handler support from CBE_RAS interrupts Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 07/41] powerpc/64s: remove KVM SKIP test from instruction breakpoint handler Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 08/41] KVM: PPC: Book3S HV: Ensure MSR[ME] is always set in guest MSR Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 09/41] KVM: PPC: Book3S 64: move KVM interrupt entry to a common entry point Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 10/41] KVM: PPC: Book3S 64: Move GUEST_MODE_SKIP test into KVM Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 11/41] KVM: PPC: Book3S 64: add hcall interrupt handler Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 12/41] KVM: PPC: Book3S 64: Move hcall early register setup to KVM Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-12  5:45   ` Daniel Axtens
2021-03-12  5:45     ` Daniel Axtens
2021-03-16  3:43     ` Nicholas Piggin
2021-03-16  3:43       ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 13/41] KVM: PPC: Book3S 64: Move interrupt " Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-20  7:19   ` Alexey Kardashevskiy
2021-03-20  7:19     ` Alexey Kardashevskiy
2021-03-05 15:06 ` [PATCH v3 14/41] KVM: PPC: Book3S 64: move bad_host_intr check to HV handler Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-20  9:07   ` Alexey Kardashevskiy
2021-03-20  9:07     ` Alexey Kardashevskiy
2021-03-22  3:18     ` Nicholas Piggin
2021-03-22  3:18       ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 15/41] KVM: PPC: Book3S 64: Minimise hcall handler calling convention differences Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-22  2:09   ` Alexey Kardashevskiy
2021-03-22  2:09     ` Alexey Kardashevskiy
2021-03-22  4:06   ` Nicholas Piggin
2021-03-22  4:06     ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 16/41] KVM: PPC: Book3S HV P9: Move radix MMU switching instructions together Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-22  4:24   ` Alexey Kardashevskiy
2021-03-22  4:24     ` Alexey Kardashevskiy
2021-03-22  5:25     ` Nicholas Piggin
2021-03-22  5:25       ` Nicholas Piggin
2021-03-22  6:21       ` Alexey Kardashevskiy
2021-03-22  6:21         ` Alexey Kardashevskiy
2021-03-05 15:06 ` [PATCH v3 17/41] KVM: PPC: Book3S HV P9: implement kvmppc_xive_pull_vcpu in C Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-22  5:05   ` Alexey Kardashevskiy
2021-03-22  5:05     ` Alexey Kardashevskiy
2021-03-22 16:19   ` Cédric Le Goater
2021-03-22 16:19     ` Cédric Le Goater
2021-03-22 18:13     ` Nicholas Piggin
2021-03-22 18:13       ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 18/41] KVM: PPC: Book3S HV P9: Move xive vcpu context management into kvmhv_p9_guest_entry Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-22  5:30   ` Alexey Kardashevskiy
2021-03-22  5:30     ` [PATCH v3 18/41] KVM: PPC: Book3S HV P9: Move xive vcpu context management into kvmhv_p9_guest_e Alexey Kardashevskiy
2021-03-05 15:06 ` [PATCH v3 19/41] KVM: PPC: Book3S HV P9: Stop handling hcalls in real-mode in the P9 path Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-17 16:22   ` Fabiano Rosas
2021-03-17 16:22     ` Fabiano Rosas
2021-03-17 22:41     ` Nicholas Piggin
2021-03-17 22:41       ` Nicholas Piggin
2021-03-22 16:12     ` Cédric Le Goater
2021-03-22 16:12       ` Cédric Le Goater
2021-03-22  7:30   ` Alexey Kardashevskiy
2021-03-22  7:30     ` Alexey Kardashevskiy
2021-03-22 13:15     ` Nicholas Piggin
2021-03-22 13:15       ` Nicholas Piggin
2021-03-22 16:01       ` Cédric Le Goater
2021-03-22 16:01         ` Cédric Le Goater
2021-03-22 18:22         ` Nicholas Piggin
2021-03-22 18:22           ` Nicholas Piggin
2021-03-23  7:26           ` Cédric Le Goater
2021-03-23  7:26             ` Cédric Le Goater
2021-03-05 15:06 ` [PATCH v3 20/41] KVM: PPC: Book3S HV P9: Move setting HDEC after switching to guest LPCR Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-08 17:52   ` Fabiano Rosas
2021-03-08 17:52     ` Fabiano Rosas
2021-03-22  8:39   ` Alexey Kardashevskiy
2021-03-22  8:39     ` Alexey Kardashevskiy
2021-03-22 13:24     ` Nicholas Piggin
2021-03-22 13:24       ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 21/41] KVM: PPC: Book3S HV P9: Use large decrementer for HDEC Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-22  7:58   ` Alexey Kardashevskiy
2021-03-22  7:58     ` Alexey Kardashevskiy
2021-03-05 15:06 ` [PATCH v3 22/41] KVM: PPC: Book3S HV P9: Use host timer accounting to avoid decrementer read Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 23/41] KVM: PPC: Book3S HV P9: Reduce mftb per guest entry/exit Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-12 12:55   ` Fabiano Rosas
2021-03-12 12:55     ` Fabiano Rosas
2021-03-05 15:06 ` [PATCH v3 24/41] powerpc: add set_dec_or_work API for safely updating decrementer Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-22  9:38   ` Alexey Kardashevskiy
2021-03-22  9:38     ` Alexey Kardashevskiy
2021-03-05 15:06 ` [PATCH v3 25/41] KVM: PPC: Book3S HV P9: Reduce irq_work vs guest decrementer races Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-23  1:43   ` Alexey Kardashevskiy
2021-03-23  1:43     ` Alexey Kardashevskiy
2021-03-05 15:06 ` [PATCH v3 26/41] KVM: PPC: Book3S HV P9: Implement the rest of the P9 path in C Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 27/41] KVM: PPC: Book3S HV P9: inline kvmhv_load_hv_regs_and_go into __kvmhv_vcpu_entry_p9 Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 28/41] KVM: PPC: Book3S HV P9: Read machine check registers while MSR[RI] is 0 Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 29/41] KVM: PPC: Book3S HV P9: Improve exit timing accounting coverage Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 30/41] KVM: PPC: Book3S HV P9: Move SPR loading after expiry time check Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 31/41] KVM: PPC: Book3S HV P9: Add helpers for OS SPR handling Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 32/41] KVM: PPC: Book3S HV P9: Switch to guest MMU context as late as possible Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 33/41] KVM: PPC: Book3S HV: Implement radix prefetch workaround by disabling MMU Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 34/41] KVM: PPC: Book3S HV: Remove support for dependent threads mode on P9 Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-17 15:11   ` Aneesh Kumar K.V
2021-03-17 15:23     ` Aneesh Kumar K.V
2021-03-22  3:27     ` Nicholas Piggin
2021-03-22  3:27       ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 35/41] KVM: PPC: Book3S HV: Remove radix guest support from P7/8 path Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 36/41] KVM: PPC: Book3S HV P9: Allow all P9 processors to enable nested HV Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 37/41] KVM: PPC: Book3S HV: small pseries_do_hcall cleanup Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 38/41] KVM: PPC: Book3S HV: add virtual mode handlers for HPT hcalls and page faults Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 39/41] KVM: PPC: Book3S HV P9: implement hash guest support Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 40/41] KVM: PPC: Book3S HV P9: implement hash host / " Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-05 15:06 ` [PATCH v3 41/41] KVM: PPC: Book3S HV: remove ISA v3.0 and v3.1 support from P7/8 path Nicholas Piggin
2021-03-05 15:06   ` Nicholas Piggin
2021-03-16  6:06 ` [PATCH v3 00/41] KVM: PPC: Book3S: C-ify the P9 entry/exit code Nicholas Piggin
2021-03-16  6:06   ` Nicholas Piggin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.