ARM: vfp: Record VFP bounces as perf emulation faults
authorArd Biesheuvel <ardb@kernel.org>
Sat, 18 Mar 2023 16:24:27 +0000 (17:24 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Tue, 16 May 2023 18:24:08 +0000 (20:24 +0200)
commit8769177658d3559c4323200a719dd456d2f2675a
tree0720bd3cf595858aed661c4f9ddb51e5a3131954
parentf1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6
ARM: vfp: Record VFP bounces as perf emulation faults

VFP 'bouncing' occurs when the VFP unit cannot complete the execution of
a VFP instruction, either because it is not implemented at all, or
because the values of the arguments are out of range for the hardware
implementation, and the software needs to step in to complete the
operation.

To give some insight in how much certain programs rely on this bouncing,
record the emulation of a VFP instruction in perf's emulation-faults
counter.

This can be used like so

  perf stat -e emulation-faults ./testfloat -all2

and the output will be something like

 Performance counter stats for './testfloat -all2':

           259,277      emulation-faults:u

       6.846432176 seconds time elapsed

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
arch/arm/vfp/vfpmodule.c