OSDN Git Service

target/arm: Implement ARMv8.1-PMU extension
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 14 Feb 2020 17:51:08 +0000 (17:51 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Fri, 21 Feb 2020 16:07:01 +0000 (16:07 +0000)
commit0727f63b1ecf765ebc48266f616f8fc362dc7fbc
tree6c5e56d12a62bf2b3dac0c58fe98c73d009f1ee6
parent1548a7b2ad621a31b4216ed703b6d658a2ecf0d0
target/arm: Implement ARMv8.1-PMU extension

The ARMv8.1-PMU extension requires:
 * the evtCount field in PMETYPER<n>_EL0 is 16 bits, not 10
 * MDCR_EL2.HPMD allows event counting to be disabled at EL2
 * two new required events, STALL_FRONTEND and STALL_BACKEND
 * ID register bits in ID_AA64DFR0_EL1 and ID_DFR0

We already implement the 16-bit evtCount field and the
HPMD bit, so all that is missing is the two new events:
  STALL_FRONTEND
   "counts every cycle counted by the CPU_CYCLES event on which no
    operation was issued because there are no operations available
    to issue to this PE from the frontend"
  STALL_BACKEND
   "counts every cycle counted by the CPU_CYCLES event on which no
    operation was issued because the backend is unable to accept
    any available operations from the frontend"

QEMU never stalls in this sense, so our implementation is trivial:
always return a zero count.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 20200214175116.9164-14-peter.maydell@linaro.org
target/arm/helper.c