)]}'
{
  "log": [
    {
      "commit": "c82ee828aa20487d254a5225d256cd422acee459",
      "tree": "6f8132442237bc4f2393e04a5f30b3711a8f91ca",
      "parents": [
        "cee75ac7ecc27084accdb9d9d6fde65a09f047ae"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri May 14 14:19:35 2010 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri May 14 14:19:35 2010 -0300"
      },
      "message": "perf report: Report number of events, not samples\n\nNumber of samples is meaningless after we switched to auto-freq, so\nreport the number of events, i.e. not the sum of the different periods,\nbut the number PERF_RECORD_SAMPLE emitted by the kernel.\n\nWhile doing this I noticed that naming \"count\" to the sum of all the\nevent periods can be confusing, so rename it to .period, just like in\nstruct sample.data, so that we become more consistent.\n\nThis helps with the next step, that was to record in struct hist_entry\nthe number of sample events for each instance, we need that because we\nuse it to generate the number of events when applying filters to the\ntree of hist entries like it is being done in the TUI report browser.\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "cee75ac7ecc27084accdb9d9d6fde65a09f047ae",
      "tree": "686208e18b1ab5356658980ee92c96486384412e",
      "parents": [
        "c8446b9bdabcb0caa61bb341bd73c58f7104b503"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri May 14 13:16:55 2010 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri May 14 13:16:55 2010 -0300"
      },
      "message": "perf hist: Clarify events_stats fields usage\n\nThe events_stats.total field is too generic, rename it to .total_period,\nand also add a comment explaining that it is the sum of all the .period\nfields in samples, that is needed because we use auto-freq to avoid\nsampling artifacts.\n\nDitto for events_stats.lost, that is the sum of all lost_event.lost\nfields, i.e. the number of events the kernel dropped.\n\nLooking at the users, builtin-sched.c can make use of these fields and\nstop doing it again.\n\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "1c02c4d2e92f2097f1bba63ec71560b0e05a7f36",
      "tree": "ad2a722931398ce3cd3ae850c4cfa148558a52ea",
      "parents": [
        "d118f8ba6ac2af2bf11d40cba657c813f0f39ca2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon May 10 13:04:11 2010 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon May 10 13:13:49 2010 -0300"
      },
      "message": "perf hist: Introduce hists class and move lots of methods to it\n\nIn cbbc79a we introduced support for multiple events by introducing a\nnew \"event_stat_id\" struct and then made several perf_session methods\nreceive a point to it instead of a pointer to perf_session, and kept the\nevent_stats and hists rb_tree in perf_session.\n\nWhile working on the new newt based browser, I realised that it would be\nbetter to introduce a new class, \"hists\" (short for \"histograms\"),\nrenaming the \"event_stat_id\" struct and the perf_session methods that\nwere really \"hists\" methods, as they manipulate only struct hists\nmembers, not touching anything in the other perf_session members.\n\nOther optimizations, such as calculating the maximum lenght of a symbol\nname present in an hists instance will be possible as we add them,\navoiding a re-traversal just for finding that information.\n\nThe rationale for the name \"hists\" to replace \"event_stat_id\" is that we\nmay have multiple sets of hists for the same event_stat id, as, for\ninstance, the \u0027perf diff\u0027 tool has, so event stat id is not what\ncharacterizes what this struct and the functions that manipulate it do.\n\nCc: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "28e2a106d16046ca792722795f809e3f80a5af80",
      "tree": "c84149ddf45d02044187fe4511cead93d009b6ee",
      "parents": [
        "39d1e1b1e26dc84d40bf2792287d0d61e44b57df"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun May 09 13:02:23 2010 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun May 09 13:10:39 2010 -0300"
      },
      "message": "perf hist: Simplify the insertion of new hist_entry instances\n\nAnd with that fix at least one bug:\n\nThe first hit for an entry, the one that calls malloc to create a new\ninstance in __perf_session__add_hist_entry, wasn\u0027t adding the count to\nthe per cpumode (PERF_RECORD_MISC_USER, etc) total variable.\n\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "454c407ec17a0c63e4023ac0877d687945a7df4a",
      "tree": "1271299a59a89419c0dd4dcbf29b4492b63555ca",
      "parents": [
        "789688faef5b3ba78065beaf2f3d6f1c839f74a3"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "tzanussi@gmail.com",
        "time": "Sat May 01 01:41:20 2010 -0500"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun May 02 13:36:56 2010 -0300"
      },
      "message": "perf: add perf-inject builtin\n\nCurrently, perf \u0027live mode\u0027 writes build-ids at the end of the\nsession, which isn\u0027t actually useful for processing live mode events.\n\nWhat would be better would be to have the build-ids sent before any of\nthe samples that reference them, which can be done by processing the\nevent stream and retrieving the build-ids on the first hit.  Doing\nthat in perf-record itself, however, is off-limits.\n\nThis patch introduces perf-inject, which does the same job while\nleaving perf-record untouched.  Normal mode perf still records the\nbuild-ids at the end of the session as it should, but for live mode,\nperf-inject can be injected in between the record and report steps\ne.g.:\n\nperf record -o - ./hackbench 10 | perf inject -v -b | perf report -v -i -\n\nperf-inject reads a perf-record event stream and repipes it to stdout.\nAt any point the processing code can inject other events into the\nevent stream - in this case build-ids (-b option) are read and\ninjected as needed into the event stream.\n\nBuild-ids are just the first user of perf-inject - potentially\nanything that needs userspace processing to augment the trace stream\nwith additional information could make use of this facility.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1272696080-16435-3-git-send-email-tzanussi@gmail.com\u003e\nSigned-off-by: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "a1645ce12adb6c9cc9e19d7695466204e3f017fe",
      "tree": "5d31aaaf534997e6e9cebc07f38eca35f76986cf",
      "parents": [
        "ff9d07a0e7ce756a183e7c2e483aec452ee6b574"
      ],
      "author": {
        "name": "Zhang, Yanmin",
        "email": "yanmin_zhang@linux.intel.com",
        "time": "Mon Apr 19 13:32:50 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Mon Apr 19 12:37:24 2010 +0300"
      },
      "message": "perf: \u0027perf kvm\u0027 tool for monitoring guest performance from host\n\nHere is the patch of userspace perf tool.\n\nSigned-off-by: Zhang Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "c05556421742eb47f80301767653a4bcb19de9de",
      "tree": "1e9c441a457acee41d2585e05692cc90c1d88be2",
      "parents": [
        "53e5b5c215ce8372250e227f2c9acf9892de8434"
      ],
      "author": {
        "name": "Ian Munsie",
        "email": "imunsie@au.ibm.com",
        "time": "Tue Apr 13 18:37:33 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 14 11:26:44 2010 +0200"
      },
      "message": "perf: Fix endianness argument compatibility with OPT_BOOLEAN() and introduce OPT_INCR()\n\nParsing an option from the command line with OPT_BOOLEAN on a\nbool data type would not work on a big-endian machine due to the\nmanner in which the boolean was being cast into an int and\nincremented. For example, running \u0027perf probe --list\u0027 on a\nPowerPC machine would fail to properly set the list_events bool\nand would therefore print out the usage information and\nterminate.\n\nThis patch makes OPT_BOOLEAN work as expected with a bool\ndatatype. For cases where the original OPT_BOOLEAN was\nintentionally being used to increment an int each time it was\npassed in on the command line, this patch introduces OPT_INCR\nwith the old behaviour of OPT_BOOLEAN (the verbose variable is\ncurrently the only such example of this).\n\nI have reviewed every use of OPT_BOOLEAN to verify that a true\nC99 bool was passed. Where integers were used, I verified that\nthey were only being used for boolean logic and changed them to\nbools to ensure that they would not be mistakenly used as ints.\nThe major exception was the verbose variable which now uses\nOPT_INCR instead of OPT_BOOLEAN.\n\nSigned-off-by: Ian Munsie \u003cimunsie@au.ibm.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: \u003cstable@kernel.org\u003e # NOTE: wont apply to .3[34].x cleanly, please backport\nCc: Git development list \u003cgit@vger.kernel.org\u003e\nCc: Ian Munsie \u003cimunsie@au1.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hitoshi Mitake \u003cmitake@dcl.info.waseda.ac.jp\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nCc: Valdis.Kletnieks@vt.edu\nCc: WANG Cong \u003camwang@redhat.com\u003e\nCc: Thiago Farina \u003ctfransosi@gmail.com\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nCc: Jaswinder Singh Rajput \u003cjaswinderrajput@gmail.com\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Anton Blanchard \u003canton@samba.org\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1271147857-11604-1-git-send-email-imunsie@au.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eefc465cdd49cb89a742083fac2807c718ddad31",
      "tree": "9b16f03050d831ab357b2d0e40f694369135e787",
      "parents": [
        "cb8f09393646c5058056db771583c86e0ed1d92f"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "ebmunson@us.ibm.com",
        "time": "Fri Mar 05 12:51:08 2010 -0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 10 13:53:49 2010 +0100"
      },
      "message": "perf session: Change perf_session post processing functions to take histogram tree\n\nNow that report can store historgrams for multiple events we\nneed to be able to do the post processing work for each\nhistogram. This patch changes the post processing functions so\nthat they can be called individually for each event\u0027s histogram.\n\nSigned-off-by: Eric B Munson \u003cebmunson@us.ibm.com\u003e\n[ Guarantee bisectabilty by fixing up builtin-report.c ]\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1267804269-22660-5-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d403d0acc9c5afa679a3f61e71489530d7fa0606",
      "tree": "6f281b520792a11b2f4f9fffea90b978c6a12f11",
      "parents": [
        "8907fd607b66e36636469a2de9833db643869db8"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "ebmunson@us.ibm.com",
        "time": "Fri Mar 05 12:51:06 2010 -0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 10 13:53:47 2010 +0100"
      },
      "message": "perf session: Change add_hist_entry to take the tree root instead of session\n\nIn order to minimize the impact of storing multiple events in a\nreport this function will now take the root of the histogram\ntree so that the logic for selecting the proper tree can be\ninserted before the call.\n\nSigned-off-by: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1267804269-22660-3-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d755034dbd01e240eadf2d31f4f75d3088ccd21",
      "tree": "922b509d4bf2964ea369c8586f9f2931065e0191",
      "parents": [
        "66aeb6d5cb701aedd508187e08612bfd1e108e2e"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Jan 14 12:23:09 2010 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 16 10:58:45 2010 +0100"
      },
      "message": "perf tools: Don\u0027t cast RIP to pointers\n\nSince they can come from another architecture with bigger\npointers, i.e. processing a 64-bit perf.data on a 32-bit arch.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1263478990-8200-1-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9c443dfdd31eddea6cbe6ee0ca469fbcc4e1dc3b",
      "tree": "6e217aaf89b941fbbc7b905046d5350392d642db",
      "parents": [
        "cdbae31408cf39372402076cf2e189ec693daa71"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Dec 28 22:48:36 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 30 12:00:00 2009 +0100"
      },
      "message": "perf diff: Fix support for all --sort combinations\n\nWhen we finish creating the hist_entries we _already_ have them\nsorted \"by name\", in fact by what is in --sort, that is exactly\nhow we can find the pairs in perf_session__match_hists as\n\u0027comm\u0027, \u0027dso\u0027 \u0026 \u0027symbol\u0027 all are strings we need to find the\nmatches in the baseline session.\n\nSo only do the sort by hits followed by a resort by --sort if we\nneed to find the position for shwowing the --displacement of\nhist entries.\n\nNow all these modes work correctly:\n\nExample is a simple \u0027perf record -f find / \u003e /dev/null\u0027 ran\ntwice then followed by the following commands:\n\n  $ perf diff -f --sort comm\n  # Baseline  Delta      Command\n  # ........ ..........  .......\n  #\n       0.00%   +100.00%     find\n  $ perf diff -f --sort dso\n  # Baseline  Delta           Shared Object\n  # ........ ..........  ..................\n  #\n      59.97%     -0.44%  [kernel]\n      21.17%     +0.28%  libc-2.5.so\n      18.49%     +0.16%  [ext3]\n       0.37%             find\n  $ perf diff -f --sort symbol | head -8\n  # Baseline  Delta      Symbol\n  # ........ ..........  ......\n  #\n       6.21%     +0.36%  [k] ext3fs_dirhash\n       3.43%     +0.41%  [.] __GI_strlen\n       3.53%     +0.16%  [k] __kmalloc\n       3.17%     +0.49%  [k] system_call\n       3.06%     +0.37%  [k] ext3_htree_store_dirent\n  $ perf diff -f --sort dso,symbol | head -8\n  # Baseline  Delta           Shared Object  Symbol\n  # ........ ..........  ..................  ......\n  #\n       6.21%     +0.36%  [ext3]              [k] ext3fs_dirhash\n       3.43%     +0.41%  libc-2.5.so         [.] __GI_strlen\n       3.53%     +0.16%  [kernel]            [k] __kmalloc\n       3.17%     +0.49%  [kernel]            [k] system_call\n       3.06%     +0.37%  [ext3]              [k] ext3_htree_store_dirent\n  $\n\nAnd we don\u0027t have to do two expensive resorts in the common, non\n--displacement case.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1262047716-23171-5-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cdbae31408cf39372402076cf2e189ec693daa71",
      "tree": "95b8eaf8b90ef6b5ef6bf8db548ee80cc11ec300",
      "parents": [
        "71289be7630fb97f2de6bb2e18a50289dc869f9d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Dec 28 22:48:35 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 30 11:59:59 2009 +0100"
      },
      "message": "perf diff: Don\u0027t add the period for unresolved symbols\n\nSince we don\u0027t add histograms buckets for them, this way the sum\nof baselines should be 100%.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1262047716-23171-4-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "55aa640f54280da25046acd2075842d464f451e6",
      "tree": "ab9f390de0a7315bbcac3dc7105673d3eeb8c521",
      "parents": [
        "f7d87444e6ee6f4a19634e5412664c1c529a2370"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun Dec 27 21:37:05 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 28 09:03:35 2009 +0100"
      },
      "message": "perf session: Remove redundant prefix \u0026 suffix from perf_event_ops\n\nSince now all that we have are perf event handlers, leave just\nthe name of the event.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1261957026-15580-9-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f7d87444e6ee6f4a19634e5412664c1c529a2370",
      "tree": "51276ba205c80aa13e9345888351fc89d74b876a",
      "parents": [
        "31d337c4ee3152b7271897eae576251643f5a3b5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun Dec 27 21:37:04 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 28 09:03:35 2009 +0100"
      },
      "message": "perf session: Move full_paths config to symbol_conf\n\nNow perf_event_ops has just that, event handlers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1261957026-15580-8-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0422a4fc2c6a41c3d4184984797512af2650014e",
      "tree": "9360c59733c31e1bbf160c4d089942c04082cfb4",
      "parents": [
        "b5b60fda1e462a849bc37dfbace2888191be82cc"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Dec 18 16:35:58 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 18 20:01:52 2009 +0100"
      },
      "message": "perf diff: Fix usage array, it must end with a NULL entry\n\nFixing this:\n\n [acme@doppio linux-2.6-tip]$ perf diff --hell\n   Error: unknown option `hell\u0027\n\n  usage: perf diff [\u003coptions\u003e] [old_file] [new_file]\n Segmentation fault\n [acme@doppio linux-2.6-tip]$\n\nAlso go over the other such arrays to check if they all were OK,\nthey are, but there were some minor changes to do like making\none static and renaming another to match the command it refers\nto.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1261161358-23959-1-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "604c5c92972dcb4b98be34775452d09a5d4ec248",
      "tree": "3f4ef659340f70780d41d3850fc5f9de13fc8719",
      "parents": [
        "c351c2816177eb7d2979ec874b9b895abe9d6e5c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Dec 16 14:09:53 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 18:13:40 2009 +0100"
      },
      "message": "perf diff: Change the default sort order to \"dso,symbol\"\n\nThis is a more intuitive / more meaningful default:\n\n$ perf diff | head -8\n     9.02%     +1.00%  libc-2.10.1.so               [.] _IO_vfprintf_internal\n     2.91%     -1.00%  [kernel]                     [k] __kmalloc\n     2.85%     -1.00%  [kernel]                     [k] ext4_htree_store_dirent\n     1.99%     -1.00%  [kernel]                     [k] _atomic_dec_and_lock\n     2.44%             [kernel]\n$\n\nSuggested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1260979793-1981-1-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c351c2816177eb7d2979ec874b9b895abe9d6e5c",
      "tree": "b6dd7fb4a5e048168319111e18082025c2e93f1b",
      "parents": [
        "125c4fad1e60751ceaab1ee2a73bddf31213e5ca"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Dec 16 13:49:27 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 16:53:37 2009 +0100"
      },
      "message": "perf diff: Use perf_session__fprintf_hists just like \u0027perf record\u0027\n\nThat means that almost everything you can do with \u0027perf report\u0027\ncan be done with \u0027perf diff\u0027, for instance:\n\n$ perf record -f find / \u003e /dev/null\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.062 MB perf.data (~2699\nsamples) ] $ perf record -f find / \u003e /dev/null\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.062 MB perf.data (~2687\nsamples) ] perf diff | head -8\n     9.02%     +1.00%     find  libc-2.10.1.so               [.] _IO_vfprintf_internal\n     2.91%     -1.00%     find  [kernel]                     [k] __kmalloc\n     2.85%     -1.00%     find  [kernel]                     [k] ext4_htree_store_dirent\n     1.99%     -1.00%     find  [kernel]                     [k] _atomic_dec_and_lock\n     2.44%                find  [kernel]                     [k] half_md4_transform\n$\n\nSo if you want to zoom into libc:\n\n$ perf diff --dsos libc-2.10.1.so | head -8\n    37.34%                find  [.] _IO_vfprintf_internal\n    10.34%                find  [.] __GI_memmove\n     8.25%     +2.00%     find  [.] _int_malloc\n     5.07%     -1.00%     find  [.] __GI_mempcpy\n     7.62%     +2.00%     find  [.] _int_free\n$\n\nAnd if there were multiple commands using libc, it is also\npossible to aggregate them all by using --sort symbol:\n\n$ perf diff --dsos libc-2.10.1.so --sort symbol | head -8\n    37.34%             [.] _IO_vfprintf_internal\n    10.34%             [.] __GI_memmove\n     8.25%     +2.00%  [.] _int_malloc\n     5.07%     -1.00%  [.] __GI_mempcpy\n     7.62%     +2.00%  [.] _int_free\n$\n\nThe displacement column now is off by default, to use it:\n\nperf diff -m --dsos libc-2.10.1.so --sort symbol | head -8\n    37.34%                   [.] _IO_vfprintf_internal\n    10.34%                   [.] __GI_memmove\n     8.25%     +2.00%        [.] _int_malloc\n     5.07%     -1.00%    +2  [.] __GI_mempcpy\n     7.62%     +2.00%    -1  [.] _int_free\n$\n\nUsing -t/--field-separator can be used for scripting:\n\n$ perf diff -t, -m --dsos libc-2.10.1.so --sort symbol | head -8\n37.34, , ,[.] _IO_vfprintf_internal\n10.34, , ,[.] __GI_memmove\n8.25,+2.00%, ,[.] _int_malloc\n5.07,-1.00%,  +2,[.] __GI_mempcpy\n7.62,+2.00%,  -1,[.] _int_free\n6.99,+1.00%,  -1,[.] _IO_new_file_xsputn\n1.89,-2.00%,  +4,[.] __readdir64\n$\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1260978567-550-1-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c410a33887c17cac95ed8b0d860cdfb5c087a7d8",
      "tree": "54fe6ed5ac64ff77763ff686af58bd36b04e73d6",
      "parents": [
        "655000e7c75a559681ee7f15f6fa870c80ae3194"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Dec 15 20:04:41 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 08:53:49 2009 +0100"
      },
      "message": "perf symbols: Move symbol filtering to event__preprocess_sample()\n\nSo that --dsos, --comm, --symbols can bem used in more tools,\nlike in perf diff:\n\n$ perf record -f find / \u003e /dev/null\n$ perf record -f find / \u003e /dev/null\n$ perf diff --dsos /lib64/libc-2.10.1.so | head -5\n   1        +22392124     /lib64/libc-2.10.1.so   _IO_vfprintf_internal\n   2         +6410655     /lib64/libc-2.10.1.so   __GI_memmove\n   3    +1   +9192692     /lib64/libc-2.10.1.so   _int_malloc\n   4    -1  -15158605     /lib64/libc-2.10.1.so   _int_free\n   5           +45669     /lib64/libc-2.10.1.so   _IO_new_file_xsputn\n$\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1260914682-29652-3-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "655000e7c75a559681ee7f15f6fa870c80ae3194",
      "tree": "69a56e19c818b0929dbea8d119fa133853c5ee80",
      "parents": [
        "75be6cf48738aec68aac49b428423569492cfba3"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Dec 15 20:04:40 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 08:53:49 2009 +0100"
      },
      "message": "perf symbols: Adopt the strlists for dso, comm\n\nWill be used in perf diff too.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1260914682-29652-2-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75be6cf48738aec68aac49b428423569492cfba3",
      "tree": "d7f5ceb028361e8b725ba6f3b8219e66c7b89790",
      "parents": [
        "7ef17aafc98406d01ebbf7fe98ef1332b70d20bb"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Dec 15 20:04:39 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 16 08:53:48 2009 +0100"
      },
      "message": "perf symbols: Make symbol_conf global\n\nThis simplifies a lot of functions, less stuff to be done by\ntool writers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c1260914682-29652-1-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "86a9eee047ba09a714c3b8e27c9df2bbf715393a",
      "tree": "09c096e92b583f42480ac1dbe7dfa45eae1a7f31",
      "parents": [
        "b38d34645cc52136b6c99623fef7ded26742e573"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Dec 14 20:09:31 2009 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 15 08:50:29 2009 +0100"
      },
      "message": "perf diff: Introduce tool to show performance difference\n\nI guess it is enough to show some examples:\n\n[root@doppio linux-2.6-tip]# rm -f perf.data*\n[root@doppio linux-2.6-tip]# ls -la perf.data*\nls: cannot access perf.data*: No such file or directory\n[root@doppio linux-2.6-tip]# perf record -f find / \u003e /dev/null\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.062 MB perf.data (~2699 samples) ]\n[root@doppio linux-2.6-tip]# ls -la perf.data*\n-rw------- 1 root root 74440 2009-12-14 20:03 perf.data\n[root@doppio linux-2.6-tip]# perf record -f find / \u003e /dev/null\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.062 MB perf.data (~2692 samples) ]\n[root@doppio linux-2.6-tip]# ls -la perf.data*\n-rw------- 1 root root 74280 2009-12-14 20:03 perf.data\n-rw------- 1 root root 74440 2009-12-14 20:03 perf.data.old\n[root@doppio linux-2.6-tip]# perf diff | head -5\n   1        -34994580     /lib64/libc-2.10.1.so   _IO_vfprintf_internal\n   2        -15307806         [kernel.kallsyms]   __kmalloc\n   3    +1   +3665941     /lib64/libc-2.10.1.so   __GI_memmove\n   4    +4  +23508995     /lib64/libc-2.10.1.so   _int_malloc\n   5    +7  +38538813         [kernel.kallsyms]   __d_lookup\n[root@doppio linux-2.6-tip]# perf diff -p | head -5\n   1        +1.00%     /lib64/libc-2.10.1.so   _IO_vfprintf_internal\n   2                       [kernel.kallsyms]   __kmalloc\n   3    +1             /lib64/libc-2.10.1.so   __GI_memmove\n   4    +4             /lib64/libc-2.10.1.so   _int_malloc\n   5    +7  -1.00%         [kernel.kallsyms]   __d_lookup\n[root@doppio linux-2.6-tip]# perf diff -v | head -5\n   1        361449551 326454971 -34994580     /lib64/libc-2.10.1.so   _IO_vfprintf_internal\n   2        151009241 135701435 -15307806         [kernel.kallsyms]   __kmalloc\n   3    +1  101805328 105471269  +3665941     /lib64/libc-2.10.1.so   __GI_memmove\n   4    +4   78041440 101550435 +23508995     /lib64/libc-2.10.1.so   _int_malloc\n   5    +7   59536172  98074985 +38538813         [kernel.kallsyms]   __d_lookup\n[root@doppio linux-2.6-tip]# perf diff -vp | head -5\n   1        9.00% 8.00% +1.00%     /lib64/libc-2.10.1.so   _IO_vfprintf_internal\n   2        3.00% 3.00%                [kernel.kallsyms]   __kmalloc\n   3    +1  2.00% 2.00%            /lib64/libc-2.10.1.so   __GI_memmove\n   4    +4  2.00% 2.00%            /lib64/libc-2.10.1.so   _int_malloc\n   5    +7  1.00% 2.00% -1.00%         [kernel.kallsyms]   __d_lookup\n[root@doppio linux-2.6-tip]#\n\nThis should be enough for diffs where the system is non\nvolatile, i.e. when one doesn\u0027t updates binaries.\n\nFor volatile environments, stay tuned for the next perf tool\nfeature: a buildid cache populated by \u0027perf record\u0027, managed by\n\u0027perf buildid-cache\u0027 a-la ccache, and used by all the report\ntools.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c1260828571-3613-3-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
