• Marc Zyngier's avatar
    KVM: arm64: Add PMU event filtering infrastructure · d7eec236
    Marc Zyngier authored
    It can be desirable to expose a PMU to a guest, and yet not want the
    guest to be able to count some of the implemented events (because this
    would give information on shared resources, for example.
    
    For this, let's extend the PMUv3 device API, and offer a way to setup a
    bitmap of the allowed events (the default being no bitmap, and thus no
    filtering).
    
    Userspace can thus allow/deny ranges of event. The default policy
    depends on the "polarity" of the first filter setup (default deny if the
    filter allows events, and default allow if the filter denies events).
    This allows to setup exactly what is allowed for a given guest.
    
    Note that although the ioctl is per-vcpu, the map of allowed events is
    global to the VM (it can be setup from any vcpu until the vcpu PMU is
    initialized).
    Reviewed-by: default avatarAndrew Jones <drjones@redhat.com>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    d7eec236
pmu-emul.c 25 KB