• Arnaldo Carvalho de Melo's avatar
    perf evlist: Unmap when all refcounts to fd are gone and events drained · e4b356b5
    Arnaldo Carvalho de Melo authored
    As noticed by receiving a POLLHUP for all its pollfd entries.
    
    That will remove the refcount taken in perf_evlist__mmap_per_evsel(),
    and when all events are consumed via perf_evlist__mmap_read() +
    perf_evlist__mmap_consume(), the ring buffer will be unmap'ed.
    
    Thanks to Jiri Olsa for pointing out that we must wait till all events
    are consumed, not being ok to unmmap just when receiving all the
    POLLHUPs.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jean Pihet <jean.pihet@linaro.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/n/tip-t10w1xk4myp7ca7m9fvip6a0@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    e4b356b5
evlist.c 32.7 KB