[PATCH] selftests/powerpc: Purge extra count_pmc() calls of ebb selftests

Sachin Sant sachinp at linux.vnet.ibm.com
Wed Jul 8 20:38:03 AEST 2020



> On 26-Jun-2020, at 10:17 PM, Desnes A. Nunes do Rosario <desnesn at linux.ibm.com> wrote:
> 
> An extra count on ebb_state.stats.pmc_count[PMC_INDEX(pmc)] is being per-
> formed when count_pmc() is used to reset PMCs on a few selftests. This
> extra pmc_count can occasionally invalidate results, such as the ones from
> cycles_test shown hereafter. The ebb_check_count() failed with an above
> the upper limit error due to the extra value on ebb_state.stats.pmc_count.
> 
> Furthermore, this extra count is also indicated by extra PMC1 trace_log on
> the output of the cycle test (as well as on pmc56_overflow_test):
> 
> ==========
>   ...
>   [21]: counter = 8
>   [22]: register SPRN_MMCR0 = 0x0000000080000080
>   [23]: register SPRN_PMC1  = 0x0000000080000004
>   [24]: counter = 9
>   [25]: register SPRN_MMCR0 = 0x0000000080000080
>   [26]: register SPRN_PMC1  = 0x0000000080000004
>   [27]: counter = 10
>   [28]: register SPRN_MMCR0 = 0x0000000080000080
>   [29]: register SPRN_PMC1  = 0x0000000080000004
>>> [30]: register SPRN_PMC1  = 0x000000004000051e
> PMC1 count (0x280000546) above upper limit 0x2800003e8 (+0x15e)
> [FAIL] Test FAILED on line 52
> failure: cycles
> ==========
> 
> Signed-off-by: Desnes A. Nunes do Rosario <desnesn at linux.ibm.com>
> ---

I too have run into similar failure with cycles_test. I will add that the failure
is inconsistent. I have run into this issue 1 out of 25 times. The failure always
happen at first instance. Subsequent tries work correctly.

With this patch applied the test completes successfully 25 out of 25 times.

# ./cycles_test 
test: cycles
…..
…..
  [25]: register SPRN_MMCR0 = 0x0000000080000080
  [26]: register SPRN_PMC1  = 0x0000000080000004
  [27]: counter = 10
  [28]: register SPRN_MMCR0 = 0x0000000080000080
  [29]: register SPRN_PMC1  = 0x0000000080000004
  [30]: register SPRN_PMC1  = 0x000000004000048f
PMC1 count (0x2800004b7) above upper limit 0x2800003e8 (+0xcf)
[FAIL] Test FAILED on line 52
failure: cycles

With the patch

# ./cycles_test 
test: cycles
…..
…..
  [25]: register SPRN_MMCR0 = 0x0000000080000080
  [26]: register SPRN_PMC1  = 0x0000000080000004
  [27]: counter = 10
  [28]: register SPRN_MMCR0 = 0x0000000080000080
  [29]: register SPRN_PMC1  = 0x0000000080000004
PMC1 count (0x280000028) is between 0x27ffffc18 and 0x2800003e8 delta +0x410/-0x3c0
success: cycles
# 

FWIW   Tested-by : Sachin Sant <sachinp at linux.vnet.ibm.com>

Thanks
-Sachin


More information about the Linuxppc-dev mailing list