• Leo Yan's avatar
    perf kvm: Reference count 'struct kvm_info' · f1e8f259
    Leo Yan authored
    hists__add_entry_ops() doesn't allocate a new histogram entry if it has
    an existing entry for a KVM event, in this case, find_create_kvm_event()
    allocates a 'struct kvm_info' but it's not used by any histograms and
    never freed.
    
    To fix the memory leak, this patch first introduces a refcnt and a set
    of functions for refcnt operations on 'struct kvm_info'.  When the data
    structure is not anymore used (the refcnt hits zero) kvm_info__zput()
    will free the memory used.
    
    Committer:
    
    Provide a nop version of kvm_info__zput() to be used when
    HAVE_KVM_STAT_SUPPORT isn't defined as it is used unconditionally in
    hists__findnew_entry() and hist_entry__delete().
    Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
    Acked-by: default avatarIan Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20230320061619.29520-2-leo.yan@linaro.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    f1e8f259
hist.c 68.4 KB