tree 7098b1f13486d538e522191c577c632d3c6cb37e
parent b3890e4704594fa23abe1395d1fafc97d3214be8
parent c52686f9f888d23ca72f1309e86af8e91d075697
author Ingo Molnar <mingo@kernel.org> 1422642392 +0100
committer Ingo Molnar <mingo@kernel.org> 1422642392 +0100
mergetag object c52686f9f888d23ca72f1309e86af8e91d075697
 type commit
 tag perf-core-for-mingo
 tagger Arnaldo Carvalho de Melo <acme@redhat.com> 1422562663 -0300
 
 perf/core improvements and fixes:
 
 User visible:
 
 - Show precise number of samples in at the end of a 'record' session, if
   processing build ids, since we will then traverse the whole perf.data file
   and see all the PERF_RECORD_SAMPLE records, otherwise stop showing the
   previous off-base heuristicly counted number of "samples"  (Namhyung Kim).
 
 - Support to read compressed module from build-id cache (Namhyung Kim)
 
 Infrastructure:
 
 - Cache eh/debug frame offset for dwarf unwind (Namhyung Kim)
 
 - Set header version correctly in all cases (Namhyung Kim)
 
 - Set attr.task bit for a tracking event, to be consistent (Namhyung Kim)
   perf tools: Use perf_data_file__fd() consistently
   perf symbols: Convert lseek + read to pread
 
 - Don't rely on malloc working for sz 0, fixing another problem when
   using uClibc (Vineet Gupta)
 
 - Provide stub for missing pthread_attr_setaffinity_np for libcs where this
   is not available, such as uClibc (Vineet Gupta)
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQEcBAABAgAGBQJUypZEAAoJEBpxZoYYoA71B/4H/i4F9bO50iE6ofeEqWTpxHdk
 rqugL1zllzMFOqttPiH0Nk5NFVBmcJB+rpsq04hpHDUMi2Vde8rim2z7VQ2GgU1w
 QxXHKqpsEoTdEnX0wiLK6rNdlmoPZ/7194v1y2TtoY/9uMyWsHylIu9eMSbp9uM2
 nP/uX9vIfhB2w7H+urn7lulzanxmcTyfK/Xouime1v/z7qGtsAFtuSFlnaBG5vkE
 xWxVMNxr3kprw6cGVzS8SabrvJBbNr106Nn7zGRrPuhKuAST11rvUfz707NLCR2g
 kU4/IdoQiC8Qp2wYaL3hfjhKFjjHy9awA7o3Xn+GtUJJa0kqcYW3yTCwvAwDbt8=
 =MhMf
 -----END PGP SIGNATURE-----

Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core

Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo:

 User visible changes:

  - Show precise number of samples in at the end of a 'record' session, if
    processing build ids, since we will then traverse the whole perf.data file
    and see all the PERF_RECORD_SAMPLE records, otherwise stop showing the
    previous off-base heuristicly counted number of "samples"  (Namhyung Kim).

  - Support to read compressed module from build-id cache (Namhyung Kim)

 Infrastructure changes:

  - Cache eh/debug frame offset for dwarf unwind (Namhyung Kim)

  - Set header version correctly in all cases (Namhyung Kim)

  - Set attr.task bit for a tracking event, to be consistent (Namhyung Kim)
    perf tools: Use perf_data_file__fd() consistently
    perf symbols: Convert lseek + read to pread

  - Don't rely on malloc working for sz 0, fixing another problem when
    using uClibc (Vineet Gupta)

  - Provide stub for missing pthread_attr_setaffinity_np for libcs where this
    is not available, such as uClibc (Vineet Gupta)

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
