• Michael Ellerman's avatar
    selftests/powerpc: Add a test of spectre_v2 mitigations · c790c3d2
    Michael Ellerman authored
    This test uses the PMU to count branch prediction hits/misses for a
    known loop, and compare the result to the reported spectre v2
    mitigation.
    
    This gives us a way of sanity checking that the reported mitigation is
    actually in effect.
    
    Sample output for some cases, eg:
    
      Power9:
        sysfs reports: 'Vulnerable'
         PM_BR_PRED_CCACHE: result        368 running/enabled 5792777124
        PM_BR_MPRED_CCACHE: result        319 running/enabled 5792775546
         PM_BR_PRED_PCACHE: result 2147483281 running/enabled 5792773128
        PM_BR_MPRED_PCACHE: result  213604201 running/enabled 5792771640
        Miss percent 9 %
        OK - Measured branch prediction rates match reported spectre v2 mitigation.
    
        sysfs reports: 'Mitigation: Indirect branch serialisation (kernel only)'
         PM_BR_PRED_CCACHE: result        895 running/enabled 5780320920
        PM_BR_MPRED_CCACHE: result        822 running/enabled 5780312414
         PM_BR_PRED_PCACHE: result 2147482754 running/enabled 5780308836
        PM_BR_MPRED_PCACHE: result  213639731 running/enabled 5780307912
        Miss percent 9 %
        OK - Measured branch prediction rates match reported spectre v2 mitigation.
    
        sysfs reports: 'Mitigation: Indirect branch cache disabled'
         PM_BR_PRED_CCACHE: result 2147483649 running/enabled 20540186160
        PM_BR_MPRED_CCACHE: result 2147483649 running/enabled 20540180056
         PM_BR_PRED_PCACHE: result          0 running/enabled 20540176090
        PM_BR_MPRED_PCACHE: result          0 running/enabled 20540174182
        Miss percent 100 %
        OK - Measured branch prediction rates match reported spectre v2 mitigation.
    
      Power8:
        sysfs reports: 'Vulnerable'
         PM_BR_PRED_CCACHE: result 2147483649 running/enabled 3505888142
        PM_BR_MPRED_CCACHE: result          9 running/enabled 3505882788
        Miss percent 0 %
        OK - Measured branch prediction rates match reported spectre v2 mitigation.
    
        sysfs reports: 'Mitigation: Indirect branch cache disabled'
         PM_BR_PRED_CCACHE: result 2147483649 running/enabled 16931421988
        PM_BR_MPRED_CCACHE: result 2147483649 running/enabled 16931416478
        Miss percent 100 %
        OK - Measured branch prediction rates match reported spectre v2 mitigation.
        success: spectre_v2
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20190520105520.22274-1-mpe@ellerman.id.au
    c790c3d2
branch_loops.S 1.04 KB