• Michael Ellerman's avatar
    KVM: PPC: Tie KVM_CAP_PPC_HTM to the user-visible TM feature · 2a3d6553
    Michael Ellerman authored
    Currently we use CPU_FTR_TM to decide if the CPU/kernel can support
    TM (Transactional Memory), and if it's true we advertise that to
    Qemu (or similar) via KVM_CAP_PPC_HTM.
    
    PPC_FEATURE2_HTM is the user-visible feature bit, which indicates that
    the CPU and kernel can support TM. Currently CPU_FTR_TM and
    PPC_FEATURE2_HTM always have the same value, either true or false, so
    using the former for KVM_CAP_PPC_HTM is correct.
    
    However some Power9 CPUs can operate in a mode where TM is enabled but
    TM suspended state is disabled. In this mode CPU_FTR_TM is true, but
    PPC_FEATURE2_HTM is false. Instead a different PPC_FEATURE2 bit is
    set, to indicate that this different mode of TM is available.
    
    It is not safe to let guests use TM as-is, when the CPU is in this
    mode. So to prevent that from happening, use PPC_FEATURE2_HTM to
    determine the value of KVM_CAP_PPC_HTM.
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    2a3d6553
powerpc.c 42.9 KB