tree 18f4652688239e447fb751efdbba4da502d31def
parent aee2bce3cfdcb9bf2c51c24496ee776e8202ed11
parent 456da532a5fb04f8a79622df7dd49e84e04f31a8
author Ingo Molnar <mingo@kernel.org> 1377770554 +0200
committer Ingo Molnar <mingo@kernel.org> 1377770554 +0200
mergetag object 456da532a5fb04f8a79622df7dd49e84e04f31a8
 type commit
 tag perf-core-for-mingo
 tagger Arnaldo Carvalho de Melo <acme@redhat.com> 1377701325 -0300
 
 perf/core improvements and fixes:
 
 . Don't install scripting files files when perl/python support is disabled.
 
 . Support ! in -e expressions in 'perf trace', to filter a list of syscalls.
 
 . Add --verbose and -o/--output options to 'perf trace'.
 
 . Introduce better formatting of syscall arguments in 'perf trace',
   including so far beautifiers for mmap, madvise, syscall return
   values.
 
 . Fixup jobserver setup in libtraceevent makefile.
 
 . Debug improvements from Adrian Hunter.
 
 . Try to increase the file descriptor limits on EMFILE, from Andi Kleen.
 
 . Remove unused force option in 'perf kvm', from David Ahern.
 
 . Make 'perf trace' command line arguments consistent with 'perf record',
   from David Ahern.
 
 . Fix correlation of samples coming after PERF_RECORD_EXIT event, from
   David Ahern.
 
 Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.14 (GNU/Linux)
 
 iQIcBAABAgAGBQJSHg3ZAAoJENZQFvNTUqpAOA4P/iHt9zPbiM022rVEgis92WF3
 MA1kbLpHBcDvGIk9AVHyV5W/1RhR9BwcP3dqqyVQNx3fW51B/30HaIelkWVWTr3B
 BEm09IfK6eNCeK6D1ZOq8X6hjeijfKLFvdGcdQnodNksAovVKGE3R6u78oRGh0c/
 qOTG2wLLW+iqExikDE7f5nMTvvMwleGtTfxFVoH1yRQ98tEdqShoHe7Pi8GyVmSA
 kOWggbw2qVW8uvxVlcOb19+IusQgK8R1T3vBFXWx3ecj3aNW58iXo17S1QPgRydv
 QXv7JEIp9EV9NjAbGxxcD6xuJdWajVrqO5pKGyQexHczonyhwXtpeWqHf5OfxBR7
 g4Uc+mb37TJPmt6PvzE8lqEhrsRUxJl94r+lYcG8HahB673viWBv6hD8sAm8SmbR
 2Z449Ot1upo7ym02eayCY63ACZeCrLY5PTZW5joH3PPLuAxq56YRkTMXZ9WPyOd3
 d4Q8JqkKaSE1gG/dYKHOdm+yJDjYEEe1NgbnHKlc9QcyUg0oArCPwwYWfFTe6ULN
 WmLePqDtFnVyn0xqPFfw8P2oxAj58F734+6WKzoYJr172lo6yuBilV1iSv+ObWjz
 zldbeGq6DaxavagPBAlBt5rjRijmy15LPM5Hz51jldqbmnue0avjYQLIhIs8hyMd
 VoQdGaExEoDr+WBOvdRf
 =YfKe
 -----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:

 * Don't install scripting files files when perl/python support is disabled.

 * Support ! in -e expressions in 'perf trace', to filter a list of syscalls.

 * Add --verbose and -o/--output options to 'perf trace'.

 * Introduce better formatting of syscall arguments in 'perf trace',
   including so far beautifiers for mmap, madvise, syscall return
   values.

 * Fixup jobserver setup in libtraceevent makefile.

 * Debug improvements from Adrian Hunter.

 * Try to increase the file descriptor limits on EMFILE, from Andi Kleen.

 * Remove unused force option in 'perf kvm', from David Ahern.

 * Make 'perf trace' command line arguments consistent with 'perf record',
   from David Ahern.

 * Fix correlation of samples coming after PERF_RECORD_EXIT event, from
   David Ahern.

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