• Ganapatrao Kulkarni's avatar
    arm64: perf: Ignore exclude_hv when kernel is running in HYP · 78a19cfd
    Ganapatrao Kulkarni authored
    commit d98ecdac ("arm64: perf: Count EL2 events if the kernel is
    running in HYP") returns -EINVAL when perf system call perf_event_open is
    called with exclude_hv != exclude_kernel. This change breaks applications
    on VHE enabled ARMv8.1 platforms. The issue was observed with HHVM
    application, which calls perf_event_open with exclude_hv = 1 and
    exclude_kernel = 0.
    
    There is no separate hypervisor privilege level when VHE is enabled, the
    host kernel runs at EL2. So when VHE is enabled, we should ignore
    exclude_hv from the application. This behaviour is consistent with PowerPC
    where the exclude_hv is ignored when the hypervisor is not present and with
    x86 where this flag is ignored.
    Signed-off-by: default avatarGanapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
    [will: added comment to justify the behaviour of exclude_hv]
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    78a19cfd
perf_event.c 39.7 KB