)]}'
{
  "log": [
    {
      "commit": "45de34bbe3e1b8f4c8bc8ecaf6c915b4b4c545f8",
      "tree": "b141c0c68d668db2f718cdb6c6f1adcb351776c0",
      "parents": [
        "8e5564e6c7554902301543e731354ad2ad58ae53"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Tue Jun 01 21:25:01 2010 +0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jun 05 09:34:04 2010 -0300"
      },
      "message": "perf buildid: add perfconfig option to specify buildid cache dir\n\nThis patch adds the ability to specify an alternate directory to store the\nbuildid cache (buildids, copy of binaries). By default, it is hardcoded to\n$HOME/.debug. This directory contains immutable data. The layout of the\ndirectory is such that no conflicts in filenames are possible. A modification\nin a file, yields a different buildid and thus a different location in the\nsubdir hierarchy.\n\nYou may want to put the buildid cache elsewhere because of disk space\nlimitation or simply to share the cache between users. It is also useful for\nremote collect vs. local analysis of profiles.\n\nThis patch adds a new config option to the perfconfig file.  Under the tag\n\u0027buildid\u0027, there is a dir option. For instance, if you have:\n\n$ cat /etc/perfconfig\n[buildid]\ndir \u003d /var/cache/perf-buildid\n\nAll buildids and binaries are be saved in the directory specified. The perf\nrecord, buildid-list, buildid-cache, report, annotate, and archive commands\nwill it to pull information out.\n\nThe option can be set in the system-wide perfconfig file or in the\n$HOME/.perfconfig file.\n\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Frédéric Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nLKML-Reference: \u003c4c055fb7.df0ce30a.5f0d.ffffae52@mx.google.com\u003e\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "88978e562302c836c1c4597700c79d971e93abc0",
      "tree": "7fe78222f9051216fabe6df27b8236dc8071c93e",
      "parents": [
        "4ded2b250f1fbba4e414d17dc55ee513485c0aa1"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 23 14:33:58 2010 -0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 23 20:33:08 2010 +0100"
      },
      "message": "perf archive: Explain how to use the generated tarball\n\n[root@doppio ~]# perf archive\n Now please run:\n\n $ tar xvf perf.data.tar.bz2 -C ~/.debug\n\n wherever you need to run \u0027perf report\u0027 on.\n [root@doppio ~]#\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: \u003c1269365638-10223-1-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6630125419ef37ff8781713c5e9d416f2a4ba357",
      "tree": "54b375e421b66cd9338359deb7a78635db36ee83",
      "parents": [
        "b622d644c7d61a5cb95b74e7b143c263bed21f0a"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Mar 02 15:25:38 2010 -0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Mar 02 19:27:46 2010 +0100"
      },
      "message": "perf archive: Don\u0027t try to collect files without a build-id\n\nTo avoid these error:\n\n   [root@doppio ~]# perf archive\n   tar: .build-id/00/00000000000000000000000000000000000000: Cannot stat:\n   No such file or directory\n   tar: .build-id/00/00000000000000000000000000000000000000: Cannot stat:\n   No such file or directory\n   tar: .build-id/00/00000000000000000000000000000000000000: Cannot stat:\n   No such file or directory\n   tar: .build-id/00/00000000000000000000000000000000000000: Cannot stat:\n   No such file or directory\n   tar: Exiting with failure status due to previous errors\n   [root@doppio ~]#\n\nMore work is needed to support archiving symtabs for binaries\nwithout a build-id, perhaps creating a perf.data UUID + adding\nbuild-ids for the binaries copied into the cache and then have\nthis perf.data session UUID be a directory with symlinks to the\nby now calculated build-id of the files inside it.\n\nOr just do an extra pass and insert the calculated build-ids in\nthe perf.data header.\n\nReported-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\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2c5851747bcf751908c02e253cb7582d342b4612",
      "tree": "83a6853545a1328dbb44d70d2130a4e2cb46eaea",
      "parents": [
        "460848fceffc91652b2d36d19db4ac40d12fb607"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Jan 15 13:17:52 2010 -0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jan 16 10:58:49 2010 +0100"
      },
      "message": "perf archive: Add helper script to package files needed to do analysis\n\nIt uses \u0027perf buildid-list --with-hits\u0027 to create a tarball with\nwhat is needed to have in the destination machine ~/.debug\nhierarchy to properly decode the perf.data file specified.\n\nHere is an example where a perf.data file collected on a x86-64\nmachine running Fedora 12 is used and then the data is packaged,\ntransferred and decoded on a PARISC64 machine running Debian\nTesting, 32-bit userspace:\n\n[root@doppio linux-2.6-tip]# uname -a\nLinux doppio.ghostprotocols.net 2.6.33-rc4-tip+ #3 SMP Wed Jan 13 11:58:15 BRST 2010 x86_64 x86_64 x86_64 GNU/Linux\n[root@doppio linux-2.6-tip]# perf archive\n[root@doppio linux-2.6-tip]# ls -la perf.data*\n-rw------- 1 root root  737696 2010-01-14 23:36 perf.data\n-rw-r--r-- 1 root root 8840025 2010-01-15 12:27 perf.data.tar.bz2\n[root@doppio linux-2.6-tip]# scp perf.data.* parisc64:.\nPassword:\nperf.data.tar.bz2                                      100% 8633KB   1.4MB/s   00:06\n[root@doppio linux-2.6-tip]# ssh parisc64\nPassword:\nLinux parisc 2.6.19-g2bbf29ac-dirty #1 Sun Dec 3 17:24:04 BRST 2006 parisc64\n\nThe programs included with the Debian GNU/Linux system are free software;\nthe exact distribution terms for each program are described in the\nindividual files in /usr/share/doc/*/copyright.\n\nDebian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent\npermitted by applicable law.\nLast login: Thu Jan 14 11:23:24 2010 from d\nparisc:~# uname -a\nLinux parisc 2.6.19-g2bbf29ac-dirty #1 Sun Dec 3 17:24:04 BRST 2006 parisc64 GNU/Linux\nparisc:~# mkdir .debug\nparisc:~# tar xvf perf.data.tar.bz2 -C ~/.debug\ntar: Record size \u003d 8 blocks\n.build-id/74/f9930ee94475b6b3238caf3725a50d59cb994b\n[kernel.kallsyms]/74f9930ee94475b6b3238caf3725a50d59cb994b\n.build-id/9f/fdcac0a7935922d1f04b6cc9029dfef0f066ef\nlib/modules/2.6.33-rc4-tip+/kernel/arch/x86/crypto/aes-x86_64.ko/9ffdcac0a7935922d1f04b6cc9029dfef0f066ef\n.build-id/3a/af89c32ebfc438ff546c93597d41788e3e65f3\nlib/modules/2.6.33-rc4-tip+/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko/3aaf89c32ebfc438ff546c93597d41788e3e65f3\n.build-id/19/f46033f73e1ec612937189bb118c5daba5a0c8\nlib/modules/2.6.33-rc4-tip+/kernel/net/mac80211/mac80211.ko/19f46033f73e1ec612937189bb118c5daba5a0c8\n.build-id/17/72f014a7a7272859655acb0c64a20ab20b75ee\nlib/modules/2.6.33-rc4-tip+/kernel/drivers/net/e1000e/e1000e.ko/1772f014a7a7272859655acb0c64a20ab20b75ee\n.build-id/eb/4ec8fa8b2a5eb18cad173c92f27ed8887ed1c1\nlib64/libc-2.10.2.so/eb4ec8fa8b2a5eb18cad173c92f27ed8887ed1c1\n.build-id/5c/68f7afeb33309c78037e374b0deee84dd441f6\nlib64/libpthread-2.10.2.so/5c68f7afeb33309c78037e374b0deee84dd441f6\n.build-id/e9/c9ad5c138ef882e4507d2605645b597da43873\nbin/dbus-daemon/e9c9ad5c138ef882e4507d2605645b597da43873\n.build-id/bc/da7d09eb6c9ee380dae0ed3d591d4311decc31\nlib64/libdbus-1.so.3.4.0/bcda7d09eb6c9ee380dae0ed3d591d4311decc31\n.build-id/7c/c449a77f48b85d6088114000e970ced613bed8\nusr/lib64/libcrypto.so.0.9.8k/7cc449a77f48b85d6088114000e970ced613bed8\n.build-id/fd/d1ccd1ff7917ab020653147ab3bacf0a85b5b9\nlib64/libglib-2.0.so.0.2000.5/fdd1ccd1ff7917ab020653147ab3bacf0a85b5b9\n.build-id/e4/417ebb8762e5f2eee93c8011a71115ff5edad8\nlib64/libgobject-2.0.so.0.2000.5/e4417ebb8762e5f2eee93c8011a71115ff5edad8\n.build-id/93/1e49461f6df99104f0febcc52f6fed5e2efce6\nusr/sbin/sshd/931e49461f6df99104f0febcc52f6fed5e2efce6\n.build-id/da/b5f724c088f89fbd8304da553ed6cb30bbec96\nusr/lib64/libgdk-x11-2.0.so.0.1600.6/dab5f724c088f89fbd8304da553ed6cb30bbec96\n.build-id/f2/037a091ef36b591187a858d75e203690ea9409\nusr/sbin/openvpn/f2037a091ef36b591187a858d75e203690ea9409\n.build-id/a8/e4f743b40fb1fd8b85e2f9b88d93b661472b8f\nbin/find/a8e4f743b40fb1fd8b85e2f9b88d93b661472b8f\n.build-id/81/120aada06e68b1e85882925a0fc6d7345ef59a\nhome/acme/bin/perf/81120aada06e68b1e85882925a0fc6d7345ef59a\nparisc:~# perf report 2\u003e /dev/null | head -25\n     9.07%             find  find                               [.] 0x0000000000fb0e\n     3.29%             perf  libc-2.10.2.so                     [.] __GI_strcmp\n     3.19%             find  [kernel.kallsyms]                  [k] _raw_spin_unlock_irqrestore\n     2.70%             find  libc-2.10.2.so                     [.] __GI_memmove\n     2.62%             perf  [kernel.kallsyms]                  [k] vsnprintf\n     2.03%             find  libc-2.10.2.so                     [.] _int_malloc\n     2.02%             perf  [kernel.kallsyms]                  [k] format_decode\n     1.70%             find  [kernel.kallsyms]                  [k] n_tty_write\n     1.70%             find  [kernel.kallsyms]                  [k] half_md4_transform\n     1.67%             find  libc-2.10.2.so                     [.] _IO_vfprintf_internal\n     1.66%             perf  [kernel.kallsyms]                  [k] audit_free_aux\n     1.62%          swapper  [kernel.kallsyms]                  [k] mwait_idle_with_hints\n     1.58%             find  [kernel.kallsyms]                  [k] __kmalloc\n     1.35%             find  [kernel.kallsyms]                  [k] sched_clock_local\n     1.35%             find  [kernel.kallsyms]                  [k] ext4_check_dir_entry\n     1.35%             find  [kernel.kallsyms]                  [k] ext4_htree_store_dirent\n     1.35%             find  [kernel.kallsyms]                  [k] sys_write\n     1.35%             find  [e1000e]                           [k] e1000_clean\n     1.35%             find  [kernel.kallsyms]                  [k] _atomic_dec_and_lock\n     1.34%             find  [kernel.kallsyms]                  [k] __d_lookup\nparisc:~#\n\nProbably the next step is to have \u0027perf report\u0027 notice that there is a\nperf.data.tar.bz2 file in the same directory and look if it was already\nadded to ~/.debug/.\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: \u003c1263568672-30323-2-git-send-email-acme@infradead.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ]
}
