• Nicholas Piggin's avatar
    KVM: PPC: Book3S HV: Remove unused nested HV tests in XICS emulation · 2ce008c8
    Nicholas Piggin authored
    Commit f3c18e93 ("KVM: PPC: Book3S HV: Use XICS hypercalls when
    running as a nested hypervisor") added nested HV tests in XICS
    hypercalls, but not all are required.
    
    * icp_eoi is only called by kvmppc_deliver_irq_passthru which is only
      called by kvmppc_check_passthru which is only caled by
      kvmppc_read_one_intr.
    
    * kvmppc_read_one_intr is only called by kvmppc_read_intr which is only
      called by the L0 HV rmhandlers code.
    
    * kvmhv_rm_send_ipi is called by:
      - kvmhv_interrupt_vcore which is only called by kvmhv_commence_exit
        which is only called by the L0 HV rmhandlers code.
      - icp_send_hcore_msg which is only called by icp_rm_set_vcpu_irq.
      - icp_rm_set_vcpu_irq which is only called by icp_rm_try_update
      - icp_rm_set_vcpu_irq is not nested HV safe because it writes to
        LPCR directly without a kvmhv_on_pseries test. Nested handlers
        should not in general be using the rm handlers.
    
    The important test seems to be in kvmppc_ipi_thread, which sends the
    virt-mode H_IPI handler kick to use smp_call_function rather than
    msgsnd.
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20210528090752.3542186-26-npiggin@gmail.com
    2ce008c8
book3s_hv_rm_xics.c 23.4 KB