)]}'
{
  "log": [
    {
      "commit": "56722381b8506733852c44dacf6d7bc5f90aedaf",
      "tree": "867f605305c4e4fa94cea3eacaeb7e1b9ba62bdc",
      "parents": [
        "9c850d6c4b95bb07fb066eb7f43dd4e3b4842b85"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Jun 02 11:04:54 2011 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Jun 03 10:07:52 2011 -0300"
      },
      "message": "perf evlist: Don\u0027t die if sample_{id_all|type} is invalid\n\nFixes two more cases where the python binding would not load:\n\n. Not finding die(), which it shouldn\u0027t anyway, not good to just stop the\n  world because some particular perf.data file is invalid, just propagate\n  the error to the caller.\n\n. Not finding perf_sample_size: fix it by moving it from event.c to evsel,\n  where it belongs, as most cases are moving to operate on an evsel object.o\n\nOne of the fixed problems:\n\n[root@emilia ~]# python\n\u003e\u003e\u003e import perf\nTraceback (most recent call last):\n  File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\nImportError: /home/acme/git/build/perf/python/perf.so: undefined symbol: perf_sample_size\n\u003e\u003e\u003e\n[root@emilia ~]#\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nLink: http://lkml.kernel.org/n/tip-1hkj7b2cvgbfnoizsekjb6c9@git.kernel.org\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "3ac1bbcf13c56a19927df670f429eb0c3c11f8e5",
      "tree": "693e2b7f1a9cb0c6ed6d44375e370e1ae08c7ac9",
      "parents": [
        "a2d063ac216c1618bfc2b4d40b7176adffa63511",
        "5538becaec9ca2ff21e7826372941dc46f498487"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 22 10:07:37 2011 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 22 10:10:01 2011 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/urgent\n\nConflicts:\n\ttools/perf/builtin-top.c\n\nSemantic conflict:\n\tutil/include/linux/list.h        # fix prefetch.h removal fallout\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5538becaec9ca2ff21e7826372941dc46f498487",
      "tree": "66b51fae732a6993f4af1434a1ffe4a83110c71c",
      "parents": [
        "98e1da905cbe64bb023a165c7c01eef5e800609e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun May 22 02:17:22 2011 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun May 22 03:38:49 2011 +0200"
      },
      "message": "perf tools: Propagate event parse error handling\n\nBetter handle event parsing error by propagating the details\nin upper layers or by dumping some failure message. So that\nthe user knows he has some crazy events in the batch.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\n"
    },
    {
      "commit": "a285412479b6d5af3e48273a92ec2f1987df8cd1",
      "tree": "29f68684cebb26b86c3dd0b0f0fc4e5d6553c989",
      "parents": [
        "74429964d8e29c0107fa6e9cdf35b8f33f57405d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat May 21 19:33:04 2011 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun May 22 03:38:36 2011 +0200"
      },
      "message": "perf tools: Pre-check sample size before parsing\n\nCheck that the total size of the sample fields having a fixed\nsize do not exceed the one of the whole event. This robustifies\nthe sample parsing.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\n"
    },
    {
      "commit": "aece948f5ddd70d70df2f35855c706ef9a4f62e2",
      "tree": "ea2611cea32c492d7b3f4f49ec26df05132d5607",
      "parents": [
        "b90194181988063266f3da0b7bf3e57268c627c8"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun May 15 09:39:00 2011 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun May 15 10:02:14 2011 -0300"
      },
      "message": "perf evlist: Fix per thread mmap setup\n\nThe PERF_EVENT_IOC_SET_OUTPUT ioctl was returning -EINVAL when using\n--pid when monitoring multithreaded apps, as we can only share a ring\nbuffer for events on the same thread if not doing per cpu.\n\nFix it by using per thread ring buffers.\n\nTested with:\n\n[root@felicio ~]# tuna -t 26131 -CP | nl\n  1                      thread       ctxt_switches\n  2    pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd\n  3 26131   OTHER     0      0,1  10814276      2397830 chromium-browse\n  4  642    OTHER     0      0,1     14688            0 chromium-browse\n  5  26148  OTHER     0      0,1    713602       115479 chromium-browse\n  6  26149  OTHER     0      0,1    801958         2262 chromium-browse\n  7  26150  OTHER     0      0,1   1271128          248 chromium-browse\n  8  26151  OTHER     0      0,1         3            0 chromium-browse\n  9  27049  OTHER     0      0,1     36796            9 chromium-browse\n 10  618    OTHER     0      0,1     14711            0 chromium-browse\n 11  661    OTHER     0      0,1     14593            0 chromium-browse\n 12  29048  OTHER     0      0,1     28125            0 chromium-browse\n 13  26143  OTHER     0      0,1   2202789          781 chromium-browse\n[root@felicio ~]#\n\nSo 11 threads under pid 26131, then:\n\n[root@felicio ~]# perf record -F 50000 --pid 26131\n\n[root@felicio ~]# grep perf_event /proc/`pidof perf`/maps | nl\n  1 7fa4a2538000-7fa4a25b9000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n  2 7fa4a25b9000-7fa4a263a000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n  3 7fa4a263a000-7fa4a26bb000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n  4 7fa4a26bb000-7fa4a273c000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n  5 7fa4a273c000-7fa4a27bd000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n  6 7fa4a27bd000-7fa4a283e000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n  7 7fa4a283e000-7fa4a28bf000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n  8 7fa4a28bf000-7fa4a2940000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n  9 7fa4a2940000-7fa4a29c1000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n 10 7fa4a29c1000-7fa4a2a42000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n 11 7fa4a2a42000-7fa4a2ac3000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n[root@felicio ~]#\n\n11 mmaps, one per thread since we didn\u0027t specify any CPU list, so we need one\nmmap per thread and:\n\n[root@felicio ~]# perf record -F 50000 --pid 26131\n^M\n^C[ perf record: Woken up 79 times to write data ]\n[ perf record: Captured and wrote 20.614 MB perf.data (~900639 samples) ]\n\n[root@felicio ~]# perf report -D | grep PERF_RECORD_SAMPLE | cut -d/ -f2 | cut -d: -f1 | sort -n | uniq -c | sort -nr | nl\n     1\t 371310 26131\n     2\t  96516 26148\n     3\t  95694 26149\n     4\t  95203 26150\n     5\t   7291 26143\n     6\t     87 27049\n     7\t     76 661\n     8\t     60 29048\n     9\t     47 618\n    10\t     43 642\n[root@felicio ~]#\n\nOk, one of the threads, 26151 was quiescent, so no samples there, but all the\nothers are there.\n\nThen, if I specify one CPU:\n\n[root@felicio ~]# perf record -F 50000 --pid 26131 --cpu 1\n^C[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.680 MB perf.data (~29730 samples) ]\n\n[root@felicio ~]# perf report -D | grep PERF_RECORD_SAMPLE | cut -d/ -f2 | cut -d: -f1 | sort -n | uniq -c | sort -nr | nl\n     1\t   8444 26131\n     2\t   2584 26149\n     3\t   2518 26148\n     4\t   2324 26150\n     5\t    123 26143\n     6\t      9 661\n     7\t      9 29048\n[root@felicio ~]#\n\nThis machine has two cores, so fewer threads appeared on the radar, and:\n\n[root@felicio ~]# grep perf_event /proc/`pidof perf`/maps | nl\n 1 7f484b922000-7f484b9a3000 rwxs 00000000 00:09 4064 anon_inode:[perf_event]\n[root@felicio ~]#\n\nJust one mmap, as now we can use just one per-cpu buffer instead of the\nper-thread needed in the previous case.\n\nFor global profiling:\n\n[root@felicio ~]# perf record -F 50000 -a\n^C[ perf record: Woken up 26 times to write data ]\n[ perf record: Captured and wrote 7.128 MB perf.data (~311412 samples) ]\n\n[root@felicio ~]# grep perf_event /proc/`pidof perf`/maps | nl\n     1\t7fb49b435000-7fb49b4b6000 rwxs 00000000 00:09 4064                       anon_inode:[perf_event]\n     2\t7fb49b4b6000-7fb49b537000 rwxs 00000000 00:09 4064                       anon_inode:[perf_event]\n[root@felicio ~]#\n\nIt uses per-cpu buffers.\n\nFor just one thread:\n\n[root@felicio ~]# perf record -F 50000 --tid 26148\n^C[ perf record: Woken up 2 times to write data ]\n[ perf record: Captured and wrote 0.330 MB perf.data (~14426 samples) ]\n\n[root@felicio ~]# perf report -D | grep PERF_RECORD_SAMPLE | cut -d/ -f2 | cut -d: -f1 | sort -n | uniq -c | sort -nr | nl\n     1\t   9969 26148\n[root@felicio ~]#\n\n[root@felicio ~]# grep perf_event /proc/`pidof perf`/maps | nl\n     1\t7f286a51b000-7f286a59c000 rwxs 00000000 00:09 4064                       anon_inode:[perf_event]\n[root@felicio ~]#\n\nTested-by: David Ahern \u003cdsahern@gmail.com\u003e\nTested-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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\nLink: http://lkml.kernel.org/r/20110426204401.GB1746@ghostprotocols.net\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "5d2cd90922c778908bd0cd669e572a5b5eafd737",
      "tree": "0467726f17165b6e2461521e9cca4f54c959d6d6",
      "parents": [
        "db9a9cbc8142eed008e242e389938689c6feb1ba"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Apr 14 11:20:14 2011 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Apr 15 12:52:28 2011 -0300"
      },
      "message": "perf evsel: Fix use of inherit\n\nperf stat doesn\u0027t mmap and its perfectly fine for it to use task-bound\ncounters with inheritance.\n\nSo set the attr.inherit on the caller and leave the syscall itself to\nvalidate it.\n\nWhen the mmap fails perf_evlist__mmap will just emit a warning if this\nis the failure reason.\n\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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\nLink: http://lkml.kernel.org/r/20110414170121.GC3229@ghostprotocols.net\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "7e2ed097538c57ff5268e9a6bced7c0b885809c8",
      "tree": "44f9998cc6054d5bef07d6c2979afb0e81ddf13c",
      "parents": [
        "f8a9530939ed87b9a1b1a038b90e355098b679a2"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sun Jan 30 11:59:43 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Jan 31 12:40:52 2011 -0200"
      },
      "message": "perf evlist: Store pointer to the cpu and thread maps\n\nSo that we don\u0027t have to pass it around to the several methods that\nneeds it, simplifying usage.\n\nThere is one case where we don\u0027t have the thread/cpu map in advance,\nwhich is in the parsing routines used by top, stat, record, that we have\nto wait till all options are parsed to know if a cpu or thread list was\npassed to then create those maps.\n\nFor that case consolidate the cpu and thread map creation via\nperf_evlist__create_maps() out of the code in top and record, while also\nproviding a perf_evlist__set_maps() for cases where multiple evlists\nshare maps or for when maps that represent CPU sockets, for instance,\nget crafted out of topology information or subsets of threads in a\nparticular application are to be monitored, providing more granularity\nin specifying which cpus and threads to monitor.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "8115d60c323dd9931b95221c0a392aeddc1d6ef3",
      "tree": "13e75d71c5163c78efc9d8ab33988cc6c7be74a1",
      "parents": [
        "8d50e5b4171a69cf48ca94a1e7c14033d0b4771d"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 29 14:01:45 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 29 16:25:37 2011 -0200"
      },
      "message": "perf tools: Kill event_t typedef, use \u0027union perf_event\u0027 instead\n\nAnd move the event_t methods to the perf_event__ too.\n\nNo code changes, just namespace consistency.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "8d50e5b4171a69cf48ca94a1e7c14033d0b4771d",
      "tree": "6ebf659f92f0770917c7f47c24449ebfe048ce61",
      "parents": [
        "93fc64f14472ae24fd640bf3834a178f59142842"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 29 13:02:00 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 29 16:25:20 2011 -0200"
      },
      "message": "perf tools: Rename \u0027struct sample_data\u0027 to \u0027struct perf_sample\u0027\n\nMaking the namespace more uniform.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "54489c189b1a0c10eaf21c6d2c5916b50442c871",
      "tree": "8b612439f021de6c68a756f482ae2d3ee36b97ac",
      "parents": [
        "3c42258c9a4db70133fa6946a275b62a16792bb5"
      ],
      "author": {
        "name": "Han Pingtian",
        "email": "phan@redhat.com",
        "time": "Tue Jan 25 07:39:00 2011 +0800"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Jan 28 09:21:19 2011 -0200"
      },
      "message": "perf test: Fix return values checking\n\nFixing some cut\u0027n\u0027paste mistakes.\n\nLKML-Reference: \u003c20110124233900.GA3443@epc900.nay.redhat.com\u003e\nSigned-off-by: Han Pingtian \u003cphan@redhat.com\u003e\n[ committer note: I had already removed the CPU_ALLOC calls ]\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "d0dd74e853a0a6f37e8061d6d50be41c7034c54c",
      "tree": "1292a98711611cbc4595785ed17605f20a90800c",
      "parents": [
        "fd78260b5376173faeb17127bd63b3c99a8e8bfb"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Jan 21 13:46:41 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Jan 24 13:17:56 2011 -0200"
      },
      "message": "perf tools: Move event__parse_sample to evsel.c\n\nTo avoid linking more stuff in the python binding I\u0027m working on, future\ncsets will make the sample type be taken from the evsel itself, but for\nthat we need to first have one file per cpu and per sample_type, not a\nsingle perf.data file.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "fd78260b5376173faeb17127bd63b3c99a8e8bfb",
      "tree": "7d3afaca981fee68929c365b39dd302f803e3bda",
      "parents": [
        "17ea1b70a87e28457821318341bead2b45563092"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Jan 18 15:15:24 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Jan 24 10:59:00 2011 -0200"
      },
      "message": "perf threads: Move thread_map to separate file\n\nTo untangle it from struct thread handling, that is tied to symbols, etc.\n\nRight now in the python bindings I\u0027m working on I need just a subset of\nthe util/ files, untangling it allows me to do that.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "de5fa3a8a05cd60f59622e88cfeb90416760d78e",
      "tree": "aeafb466ef056e17c8cf043e396e9e5fcf348a7e",
      "parents": [
        "04391debc3e1195222a4dbb162ace6542dd89c1c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 15 10:42:46 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 22 19:56:31 2011 -0200"
      },
      "message": "perf test: Add test for the evlist mmap routines\n\nThis test will generate random numbers of calls to some getpid syscalls,\nthen establish an mmap for a group of events that are created to monitor\nthese syscalls.\n\nIt will receive the events, using mmap, use its PERF_SAMPLE_ID generated\nsample.id field to map back to its respective perf_evsel instance.\n\nThen it checks if the number of syscalls reported as perf events by the\nkernel corresponds to the number of syscalls made.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "98d77b78504a423fca911a26a17bee00ef2fdda2",
      "tree": "fbb246e981c5358fa28e1eaf3cf92dc753cc4afe",
      "parents": [
        "d2af9687c96f3864178de1860e6d83873aeef224"
      ],
      "author": {
        "name": "Han Pingtian",
        "email": "phan@redhat.com",
        "time": "Sat Jan 15 07:00:50 2011 +0800"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 22 19:56:30 2011 -0200"
      },
      "message": "perf test: check if cpu_map__new() return NULL\n\nIt looks like we should check if cpus is NULL after\n\n\tcpus \u003d cpu_map__new(NULL);\n\nin test__open_syscall_event_on_all_cpus().\n\nLKML-Reference: \u003c20110114230050.GA7011@localhost\u003e\nSigned-off-by: Han Pingtian \u003cphan@redhat.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "d2af9687c96f3864178de1860e6d83873aeef224",
      "tree": "0185f96dc6c6b71b6bc6d649913ca468a650b8d5",
      "parents": [
        "915fce20ecf8f7ff4189d0fff42b62aebf6a57cc"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Jan 14 16:24:49 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 22 19:56:30 2011 -0200"
      },
      "message": "perf test: Check counts on all cpus in test__open_syscall_event_on_all_cpus\n\nWe were bailing out after the first count mismatch, do it in all to see\nif only some CPUs are not getting the expected number of events.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "9d04f1781772e11bd58806391555fc23ebb54377",
      "tree": "9b91c767bed360fcfd2ab6b90794cca784db279f",
      "parents": [
        "f08199d314458610d4ca52f8e86e0a4ec7a7bc54"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Jan 12 00:08:18 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 22 19:56:29 2011 -0200"
      },
      "message": "perf evsel: Allow specifying if the inherit bit should be set\n\nAs this is a per-cpu attribute, we can\u0027t set it up in advance and use it\nfor all the calls.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "f08199d314458610d4ca52f8e86e0a4ec7a7bc54",
      "tree": "80078cf09949aab97d9470f8126dc2b0ecc9656c",
      "parents": [
        "5c581041cf97aa7980b442de81ddea8273d6dcde"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Jan 11 23:42:19 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 22 19:56:28 2011 -0200"
      },
      "message": "perf evsel: Support event groups\n\nThe perf_evsel__open now have an extra boolean argument specifying if\nevent grouping is desired.\n\nThe first file descriptor created on a CPU becomes the group leader.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "9486aa38771661e96fbb51c549b9901b5df609d8",
      "tree": "72cecbff0cb5124c960feeec3a6ac1fff75c649a",
      "parents": [
        "57b84e53171ce672683faf1cab2e660965a6bdaf"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 22 20:37:02 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 22 23:41:57 2011 -0200"
      },
      "message": "perf tools: Fix 64 bit integer format strings\n\nUsing %L[uxd] has issues in some architectures, like on ppc64.  Fix it\nby making our 64 bit integers typedefs of stdint.h types and using\nPRI[ux]64 like, for instance, git does.\n\nReported by Denis Kirjanov that provided a patch for one case, I went\nand changed all cases.\n\nReported-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nTested-by: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nLKML-Reference: \u003c20110120093246.GA8031@hera.kernel.org\u003e\nCc: Denis Kirjanov \u003cdkirjanov@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Pingtian Han \u003cphan@redhat.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "57b84e53171ce672683faf1cab2e660965a6bdaf",
      "tree": "da17c60c30b5adf374b599804d3a28aa5c5280ce",
      "parents": [
        "01bb2dc4e47639c8e7eddb1718720a051bcdc955"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 22 23:14:20 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Sat Jan 22 23:14:20 2011 -0200"
      },
      "message": "perf test: Fix build on older glibcs\n\nWhere we don\u0027t have CPU_ALLOC \u0026 friends. As the tools are being used in older\ndistros where the only allowed change are to replace the kernel, like RHEL4 and\n5.\n\nReported-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.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\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "ffb5e0fb44d0829021a51f972df90166bc9b700e",
      "tree": "d0fc058c018522d940aceb56350e83f7a93a0be3",
      "parents": [
        "b2f8fb237e9cc407a02aca401369c15babae35dd"
      ],
      "author": {
        "name": "Han Pingtian",
        "email": "phan@redhat.com",
        "time": "Thu Jan 20 19:47:07 2011 +0800"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Jan 21 16:44:14 2011 -0200"
      },
      "message": "perf test: Use cpu_map-\u003e[cpu] when setting affinity\n\nWhen some of CPUs are offline:\n\n # cat /sys/devices/system/cpu/online\n 0,6-31\n\nperf test will fail on #3 testcase:\n\n   3: detect open syscall event on all cpus:\n   --- start ---\n   perf_evsel__read_on_cpu: expected to intercept 111 calls on cpu 0, got 681\n   perf_evsel__read_on_cpu: expected to intercept 112 calls on cpu 1, got 117\n   perf_evsel__read_on_cpu: expected to intercept 113 calls on cpu 2, got 118\n   perf_evsel__read_on_cpu: expected to intercept 114 calls on cpu 3, got 119\n   perf_evsel__read_on_cpu: expected to intercept 115 calls on cpu 4, got 120\n   perf_evsel__read_on_cpu: expected to intercept 116 calls on cpu 5, got 121\n   perf_evsel__read_on_cpu: expected to intercept 117 calls on cpu 6, got 122\n   perf_evsel__read_on_cpu: expected to intercept 118 calls on cpu 7, got 123\n   perf_evsel__read_on_cpu: expected to intercept 119 calls on cpu 8, got 124\n   perf_evsel__read_on_cpu: expected to intercept 120 calls on cpu 9, got 125\n   perf_evsel__read_on_cpu: expected to intercept 121 calls on cpu 10, got 126\n   ....\n\nThis patch try to use \u0027cpus-\u003emap[cpu]\u0027 when setting cpu affinity, and\nwill check the return code of sched_setaffinity()\n\nLKML-Reference: \u003c20110120114707.GA11781@hpt.nay.redhat.com\u003e\nSigned-off-by: Han Pingtian \u003cphan@redhat.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "0252208eb52f6fe8731a47804eddc7ba93f60a87",
      "tree": "deaddeda57a630a1d6813ea565fc972c699e2906",
      "parents": [
        "12f7e0364375ba1ba55abcc5ac082b68fb526c80"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Jan 04 11:55:27 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon Jan 10 22:03:26 2011 -0200"
      },
      "message": "perf evsel: Support perf_evsel__open(cpus \u003e 1 \u0026\u0026 threads \u003e 1)\n\nAnd a test for it:\n\n[acme@felicio linux]$ perf test\n 1: vmlinux symtab matches kallsyms: Ok\n 2: detect open syscall event: Ok\n 3: detect open syscall event on all cpus: Ok\n[acme@felicio linux]$\n\nTranslating C the test does:\n\n1. generates different number of open syscalls on each CPU\n   by using sched_setaffinity\n2. Verifies that the expected number of events is generated\n   on each CPU\n\nIt works as expected.\n\nLKML-Reference: \u003cnew-submission\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "23a2f3ab46596d9fd0b0e592d2101bea90970594",
      "tree": "6b3d9e3755a3e71bb0e6b47e62b269e50b6cf37d",
      "parents": [
        "6b01f2c4f6188da50d8fe094e369a9c0390424ab"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "ming.m.lin@intel.com",
        "time": "Fri Jan 07 11:11:09 2011 +0800"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Jan 07 01:44:36 2011 -0200"
      },
      "message": "perf tools: Pass whole attr to event selectors\n\nSince commit 69aad6f1(perf tools: Introduce event selectors), only\nperf_event_attr::type and ::config are passed to event selector, which\nmakes perf tool not work correctly.\n\nFor example, PEBS does not work because perf_event_attr::precise_ip is\nnot passed to the syscall.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLKML-Reference: \u003c1294369869.20563.19.camel@minggr.sh.intel.com\u003e\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "454a3bbe9b75eb8cbddffcf383fbb8e97ea78f52",
      "tree": "d10cbe4a83a625908abf35581922b8ed3d6df2eb",
      "parents": [
        "74d91e3c6a66359bb754fb5d8a5b54fb6ba2f9a6"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Jan 04 10:40:08 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Jan 05 14:52:01 2011 -0200"
      },
      "message": "perf test: Clarify some error reports in the open syscall test\n\nRebooted my devel machine, first thing I ran was perf test, that expects\ndebugfs to be mounted, test fails. Be more clear about it.\n\nAlso add missing newlines and add more informative message when\nsys_perf_event_open fails.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "d854861c4292a4e675a5d3bfd862c5f7421c81e8",
      "tree": "59a4012085b68bb302c61a9ebb8bb81477b59d98",
      "parents": [
        "4eed11d5e24540dc133003b6e8f904cb747ac4bb"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Jan 04 00:16:20 2011 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Jan 04 00:32:06 2011 -0200"
      },
      "message": "perf test: Add test for counting open syscalls\n\nTo test the use of the perf_evsel class on something other than\nthe tools from where we refactored code to create it.\n\nIt calls open() N times and then checks if the event created to\nmonitor it returns N events.\n\n[acme@felicio linux]$ perf test\n 1: vmlinux symtab matches kallsyms: Ok\n 2: detect open syscall event: Ok\n[acme@felicio linux]$\n\nIt does.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Han Pingtian \u003cphan@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "d3678758048308049cdad31ec3eae063be17c0db",
      "tree": "717d3995a21b4b60bf949b087eabb12a7a75a51c",
      "parents": [
        "3b01a413c196c91040d41c86e5b56f76bb369f74"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Tue Dec 21 23:38:37 2010 -0200"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Dec 22 20:31:59 2010 -0200"
      },
      "message": "perf test: Look forward for symbol aliases\n\nNot just before, fixing these false positives:\n\n[acme@mica linux]$ perf test -v 1\n 1: vmlinux symtab matches kallsyms:\n--- start ---\nLooking at the vmlinux_path (6 entries long)\nUsing //lib/modules/2.6.37-rc5-00180-ge06b6bf/build/vmlinux for symbols\n0xffffffff81058dc0: diff name v: sys_vm86old k: sys_ni_syscall\n0xffffffff81058dc0: diff name v: sys_vm86 k: sys_ni_syscall\n0xffffffff81058dc0: diff name v: sys_subpage_prot k: sys_ni_syscall\n0xffffffff810b5f7c: diff name v: probe_kernel_write k: __probe_kernel_write\n0xffffffff810b5fe5: diff name v: probe_kernel_read k: __probe_kernel_read\n0xffffffff811bc380: diff name v: __memset k: memset\n0xffffffff81384a98: diff name v: __sched_text_start k: sleep_on_common\n0xffffffff81386750: diff name v: __sched_text_end k: _raw_spin_trylock\n0xffffffff8138cee8: diff name v: __irqentry_text_start k: do_IRQ\n0xffffffff8138f079: diff name v: __start_notes k: _etext\n0xffffffff8138f079: diff name v: __stop_notes k: _etext\n---- end ----\nvmlinux symtab matches kallsyms: FAILED!\n\n[acme@mica linux]$\n\nSome are weak functions, others are just markers, etc. They get in the rb tree\nwith the same addr, so we need to look around to find the symbol with the same\nname.\n\nWe were looking just at the previous entries with the same addr, look forward\ntoo.\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Han Pingtian \u003cphan@redhat.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: Stephane Eranian \u003ceranian@google.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "8035458fbb567ae138c77a5f710050107c6a7066",
      "tree": "0bd6e3730d96aa5d574e73d500f1820d2b195d8c",
      "parents": [
        "1967936d688c475b85d34d84e09858cf514c893c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon May 17 15:51:10 2010 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Mon May 17 16:22:37 2010 -0300"
      },
      "message": "perf options: Type check OPT_BOOLEAN and fix the offenders\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: Stephane Eranian \u003ceranian@google.com\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": "1c6a800cde3b818fd8320b5d402f2d77d2948c00",
      "tree": "2feb2a077e0dbc8c0cb24a70e92ca1d1daaef817",
      "parents": [
        "5c0541d53ef3897494768decb09eb8f1087953a5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Apr 29 18:58:32 2010 -0300"
      },
      "committer": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Apr 29 18:59:23 2010 -0300"
      },
      "message": "perf test: Initial regression testing command\n\nFirst an example with the first internal test:\n\n[acme@doppio linux-2.6-tip]$ perf test\n 1: vmlinux symtab matches kallsyms: Ok\n\nSo it run just one test, that is \"vmlinux symtab matches kallsyms\", and it was\nsuccessful.\n\nIf we run it in verbose mode, we\u0027ll see details about errors and extra warnings\nfor non-fatal problems:\n\n[acme@doppio linux-2.6-tip]$ perf test -v\n 1: vmlinux symtab matches kallsyms:\n--- start ---\nLooking at the vmlinux_path (5 entries long)\nNo build_id in vmlinux, ignoring it\nNo build_id in /boot/vmlinux, ignoring it\nNo build_id in /boot/vmlinux-2.6.34-rc4-tip+, ignoring it\nUsing /lib/modules/2.6.34-rc4-tip+/build/vmlinux for symbols\nMaps only in vmlinux:\n ffffffff81cb81b1-ffffffff81e1149b 0 [kernel].init.text\n ffffffff81e1149c-ffffffff9fffffff 0 [kernel].exit.text\n ffffffffff600000-ffffffffff6000ff 0 [kernel].vsyscall_0\n ffffffffff600100-ffffffffff6003ff 0 [kernel].vsyscall_fn\n ffffffffff600400-ffffffffff6007ff 0 [kernel].vsyscall_1\n ffffffffff600800-ffffffffffffffff 0 [kernel].vsyscall_2\nMaps in vmlinux with a different name in kallsyms:\n ffffffffff600000-ffffffffff6000ff 0 [kernel].vsyscall_0 in kallsyms as [kernel].0\n ffffffffff600100-ffffffffff6003ff 0 [kernel].vsyscall_fn in kallsyms as:\n*ffffffffff600100-ffffffffff60012f 0 [kernel].2\n ffffffffff600400-ffffffffff6007ff 0 [kernel].vsyscall_1 in kallsyms as [kernel].6\n ffffffffff600800-ffffffffffffffff 0 [kernel].vsyscall_2 in kallsyms as [kernel].8\nMaps only in kallsyms:\n ffffffffff600130-ffffffffff6003ff 0 [kernel].4\n---- end ----\nvmlinux symtab matches kallsyms: Ok\n[acme@doppio linux-2.6-tip]$\n\nIn the above case we only know the name of the non contiguous kernel ranges in\nthe address space when reading the symbol information from the ELF symtab in\nvmlinux.\n\nThe /proc/kallsyms file lack this, we only notice they are separate because\nthere are modules after the kernel and after that more kernel functions, so we\nneed to have a module rbtree backed by the module .ko path to get symtabs in\nthe vmlinux case.\n\nThe tool uses it to match by address to emit appropriate warning, but don\u0027t\nconsiders this fatal.\n\nThe .init.text and .exit.text ines, of course, aren\u0027t in kallsyms, so I left\nthese cases just as extra info in verbose mode.\n\nThe end of the sections also aren\u0027t in kallsyms, so we the symbols layer does\nanother pass and sets the end addresses as the next map start minus one, which\nsometimes pads, causing harmless mismatches.\n\nBut at least the symbols match, tested it by copying /proc/kallsyms to\n/tmp/kallsyms and doing changes to see if they were detected.\n\nThis first test also should serve as a first stab at documenting the\nsymbol library by providing a self contained example that exercises it\ntogether with comments about what is being done.\n\nMore tests to check if actions done on a monitored app, like doing mmaps, etc,\nmakes the kernel generate the expected events should be added next.\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\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    }
  ]
}
