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

I think enough changes and fixes have gone in since last round
to repost.

I put a git tree here to make things easier to get.

https://github.com/npiggin/linux/tree/kvm-in-c-2

Main changes since v3:
- Hopefully fixed LPCR sanising [from Fabiano review]
- Added MSR[HV] clearing of guest MSR (like MSR[ME] setting).
- Restored a lost comment about PPR saving, improved comments a bit
  [Daniel review]
- Added isyncs, removed XXX isync comment.
- Fixed cede comment [Fabiano]
- In stop handling real mode handlers patch, fixed problem of nested
  hcall handler calling cede and xics hcalls and consuming them
  [Fabiano]
- Filter xics hcalls from being consumed if !kvmppc_xics_enabled
  [Fabiano, Alexey noticed and Cedric provided the right recipe and
   comment]
- Removed some more of radix, nested, and virt mode paths from the
  P7/8 code [noticed by Alexey].
- Rebased on 5.12-rc4
- Hopefully I responded to all reviews and collected all reviewed-bys.

Thanks,
Nick

Nicholas Piggin (46):
  KVM: PPC: Book3S HV: Nested move LPCR sanitising to sanitise_hv_regs
  KVM: PPC: Book3S HV: Add a function to filter guest LPCR bits
  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 HV: Ensure MSR[HV] is always clear 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: Remove virt mode checks from real mode handlers
  KVM: PPC: Book3S HV: Remove unused nested HV tests in XICS emulation
  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.h     |   2 +
 arch/powerpc/include/asm/kvm_book3s_64.h  |   8 +
 arch/powerpc/include/asm/kvm_host.h       |   1 -
 arch/powerpc/include/asm/kvm_ppc.h        |  20 +-
 arch/powerpc/include/asm/mmu_context.h    |   6 -
 arch/powerpc/include/asm/time.h           |  16 +
 arch/powerpc/kernel/exceptions-64s.S      | 257 ++------
 arch/powerpc/kernel/security.c            |   5 +-
 arch/powerpc/kernel/time.c                |  21 +-
 arch/powerpc/kvm/Makefile                 |   6 +
 arch/powerpc/kvm/book3s.c                 |  11 +-
 arch/powerpc/kvm/book3s_64_entry.S        | 394 ++++++++++++
 arch/powerpc/kvm/book3s_64_vio_hv.c       |  12 -
 arch/powerpc/kvm/book3s_hv.c              | 730 ++++++++++++----------
 arch/powerpc/kvm/book3s_hv_builtin.c      | 138 +---
 arch/powerpc/kvm/book3s_hv_interrupt.c    | 528 ++++++++++++++++
 arch/powerpc/kvm/book3s_hv_interrupts.S   |   9 +-
 arch/powerpc/kvm/book3s_hv_nested.c       |  22 +-
 arch/powerpc/kvm/book3s_hv_ras.c          |   2 +
 arch/powerpc/kvm/book3s_hv_rm_mmu.c       |  15 +-
 arch/powerpc/kvm/book3s_hv_rm_xics.c      |  15 -
 arch/powerpc/kvm/book3s_hv_rmhandlers.S   | 641 +------------------
 arch/powerpc/kvm/book3s_segment.S         |   7 +
 arch/powerpc/kvm/book3s_xive.c            | 119 +++-
 arch/powerpc/kvm/book3s_xive.h            |   7 -
 arch/powerpc/kvm/book3s_xive_native.c     |  10 -
 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 +-
 33 files changed, 1632 insertions(+), 1518 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] 188+ messages in thread

end of thread, other threads:[~2021-04-02  7:59 UTC | newest]

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