)]}'
{
  "log": [
    {
      "commit": "92bf309a9cd5fedd6c8eefbce0b9a95ada82d0a9",
      "tree": "c52fef4c699f626c0730feccb899eca75c9e4915",
      "parents": [
        "9cffa8d53335d891cc0ecb3824a67118b3ee4b2f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 19 18:11:53 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 20 12:30:30 2009 +0200"
      },
      "message": "perf_counter: Push perf_sample_data through the swcounter code\n\nPush the perf_sample_data further outwards to the swcounter interface,\nto abstract it away some more.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b49a9e7e72103ea91946453c19703a4dfa1994fe",
      "tree": "7e9e74881384c581afca56cc397901f71e904c8b",
      "parents": [
        "0c87197142427063e096f11603543ca874045952"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 19 17:39:33 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 19 17:57:36 2009 +0200"
      },
      "message": "perf_counter: Close race in perf_lock_task_context()\n\nperf_lock_task_context() is buggy because it can return a dead\ncontext.\n\nthe RCU read lock in perf_lock_task_context() only guarantees\nthe memory won\u0027t get freed, it doesn\u0027t guarantee the object is\nvalid (in our case refcount \u003e 0).\n\nTherefore we can return a locked object that can get freed the\nmoment we release the rcu read lock.\n\nperf_pin_task_context() then increases the refcount and does an\nunlock on freed memory.\n\nThat increased refcount will cause a double free, in case it\nstarted out with 0.\n\nAmmend this by including the get_ctx() functionality in\nperf_lock_task_context() (all users already did this later\nanyway), and return a NULL context when the found one is\nalready dead.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e5289d4a181fb6c0b7a7607649af2ffdc491335c",
      "tree": "6c9e9ab46a29c538e4c505d3d3cd135265db08a2",
      "parents": [
        "f5970550d5ccf90453cbd7d260370ea99d1f6513"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 19 13:22:51 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 19 13:43:12 2009 +0200"
      },
      "message": "perf_counter: Simplify and fix task migration counting\n\nThe task migrations counter was causing rare and hard to decypher\nmemory corruptions under load. After a day of debugging and bisection\nwe found that the problem was introduced with:\n\n  3f731ca: perf_counter: Fix cpu migration counter\n\nTurning them off fixes the crashes. Incidentally, the whole\nperf_counter_task_migration() logic can be done simpler as well,\nby injecting a proper sw-counter event.\n\nThis cleanup also fixed the crashes. The precise failure mode is\nnot completely clear yet, but we are clearly not unhappy about\nhaving a fix ;-)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "43a21ea81a2400992561146327c4785ce7f7be38",
      "tree": "d4974c0ff9d7f40291515c5c0cf7e0d51abccb66",
      "parents": [
        "d3a9262e59f7fb83c6d44df3b2b1460ed57d3ea1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Mar 25 19:39:37 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 18 14:46:11 2009 +0200"
      },
      "message": "perf_counter: Add event overlow handling\n\nAlternative method of mmap() data output handling that provides\nbetter overflow management and a more reliable data stream.\n\nUnlike the previous method, that didn\u0027t have any user-\u003ekernel\nfeedback and relied on userspace keeping up, this method relies on\nuserspace writing its last read position into the control page.\n\nIt will ensure new output doesn\u0027t overwrite not-yet read events,\nnew events for which there is no space left are lost and the\noverflow counter is incremented, providing exact event loss\nnumbers.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "75f937f24bd9c003dcb9d7d5509f23459f1f6000",
      "tree": "859d5ebe9b47b952d13873d7a2a580012682aeb0",
      "parents": [
        "613d8602292165f86ba1969784fea01a06d55900"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 15 15:05:12 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 15 15:57:49 2009 +0200"
      },
      "message": "perf_counter: Fix ctx-\u003emutex vs counter-\u003emutex inversion\n\nSimon triggered a lockdep inversion report about us taking ctx-\u003emutex\nvs counter-\u003emutex in inverse orders. Fix that up.\n\nReported-by: Simon Holm Thøgersen \u003codie@cs.aau.dk\u003e\nTested-by: Simon Holm Thøgersen \u003codie@cs.aau.dk\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d5e8da6449d4ef4bac35ea9b9719a2cda02e7b39",
      "tree": "e2de81cecc4b72a7ae35624672d878e4c22bb5e9",
      "parents": [
        "87847b8f26cc7176ec9b239898dc7ce47a94e1a6"
      ],
      "author": {
        "name": "Marti Raudsepp",
        "email": "marti@juffo.org",
        "time": "Sat Jun 13 02:35:01 2009 +0300"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 13 12:58:24 2009 +0200"
      },
      "message": "perf_counter: Fix stack corruption in perf_read_hw\n\nWith PERF_FORMAT_ID, perf_read_hw now needs space for up to 4 values.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "87847b8f26cc7176ec9b239898dc7ce47a94e1a6",
      "tree": "12742fdb5a0569b6b5f6502fabb831314a9431a2",
      "parents": [
        "971738f3669092dd247eaf89658f2685180492a0"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Sat Jun 13 17:06:50 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 13 12:58:24 2009 +0200"
      },
      "message": "perf_counter: Fix atomic_set vs. atomic64_t type mismatch\n\nUsing atomic_set on an atomic64_t variable gives a compiler\nwarning on powerpc, and won\u0027t give the desired result at runtime.\nThis fixes an instance of this error in the perf_counter code.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c18995.20490.979429.244883@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "974802eaa1afdc87e00821df7020a2b3c6fee623",
      "tree": "b5c38bece7f4948fe9d5cf9be02a0042e0fa39f6",
      "parents": [
        "bbd36e5e6aa6f1757c84cdb406b6eb81686d14af"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 12 12:46:55 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 12 14:28:52 2009 +0200"
      },
      "message": "perf_counter: Add forward/backward attribute ABI compatibility\n\nProvide for means of extending the perf_counter_attr in a \u0027natural\u0027 way.\n\nWe allow growing the structure by appending fields at the end by specifying\nthe full structure size inside it.\n\nWhen a new kernel sees a smaller (old) structure, it will 0 pad the tail.\nWhen an old kernel sees a larger (new) structure, it will verify the tail\nconsists of 0s, otherwise fail.\n\nIf we fail due to a size-mismatch, we return -E2BIG and write the kernel\u0027s\nnative attribe size back into the provided structure.\n\nFurthermore, add some attribute verification, so that we\u0027ll fail counter\ncreation when unknown bits are present (PERF_SAMPLE, PERF_FORMAT, or in\nthe __reserved fields).\n\n(This ABI detail is introduced while keeping the existing syscall ABI.)\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "081fad86178ec0f64f32f1bd04cf4aad22714fb9",
      "tree": "314fb9c8c6ab4941ef6f750aa785341e5a372f85",
      "parents": [
        "f1a3c979059b2033d0b1cc4f9ee5c90bf92b5f94"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 17:57:21 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 12 14:28:51 2009 +0200"
      },
      "message": "perf_counter: Remove PERF_TYPE_RAW special casing\n\nThe PERF_TYPE_RAW special case seems superfluous these days. Remove\nit and add it to the switch() stmt like the others.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cca3f454a85ff42d426401bce7ac804541b2bd03",
      "tree": "743b60d71cd4babb65619556db4101595a5fc18b",
      "parents": [
        "a308444ceb576d3089f9ca0dfd097eba6f1e623f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 14:57:55 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:54:45 2009 +0200"
      },
      "message": "perf_counter: Add counter-\u003eid to the throttle event\n\nSo as to be able to distuinguish between multiple counters.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f4dbfa8f3131a84257223393905f7efad0ca5996",
      "tree": "67bb2666868c4449c2fa9ba6dc931721f60deb6c",
      "parents": [
        "1c432d899d32d36371ee4ee310fa3609cf0e5742"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 14:06:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:54:15 2009 +0200"
      },
      "message": "perf_counter: Standardize event names\n\nPure renames only, to PERF_COUNT_HW_* and PERF_COUNT_SW_*.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c432d899d32d36371ee4ee310fa3609cf0e5742",
      "tree": "cd2891fb0c8a03a5b8ac1100b23687d02a981b25",
      "parents": [
        "729ff5e2aaf181f5d3ab849337fce406cd19b1d9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 13:19:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 17:53:41 2009 +0200"
      },
      "message": "perf_counter: Rename enums\n\nRename the perf enums to be in the \u0027perf_\u0027 namespace and strictly\nenumerate the ABI bits.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "df58ab24bf26b166874bfb18b3b5a2e0a8e63179",
      "tree": "388b2fb9d94864c9bd6d6ab9329c31760b7366ae",
      "parents": [
        "0764771dab80d7b84b9a271bee7f1b21a04a3f0c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 11:25:05 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 16:48:38 2009 +0200"
      },
      "message": "perf_counter: Rename perf_counter_limit sysctl\n\nRename perf_counter_limit to perf_counter_max_sample_rate and\nprohibit creation of counters with a known higher sample\nfrequency.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0764771dab80d7b84b9a271bee7f1b21a04a3f0c",
      "tree": "36cb6400e257393208779a95b4868df2f9af6cf6",
      "parents": [
        "106b506c3a8b74daa5751e83ed3e46438fcf9a52"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 11 11:18:36 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 16:48:38 2009 +0200"
      },
      "message": "perf_counter: More paranoia settings\n\nRename the perf_counter_priv knob to perf_counter_paranoia (because\npriv can be read as private, as opposed to privileged) and provide\none more level:\n\n 0 - permissive\n 1 - restrict cpu counters to privilidged contexts\n 2 - restrict kernel-mode code counting and profiling\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e350de37ac9607012fcf9c5314a28fbddf8f43c",
      "tree": "d0f311bcf49d887e6d488ea72b2913cb00eaf910",
      "parents": [
        "df1a132bf3d3508f863336c80a27806a2ac947e0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 10 21:34:59 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 02:39:02 2009 +0200"
      },
      "message": "perf_counter: Accurate period data\n\nWe currently log hw.sample_period for PERF_SAMPLE_PERIOD, however this is\nincorrect. When we adjust the period, it will only take effect the next\ncycle but report it for the current cycle. So when we adjust the period\nfor every cycle, we\u0027re always wrong.\n\nSolve this by keeping track of the last_period.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "df1a132bf3d3508f863336c80a27806a2ac947e0",
      "tree": "2aa26b9c5d0528e816a80bd3b58c9b2442670d5c",
      "parents": [
        "ea1900e571d40a3ce60c835c2f21e1fd8c5cb663"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 10 21:02:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 02:39:02 2009 +0200"
      },
      "message": "perf_counter: Introduce struct for sample data\n\nFor easy extension of the sample data, put it in a structure.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "66fff22483d8542dfb4d61a28d21277bbde321e8",
      "tree": "615c582da3ef5bb75063467e82e9c63b010b535e",
      "parents": [
        "f7b7c26e01e51fe46097e11f179dc71ce7950084"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 10 22:53:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 11 02:39:01 2009 +0200"
      },
      "message": "perf_counter: Annotate exit ctx recursion\n\nEver since Paul fixed it to unclone the context before taking the\nctx-\u003elock this became a false positive, annotate it away.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bd2b5b12849a3446abad0b25e920f86f5480b309",
      "tree": "b0eacf6002f2015c0483390619a3f874bcb7e7d2",
      "parents": [
        "dc81081b2d9a6a9d64dad1bef1e5fc9fb660e53e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 10 13:40:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 10 16:55:26 2009 +0200"
      },
      "message": "perf_counter: More aggressive frequency adjustment\n\nAlso employ the overflow handler to adjust the frequency, this results\nin a stable frequency in about 40~50 samples, instead of that many ticks.\n\nThis also means we can start sampling at a sample period of 1 without\nrunning head-first into the throttle.\n\nIt relies on sched_clock() to accurately measure the time difference\nbetween the overflow NMIs.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8326f44da090d6d304d29b9fdc7fb3e20889e329",
      "tree": "a15b2a2155c64a327b3cdf1da0997755d49390eb",
      "parents": [
        "a21ca2cac582886a3e95c8bb84ff7c52d4d15e54"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 05 20:22:46 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 06 13:14:47 2009 +0200"
      },
      "message": "perf_counter: Implement generalized cache event types\n\nExtend generic event enumeration with the PERF_TYPE_HW_CACHE\nmethod.\n\nThis is a 3-dimensional space:\n\n       { L1-D, L1-I, L2, ITLB, DTLB, BPU } x\n       { load, store, prefetch } x\n       { accesses, misses }\n\nUser-space passes in the 3 coordinates and the kernel provides\na counter. (if the hardware supports that type and if the\ncombination makes sense.)\n\nCombinations that make no sense produce a -EINVAL.\nCombinations that are not supported by the hardware produce -ENOTSUP.\n\nExtend the tools to deal with this, and rewrite the event symbol\nparsing code with various popular aliases for the units and\naccess methods above. So \u0027l1-cache-miss\u0027 and \u0027l1d-read-ops\u0027 are\nboth valid aliases.\n\n( x86 is supported for now, with the Nehalem event table filled in,\n  and with Core2 and Atom having placeholder tables. )\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a21ca2cac582886a3e95c8bb84ff7c52d4d15e54",
      "tree": "d110005d81e46b1afb3204fbaacc132d0ec946ee",
      "parents": [
        "2f335a02b3c816e77e7df1d15b12e3bbb8f4c8f0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 06 09:58:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jun 06 11:37:22 2009 +0200"
      },
      "message": "perf_counter: Separate out attr-\u003etype from attr-\u003econfig\n\nCounter type is a frequently used value and we do a lot of\nbit juggling by encoding and decoding it from attr-\u003econfig.\n\nClean this up by creating a separate attr-\u003etype field.\n\nAlso clean up the various similarly complex user-space bits\nall around counter attribute management.\n\nThe net improvement is significant, and it will be easier\nto add a new major type (which is what triggered this cleanup).\n\n(This changes the ABI, all tools are adapted.)\n(PowerPC build-tested.)\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6a24ed6c6082ec65d19331a4bfa30c0512a1a822",
      "tree": "0d8beed316cf34cd8e986eb2f9b230a29caa6c88",
      "parents": [
        "689802b2d0536e72281dc959ab9cb34fb3c304cf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 05 18:01:29 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 05 18:07:48 2009 +0200"
      },
      "message": "perf_counter: Fix frequency adjustment for \u003c HZ\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "689802b2d0536e72281dc959ab9cb34fb3c304cf",
      "tree": "9be866e918391e86eaecd8a05124f86693504d3f",
      "parents": [
        "ac4bcf889469ffbca88f234d3184452886a47905"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 05 15:05:43 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 05 18:07:47 2009 +0200"
      },
      "message": "perf_counter: Add PERF_SAMPLE_PERIOD\n\nIn order to allow easy tracking of the period, also provide means of\nadding it to the sample data.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac4bcf889469ffbca88f234d3184452886a47905",
      "tree": "7a183aaa0524d2e1ad192f01ac9a48ba2e9b51d6",
      "parents": [
        "136107a76fe5f62906162f730834477b71cf131e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 05 14:44:52 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 05 18:07:47 2009 +0200"
      },
      "message": "perf_counter: Change PERF_SAMPLE_CONFIG into PERF_SAMPLE_ID\n\nThe purpose of PERF_SAMPLE_CONFIG was to identify the counters,\nsince then we\u0027ve added counter ids, use those instead.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "089dd79db9264dc0da602bad45d42f1b3e7d1e07",
      "tree": "017b1efd0bc4f3d15b92ed6fae5dfc3d1b164872",
      "parents": [
        "f7b6eb3fa07269da20dbbde8ba37a0273fdbd9c9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 05 14:04:55 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 05 14:46:41 2009 +0200"
      },
      "message": "perf_counter: Generate mmap events for install_special_mapping()\n\nIn order to track the vdso also generate mmap events for\ninstall_special_mapping().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6dc5f2a41759987e35e757ef00192e7b424563bb",
      "tree": "b7dddd415cd2d4dcf4e060a8fc769903d2a57a01",
      "parents": [
        "76a0f40fd6eff1bce3b91925cea7587b3399fe80"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri Jun 05 12:36:28 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 05 08:22:26 2009 +0200"
      },
      "message": "perf_counter: Fix lockup with interrupting counters\n\nCommit 8e3747c1 (\"perf_counter: Change data head from u32 to u64\")\nchanged the type of \u0027head\u0027 in struct perf_mmap_data from atomic_t\nto atomic_long_t, but missed converting one use of atomic_read on\nit to atomic_long_read.  The effect of using atomic_read rather than\natomic_long_read on powerpc (and other big-endian architectures) is\nthat we get the high half of the 64-bit quantity, resulting in the\ncmpxchg retry loop in perf_output_begin spinning forever as soon as\ndata-\u003ehead becomes non-zero.  On little-endian architectures such as\nx86 we would get the low half, resulting in a lockup once data-\u003ehead\nbecomes greater than 4G.\n\nThis fixes it by using atomic_long_read rather than atomic_read.\n\n[ Impact: fix perfcounter lockup on PowerPC / big-endian systems ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c18984.33964.21541.743096@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d99e9446200c1ffab28cb0e39b76c34a2bfafd06",
      "tree": "10cd2f67f3bffaf8dcec79c197689f440faf9265",
      "parents": [
        "60313ebed739b331e8e61079da27a11ee3b73a30"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 04 17:08:58 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 04 17:51:38 2009 +0200"
      },
      "message": "perf_counter: Remove munmap stuff\n\nIn name of keeping it simple, only track mmap events. Userspace\nwill have to remove old overlapping maps when it encounters them.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60313ebed739b331e8e61079da27a11ee3b73a30",
      "tree": "8476fbd05be709595876360765776dd9ca20608d",
      "parents": [
        "20c84e959ec11b1803d2b2832eef703d5fbe7f7b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 04 16:53:44 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 04 17:51:38 2009 +0200"
      },
      "message": "perf_counter: Add fork event\n\nCreate a fork event so that we can easily clone the comm and\ndso maps without having to generate all those events.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "128f048f0f0d2a477ad2555e7acd2ad15a1b6061",
      "tree": "5927a26da343af2189e47b497eec38680f19294f",
      "parents": [
        "233f0b95ca3a0d1dcbd70bc7e519069a8e10d23e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 03 22:19:36 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 03 23:39:51 2009 +0200"
      },
      "message": "perf_counter: Fix throttling lock-up\n\nThrottling logic is broken and we can lock up with too small\nhw sampling intervals.\n\nMake the throttling code more robust: disable counters even\nif we already disabled them.\n\n( Also clean up whitespace damage i noticed while reading\n  various pieces of code related to throttling. )\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a96bbc16418bc691317f265d6bf98ba941ca9c1a",
      "tree": "136e40a12a94653e8224d6c09d5384b4140e0532",
      "parents": [
        "8229289b607682f90b946ad2c319526303c17700"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 03 14:01:36 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 03 14:57:03 2009 +0200"
      },
      "message": "perf_counter: Fix race in counter initialization\n\nWe need the PID namespace and counter ID available when the\ncounter overflows and we need to generate a sample event.\n\n[ Impact: fix kernel crash with high-frequency sampling ]\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\n[ fixed a further crash and cleaned up the initialization a bit ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d48696f87e3618b0d35bd3e4e9d7c188d51e7de",
      "tree": "633d37089c368c0cc2c4f8120014d57df215bb53",
      "parents": [
        "08247e31ca79b8f02cce47b7e8120797a8726606"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 02 19:22:16 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 02 21:45:33 2009 +0200"
      },
      "message": "perf_counter: Rename perf_counter_hw_event \u003d\u003e perf_counter_attr\n\nThe structure isn\u0027t hw only and when I read event, I think about those\nthings that fall out the other end. Rename the thing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Stephane Eranian \u003ceranian@googlemail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "08247e31ca79b8f02cce47b7e8120797a8726606",
      "tree": "1094dc286ba5033904d07d256f7d739abb4d421d",
      "parents": [
        "8e3747c13c39246c7e46def7cf495d9d21d4c5f9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 02 16:46:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 02 21:45:32 2009 +0200"
      },
      "message": "perf_counter: Add ioctl for changing the sample period/frequency\n\nReported-by: Stephane Eranian \u003ceranian@googlemail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e3747c13c39246c7e46def7cf495d9d21d4c5f9",
      "tree": "6a57736dd784947dbd40b75674effcb63e6696a1",
      "parents": [
        "e4abb5d4f7ddabc1fc7c392cf0a10d8e5868c9ca"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 02 16:16:02 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 02 21:45:32 2009 +0200"
      },
      "message": "perf_counter: Change data head from u32 to u64\n\nSince some people worried that 4G might not be a large enough\nas an mmap data window, extend it to 64 bit for capable\nplatforms.\n\nReported-by: Stephane Eranian \u003ceranian@googlemail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b23f3325ed465f1bd914384884269af0d106778c",
      "tree": "7b263c707e50463f1e1defc60d371b09e352a21a",
      "parents": [
        "8e5799b1ad2a0567fdfaaf0e91b40efee010f2c1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 02 15:13:03 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 02 21:45:30 2009 +0200"
      },
      "message": "perf_counter: Rename various fields\n\nA few renames:\n\n  s/irq_period/sample_period/\n  s/irq_freq/sample_freq/\n  s/PERF_RECORD_/PERF_SAMPLE_/\n  s/record_type/sample_type/\n\nAnd change both the new sample_type and read_format to u64.\n\nReported-by: Stephane Eranian \u003ceranian@googlemail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e5799b1ad2a0567fdfaaf0e91b40efee010f2c1",
      "tree": "bd3f45c348f48411a4496229572643211cbd59b8",
      "parents": [
        "53e111a730ea8b002d57dd226098c12789993329"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 02 15:08:15 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 02 21:45:29 2009 +0200"
      },
      "message": "perf_counter: Add unique counter id\n\nStephan raised the issue that we currently cannot distinguish between\nsimilar counters within a group (PERF_RECORD_GROUP uses the config\nvalue as identifier).\n\nTherefore, generate a new ID for each counter using a global u64\nsequence counter.\n\nReported-by: Stephane Eranian \u003ceranian@googlemail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "709e50cf870e61745b39552044aa6c7c38e4f9e0",
      "tree": "b02ec75a1d67a904effedd39208ecbbcf46b9345",
      "parents": [
        "bf4e0ed3d027ce581be18496036862131b5f32aa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 02 14:13:15 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 02 16:16:25 2009 +0200"
      },
      "message": "perf_counter: Use PID namespaces properly\n\nStop using task_struct::pid and start using PID namespaces.\n\nPIDs will be reported in the PID namespace of the monitoring\ntask at the moment of counter creation.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bf4e0ed3d027ce581be18496036862131b5f32aa",
      "tree": "f55e5c85b286b3ace8b81f3ffc7e48590f4a7020",
      "parents": [
        "3f731ca60afc29f5bcdb5fd2a04391466313a9ac"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Jun 01 17:53:16 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 02 13:10:55 2009 +0200"
      },
      "message": "perf_counter: Remove unused prev_state field\n\nThis removes the prev_state field of struct perf_counter since\nit is now unused.  It was only used by the cpu migration\ncounter, which doesn\u0027t use it any more.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c18979.35052.915728.626374@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f731ca60afc29f5bcdb5fd2a04391466313a9ac",
      "tree": "ca9953e902e5043f62f56db31a0e990eed755e78",
      "parents": [
        "f38b082081bf69a06fffb8b32a175999e2320c5b"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Jun 01 17:52:30 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 02 13:10:54 2009 +0200"
      },
      "message": "perf_counter: Fix cpu migration counter\n\nThis fixes the cpu migration software counter to count\ncorrectly even when contexts get swapped from one task to\nanother.  Previously the cpu migration counts reported by perf\nstat were bogus, ranging from negative to several thousand for\na single \"lat_ctx 2 8 32\" run.  With this patch the cpu\nmigration count reported for \"lat_ctx 2 8 32\" is almost always\nbetween 35 and 44.\n\nThis fixes the problem by adding a call into the perf_counter\ncode from set_task_cpu when tasks are migrated.  This enables\nus to use the generic swcounter code (with some modifications)\nfor the cpu migration counter.\n\nThis modifies the swcounter code to allow a NULL regs pointer\nto be passed in to perf_swcounter_ctx_event() etc.  The cpu\nmigration counter does this because there isn\u0027t necessarily a\npt_regs struct for the task available.  In this case, the\ncounter will not have interrupt capability - but the migration\ncounter didn\u0027t have interrupt capability before, so this is no\nloss.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c18979.35006.819769.416327@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f38b082081bf69a06fffb8b32a175999e2320c5b",
      "tree": "08a26857c77b11a97871b3e1e06ec588033f7cf3",
      "parents": [
        "10a2825514a988225ac2e336c7a9502c4ca57c39"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue Jun 02 21:05:16 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 02 13:10:54 2009 +0200"
      },
      "message": "perf_counter: Initialize per-cpu context earlier on cpu up\n\nThis arranges for perf_counter\u0027s notifier for cpu hotplug\noperations to be called earlier than the migration notifier in\nsched.c by increasing its priority to 20, compared to the 10\nfor the migration notifier.  The reason for doing this is that\na subsequent commit to convert the cpu migration counter to use\nthe generic swcounter infrastructure will add a call into the\nperf_counter subsystem when tasks get migrated.  Therefore the\nperf_counter subsystem needs a chance to initialize its per-cpu\ndata for the new cpu before it can get called from the\nmigration code.\n\nThis also adds a comment to the migration notifier noting that\nits priority needs to be lower than that of the perf_counter\nnotifier.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c18981.1900.792795.836858@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "22a4f650d686eeaac3629dae1c4294381485efdf",
      "tree": "964ba53aa2a26f12cf5ea7b70e5772abeeb24d95",
      "parents": [
        "880ca15adf2392770a68047e7a98e076ff4d21da"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 01 10:13:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 01 19:55:32 2009 +0200"
      },
      "message": "perf_counter: Tidy up style details\n\n - whitespace fixlets\n - make local variable definitions more consistent\n\n[ Impact: cleanup ]\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "880ca15adf2392770a68047e7a98e076ff4d21da",
      "tree": "a1707991a13651bcefb5d92a2ddee9b3470552d9",
      "parents": [
        "25346b93ca079080c9cb23331db5c4f6404e8530"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Jun 01 17:49:14 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 01 10:04:06 2009 +0200"
      },
      "message": "perf_counter: Allow software counters to count while task is not running\n\nThis changes perf_swcounter_match() so that per-task software\ncounters can count events that occur while their associated\ntask is not running.  This will allow us to use the generic\nsoftware counter code for counting task migrations, which can\noccur while the task is not scheduled in.\n\nTo do this, we have to distinguish between the situations where\nthe counter is inactive because its task has been scheduled\nout, and those where the counter is inactive because it is part\nof a group that was not able to go on the PMU.  In the former\ncase we want the counter to count, but not in the latter case.\nIf the context is active, we have the latter case.  If the\ncontext is inactive then we need to know whether the counter\nwas counting when the context was last active, which we can\ndetermine by comparing its -\u003etstamp_stopped timestamp with the\ncontext\u0027s timestamp.\n\nThis also folds three checks in perf_swcounter_match, checking\nperf_event_raw(), perf_event_type() and perf_event_id()\nindividually, into a single 64-bit comparison on\ncounter-\u003ehw_event.config, as an optimization.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c18979.34810.259718.955621@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "25346b93ca079080c9cb23331db5c4f6404e8530",
      "tree": "a444ca96e0c7e32d6c573e680d9365a808f48bfb",
      "parents": [
        "23db9f430be9325a861c7762c1ffadad9ca528a8"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Jun 01 17:48:12 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 01 10:04:05 2009 +0200"
      },
      "message": "perf_counter: Provide functions for locking and pinning the context for a task\n\nThis abstracts out the code for locking the context associated\nwith a task.  Because the context might get transferred from\none task to another concurrently, we have to check after\nlocking the context that it is still the right context for the\ntask and retry if not.  This was open-coded in\nfind_get_context() and perf_counter_init_task().\n\nThis adds a further function for pinning the context for a\ntask, i.e. marking it so it can\u0027t be transferred to another\ntask.  This adds a \u0027pin_count\u0027 field to struct\nperf_counter_context to indicate that a context is pinned,\ninstead of the previous method of setting the parent_gen count\nto all 1s.  Pinning the context with a pin_count is easier to\nundo and doesn\u0027t require saving the parent_gen value.  This\nalso adds a perf_unpin_context() to undo the effect of\nperf_pin_task_context() and changes perf_counter_init_task to\nuse it.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c18979.34748.755674.596386@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bbbee90829304d156c12b171c0ac7e6e1aba8b90",
      "tree": "ec0a1a8c69a5c909a57227915734d1e55678eb5c",
      "parents": [
        "665c2142a94202881a3c11cbaee6506cb10ada2d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 29 14:25:58 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 29 16:21:52 2009 +0200"
      },
      "message": "perf_counter: Ammend cleanup in fork() fail\n\nWhen fork() fails we cannot use perf_counter_exit_task() since that\nassumes to operate on current. Write a new helper that cleans up\nunused/clean contexts.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "665c2142a94202881a3c11cbaee6506cb10ada2d",
      "tree": "14a518bf3afe81e7300a822e9b6f55980ff89d46",
      "parents": [
        "efb3d17240d80e27508d238809168120fe4b93a4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 29 14:51:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 29 16:21:51 2009 +0200"
      },
      "message": "perf_counter: Clean up task_ctx vs interrupts\n\nRemove the local_irq_save() etc.. in routines that are smp function\ncalls, or have IRQs disabled by other means.\n\nThen change the COMM, MMAP, and swcounter context iteration to\ncurrent-\u003eperf_counter_ctxp and RCU, since it really doesn\u0027t matter\nwhich context they iterate, they\u0027re all folded.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "efb3d17240d80e27508d238809168120fe4b93a4",
      "tree": "09c079a4ee4bfa531735b70691b8ab4d06d34e9b",
      "parents": [
        "012b84dae17126d8b5d159173091eb3db5a2bc43"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 29 14:25:58 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 29 16:21:51 2009 +0200"
      },
      "message": "perf_counter: Fix COMM and MMAP events for cpu wide counters\n\nCommit a63eaf34ae6 (\"perf_counter: Dynamically allocate tasks\u0027\nperf_counter_context struct\") broke COMM and MMAP notification for\ncpu wide counters by dropping out early if there was no task context,\nthereby also not iterating the cpu context.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "012b84dae17126d8b5d159173091eb3db5a2bc43",
      "tree": "0b5f85b66084c3186a8e4c56d9ed074d3b2593ee",
      "parents": [
        "3f4dee227348daac32f36daad9a91059efd0723e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 17 11:08:41 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 29 14:28:37 2009 +0200"
      },
      "message": "perf_counter: Robustify counter-free logic\n\nThis fixes a nasty crash and highlights a bug that we were\nfreeing failed-fork() counters incorrectly.\n\n(the fix for that will come separately)\n\n[ Impact: fix crashes/lockups with inherited counters ]\n\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f4dee227348daac32f36daad9a91059efd0723e",
      "tree": "9aa0311f0c4f961a2c2cab1d2fbb0994cff1b6d9",
      "parents": [
        "ad3a37de81c45f6c20d410ece86004b98f7b6d84"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 29 11:25:09 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 29 14:28:36 2009 +0200"
      },
      "message": "perf_counter: Fix cpuctx-\u003etask_ctx races\n\nPeter noticed that we are sometimes reading cpuctx-\u003etask_ctx with\ninterrupts enabled.\n\nNoticed-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad3a37de81c45f6c20d410ece86004b98f7b6d84",
      "tree": "6748194aa66d1648232dc9767cba44615d2e14fd",
      "parents": [
        "be1ac0d81d0e3ab655f8c8ade31fb860ef6aa186"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri May 29 16:06:20 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 29 11:02:46 2009 +0200"
      },
      "message": "perf_counter: Don\u0027t swap contexts containing locked mutex\n\nPeter Zijlstra pointed out that under some circumstances, we can take\nthe mutex in a context or a counter and then swap that context or\ncounter to another task, potentially leading to lock order inversions\nor the mutexes not protecting what they are supposed to protect.\n\nThis fixes the problem by making sure that we never take a mutex in a\ncontext or counter which could get swapped to another task.  Most of\nthe cases where we take a mutex is on a top-level counter or context,\ni.e. a counter which has an fd associated with it or a context that\ncontains such a counter.  This adds WARN_ON_ONCE statements to verify\nthat.\n\nThe two cases where we need to take the mutex on a context that is a\nclone of another are in perf_counter_exit_task and\nperf_counter_init_task.  The perf_counter_exit_task case is solved by\nuncloning the context before starting to remove the counters from it.\nThe perf_counter_init_task is a little trickier; we temporarily\ndisable context swapping for the parent (forking) task by setting its\nctx-\u003eparent_gen to the all-1s value after locking the context, if it\nis a cloned context, and restore the ctx-\u003eparent_gen value at the end\nif the context didn\u0027t get uncloned in the meantime.\n\nThis also moves the increment of the context generation count to be\nwithin the same critical section, protected by the context mutex, that\nadds the new counter to the context.  That way, taking the mutex is\nsufficient to ensure that both the counter list and the generation\ncount are stable.\n\n[ Impact: fix hangs, races with inherited and PID counters ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c18975.31580.520676.619896@drongo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c93f7669098eb97c5376e5396e3dfb734c17df4f",
      "tree": "0c17f812277320fcefd4f441e1db7a7f862752a5",
      "parents": [
        "63299f057fbce47da895e8865cba7e9c3eb01a20"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu May 28 22:18:17 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 28 15:03:50 2009 +0200"
      },
      "message": "perf_counter: Fix race in attaching counters to tasks and exiting\n\nCommit 564c2b21 (\"perf_counter: Optimize context switch between\nidentical inherited contexts\") introduced a race where it is possible\nthat a counter being attached to a task could get attached to the\nwrong task, if the task is one that has inherited its context from\nanother task via fork.  This happens because the optimized context\nswitch could switch the context to another task after find_get_context\nhas read task-\u003eperf_counter_ctxp.  In fact, it\u0027s possible that the\ncontext could then get freed, if the other task then exits.\n\nThis fixes the problem by protecting both the context switch and the\ncritical code in find_get_context with spinlocks.  The context switch\nlocks the cxt-\u003elock of both the outgoing and incoming contexts before\nswapping them.  That means that once code such as find_get_context\nhas obtained the spinlock for the context associated with a task,\nthe context can\u0027t get swapped to another task.  However, the context\nmay have been swapped in the interval between reading\ntask-\u003eperf_counter_ctxp and getting the lock, so it is necessary to\ncheck and retry.\n\nTo make sure that none of the contexts being looked at in\nfind_get_context can get freed, this changes the context freeing code\nto use RCU.  Thus an rcu_read_lock() is sufficient to ensure that no\ncontexts can get freed.  This part of the patch is lifted from a patch\nposted by Peter Zijlstra.\n\nThis also adds a check to make sure that we can\u0027t add a counter to a\ntask that is exiting.\n\nThere is also a race between perf_counter_exit_task and\nfind_get_context; this solves the race by moving the get_ctx that\nwas in perf_counter_alloc into the locked region in find_get_context,\nso that once find_get_context has got the context for a task, it\nwon\u0027t get freed even if the task calls perf_counter_exit_task.  It\ndoesn\u0027t matter if new top-level (non-inherited) counters get attached\nto the context after perf_counter_exit_task has detached the context\nfrom the task.  They will just stay there and never get scheduled in\nuntil the counters\u0027 fds get closed, and then perf_release will remove\nthem from the context and eventually free the context.\n\nWith this, we are now doing the unclone in find_get_context rather\nthan when a counter was added to or removed from a context (actually,\nwe were missing the unclone_ctx() call when adding a counter to a\ncontext).  We don\u0027t need to unclone when removing a counter from a\ncontext because we have no way to remove a counter from a cloned\ncontext.\n\nThis also takes out the smp_wmb() in find_get_context, which Peter\nZijlstra pointed out was unnecessary because the cmpxchg implies a\nfull barrier anyway.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c18974.33033.667187.273886@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "329d876d6fd326109f191ae0fb2798b8834fb70b",
      "tree": "9e8a071a9c89be06a3b6dd526ec42f08eca16ae3",
      "parents": [
        "aaba98018b8295dfa2119345d17f833d74448cd0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 26 08:10:00 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 26 09:54:13 2009 +0200"
      },
      "message": "perf_counter: Initialize -\u003eoncpu properly\n\nThis shouldnt matter normally (and i have not seen any\nmisbehavior), because active counters always have a\nproper -\u003eoncpu value - but nevertheless initialize the\nfield properly to -1.\n\n[ Impact: cleanup ]\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0127c3ea082ee9f1034789b978dfc7fd83254617",
      "tree": "d3d9f8bc4544359f2aa6f65b4881ffa625c93742",
      "parents": [
        "53b441a565bf4036ab49c8ea04c5ad06ace7dd6b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 25 22:03:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 25 22:02:23 2009 +0200"
      },
      "message": "perf_counter: fix warning \u0026 lockup\n\n - remove bogus warning\n - fix wakeup from NMI path lockup\n - also fix up whitespace noise in perf_counter.h\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090525153931.703093461@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a78ac3258782f3e64cb40beb5990808e1febcc0c",
      "tree": "692462a974e4c26bdb7fa7fae727a6b326a0eeee",
      "parents": [
        "48e22d56ecdeddd1ffb42a02fccba5c6ef42b133"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 25 17:39:05 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 25 21:41:12 2009 +0200"
      },
      "message": "perf_counter: Generic per counter interrupt throttle\n\nIntroduce a generic per counter interrupt throttle.\n\nThis uses the perf_counter_overflow() quick disable to throttle a specific\ncounter when its going too fast when a pmu-\u003eunthrottle() method is provided\nwhich can undo the quick disable.\n\nPower needs to implement both the quick disable and the unthrottle method.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090525153931.703093461@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "10989fb2451763fae6f42d85fa6106c8fd010cf5",
      "tree": "34c1b66501633ac3c0c287f72611eccc90ee1bc2",
      "parents": [
        "6ab423e0eaca827fbd201ca4ae7d4f8573a366b2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 25 14:45:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 25 14:55:01 2009 +0200"
      },
      "message": "perf_counter: Fix PERF_COUNTER_CONTEXT_SWITCHES for cpu counters\n\nIngo noticed that cpu counters had 0 context switches, even though\nthere was plenty scheduling on the cpu.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090525124600.419025548@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6ab423e0eaca827fbd201ca4ae7d4f8573a366b2",
      "tree": "072d227934bf213adf5c0dd022369e14f273dc48",
      "parents": [
        "771d7cde144d87f2d1fbee4da3c6234d61f7e42a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 25 14:45:27 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 25 14:55:01 2009 +0200"
      },
      "message": "perf_counter: Propagate inheritance failures down the fork() path\n\nFail fork() when we fail inheritance for some reason (-ENOMEM most likely).\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090525124600.324656474@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "771d7cde144d87f2d1fbee4da3c6234d61f7e42a",
      "tree": "21d15c924924b5f6cb91dd2b103337253b46ed58",
      "parents": [
        "e527ea312f31e88a7fa5472b71db71c565b0d44f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 25 14:45:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 25 14:55:00 2009 +0200"
      },
      "message": "perf_counter: Make pctrl() affect inherited counters too\n\nPaul noted that the new ptcrl() didn\u0027t work on child counters.\n\nReported-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090525124600.203151469@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a3862d3f814ce7dfca9eed56ac23d29db3aee8d5",
      "tree": "5cbc8c2cb9b11acb5bc21009d27da3978c1c0db2",
      "parents": [
        "c2990a2a582d73562d4dcf2502c39892a19a691d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 24 09:02:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 24 09:02:37 2009 +0200"
      },
      "message": "perf_counter: Increase mmap limit\n\nIn a default \u0027perf top\u0027 run the tool will create a counter for\neach online CPU. With enough CPUs this will eventually exhaust\nthe default limit.\n\nSo scale it up with the number of online CPUs.\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "475c55797323b67435083f6e2eb8ee670f6410ec",
      "tree": "2aad9762396b01ccf92581489e70bd3689246f19",
      "parents": [
        "082ff5a2767a0679ee543f14883adbafb631ffbe"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 23 18:29:01 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 24 08:24:30 2009 +0200"
      },
      "message": "perf_counter: Remove perf_counter_context::nr_enabled\n\nnow that pctrl() no longer disables other people\u0027s counters,\nremove the PMU cache code that deals with that.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090523163013.032998331@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "082ff5a2767a0679ee543f14883adbafb631ffbe",
      "tree": "5ddf792ed3f80b17bc427edea1dc1d4b4303b4f6",
      "parents": [
        "aa9c67f53d1969cf1db4c9c2db3a78c4ceb96469"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 23 18:29:00 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 24 08:24:08 2009 +0200"
      },
      "message": "perf_counter: Change pctrl() behaviour\n\nInstead of en/dis-abling all counters acting on a particular\ntask, en/dis- able all counters we created.\n\n[ v2: fix crash on first counter enable ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090523163012.916937244@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa9c67f53d1969cf1db4c9c2db3a78c4ceb96469",
      "tree": "7f2d3face393454dc58a6e811bb294714db948a6",
      "parents": [
        "1a482f38c5aafeb3576079a38a5b21b46619f3d2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 23 18:28:59 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 23 19:37:47 2009 +0200"
      },
      "message": "perf_counter: Simplify context cleanup\n\nUse perf_counter_remove_from_context() to remove counters from\nthe context.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090523163012.796275849@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "682076ae1de0aba9c2da509f7b19dc03e30a6e1f",
      "tree": "63e48b23f8ef4e16b79c9b767def13e7795eb440",
      "parents": [
        "fccc714b3148ab9741fafc1e90c3876d50df6093"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 23 18:28:57 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 23 19:37:46 2009 +0200"
      },
      "message": "perf_counter: Sanitize context locking\n\nEnsure we\u0027re consistent with the context locks.\n\n context-\u003emutex\n   context-\u003elock\n     list_{add,del}_counter();\n\nso that either lock is sufficient to stabilize the context.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090523163012.618790733@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fccc714b3148ab9741fafc1e90c3876d50df6093",
      "tree": "e536e75faf15f4db8ec653e7303ad9f41cc5c186",
      "parents": [
        "e220d2dcb944c5c488b6855d15ec66d76900514f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 23 18:28:56 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 23 19:37:45 2009 +0200"
      },
      "message": "perf_counter: Sanitize counter-\u003emutex\n\ns/counter-\u003emutex/counter-\u003echild_mutex/ and make sure its only\nused to protect child_list.\n\nThe usage in __perf_counter_exit_task() doesn\u0027t appear to be\nproblematic since ctx-\u003emutex also covers anything related to fd\ntear-down.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090523163012.533186528@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e220d2dcb944c5c488b6855d15ec66d76900514f",
      "tree": "bbaa8ead4276d59d6d73d49a28fd6e1e1ed3259a",
      "parents": [
        "c6eb13847ba081552d2af644219bddeff7110caf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 23 18:28:55 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 23 19:37:44 2009 +0200"
      },
      "message": "perf_counter: Fix dynamic irq_period logging\n\nWe call perf_adjust_freq() from perf_counter_task_tick() which\nis is called under the rq-\u003elock causing lock recursion.\nHowever, it\u0027s no longer required to be called under the\nrq-\u003elock, so remove it from under it.\n\nAlso, fix up some related comments.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090523163012.476197912@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "564c2b210add41df9a3a5aaa365c1d97cff6110d",
      "tree": "2fe54df816abfe8c6010d277c79fbe18aa5c4082",
      "parents": [
        "a63eaf34ae60bdb067a354cc8def2e8f4a01f5f4"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri May 22 14:27:22 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 22 12:18:20 2009 +0200"
      },
      "message": "perf_counter: Optimize context switch between identical inherited contexts\n\nWhen monitoring a process and its descendants with a set of inherited\ncounters, we can often get the situation in a context switch where\nboth the old (outgoing) and new (incoming) process have the same set\nof counters, and their values are ultimately going to be added together.\nIn that situation it doesn\u0027t matter which set of counters are used to\ncount the activity for the new process, so there is really no need to\ngo through the process of reading the hardware counters and updating\nthe old task\u0027s counters and then setting up the PMU for the new task.\n\nThis optimizes the context switch in this situation.  Instead of\nscheduling out the perf_counter_context for the old task and\nscheduling in the new context, we simply transfer the old context\nto the new task and keep using it without interruption.  The new\ncontext gets transferred to the old task.  This means that both\ntasks still have a valid perf_counter_context, so no special case\nis introduced when the old task gets scheduled in again, either on\nthis CPU or another CPU.\n\nThe equivalence of contexts is detected by keeping a pointer in\neach cloned context pointing to the context it was cloned from.\nTo cope with the situation where a context is changed by adding\nor removing counters after it has been cloned, we also keep a\ngeneration number on each context which is incremented every time\na context is changed.  When a context is cloned we take a copy\nof the parent\u0027s generation number, and two cloned contexts are\nequivalent only if they have the same parent and the same\ngeneration number.  In order that the parent context pointer\nremains valid (and is not reused), we increment the parent\ncontext\u0027s reference count for each context cloned from it.\n\nSince we don\u0027t have individual fds for the counters in a cloned\ncontext, the only thing that can make two clones of a given parent\ndifferent after they have been cloned is enabling or disabling all\ncounters with prctl.  To account for this, we keep a count of the\nnumber of enabled counters in each context.  Two contexts must have\nthe same number of enabled counters to be considered equivalent.\n\nHere are some measurements of the context switch time as measured with\nthe lat_ctx benchmark from lmbench, comparing the times obtained with\nand without this patch series:\n\n\t\t-----Unmodified-----\t\tWith this patch series\nCounters:\tnone\t2 HW\t4H+4S\tnone\t2 HW\t4H+4S\n\n2 processes:\nAverage\t\t3.44\t6.45\t11.24\t3.12\t3.39\t3.60\nSt dev\t\t0.04\t0.04\t0.13\t0.05\t0.17\t0.19\n\n8 processes:\nAverage\t\t6.45\t8.79\t14.00\t5.57\t6.23\t7.57\nSt dev\t\t1.27\t1.04\t0.88\t1.42\t1.46\t1.42\n\n32 processes:\nAverage\t\t5.56\t8.43\t13.78\t5.28\t5.55\t7.15\nSt dev\t\t0.41\t0.47\t0.53\t0.54\t0.57\t0.81\n\nThe numbers are the mean and standard deviation of 20 runs of\nlat_ctx.  The \"none\" columns are lat_ctx run directly without any\ncounters.  The \"2 HW\" columns are with lat_ctx run under perfstat,\ncounting cycles and instructions.  The \"4H+4S\" columns are lat_ctx run\nunder perfstat with 4 hardware counters and 4 software counters\n(cycles, instructions, cache references, cache misses, task\nclock, context switch, cpu migrations, and page faults).\n\n[ Impact: performance optimization of counter context-switches ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c18966.10666.517218.332164@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a63eaf34ae60bdb067a354cc8def2e8f4a01f5f4",
      "tree": "9e81e5e0299bd524b3d07c17a05760e33c7d58a0",
      "parents": [
        "34adc8062227f41b04ade0ff3fbd1dbe3002669e"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri May 22 14:17:31 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 22 12:18:19 2009 +0200"
      },
      "message": "perf_counter: Dynamically allocate tasks\u0027 perf_counter_context struct\n\nThis replaces the struct perf_counter_context in the task_struct with\na pointer to a dynamically allocated perf_counter_context struct.  The\nmain reason for doing is this is to allow us to transfer a\nperf_counter_context from one task to another when we do lazy PMU\nswitching in a later patch.\n\nThis has a few side-benefits: the task_struct becomes a little smaller,\nwe save some memory because only tasks that have perf_counters attached\nget a perf_counter_context allocated for them, and we can remove the\ninclusion of \u003clinux/perf_counter.h\u003e in sched.h, meaning that we don\u0027t\nend up recompiling nearly everything whenever perf_counter.h changes.\n\nThe perf_counter_context structures are reference-counted and freed\nwhen the last reference is dropped.  A context can have references\nfrom its task and the counters on its task.  Counters can outlive the\ntask so it is possible that a context will be freed well after its\ntask has exited.\n\nContexts are allocated on fork if the parent had a context, or\notherwise the first time that a per-task counter is created on a task.\nIn the latter case, we set the context pointer in the task struct\nlocklessly using an atomic compare-and-exchange operation in case we\nraced with some other task in creating a context for the subject task.\n\nThis also removes the task pointer from the perf_counter struct.  The\ntask pointer was not used anywhere and would make it harder to move a\ncontext from one task to another.  Anything that needed to know which\ntask a counter was attached to was already using counter-\u003ectx-\u003etask.\n\nThe __perf_counter_init_context function moves up in perf_counter.c\nso that it can be called from find_get_context, and now initializes\nthe refcount, but is otherwise unchanged.\n\nWe were potentially calling list_del_counter twice: once from\n__perf_counter_exit_task when the task exits and once from\n__perf_counter_remove_from_context when the counter\u0027s fd gets closed.\nThis adds a check in list_del_counter so it doesn\u0027t do anything if\nthe counter has already been removed from the lists.\n\nSince perf_counter_task_sched_in doesn\u0027t do anything if the task doesn\u0027t\nhave a context, and leaves cpuctx-\u003etask_ctx \u003d NULL, this adds code to\n__perf_install_in_context to set cpuctx-\u003etask_ctx if necessary, i.e. in\nthe case where the current task adds the first counter to itself and\nthus creates a context for itself.\n\nThis also adds similar code to __perf_counter_enable to handle a\nsimilar situation which can arise when the counters have been disabled\nusing prctl; that also leaves cpuctx-\u003etask_ctx \u003d NULL.\n\n[ Impact: refactor counter context management to prepare for new feature ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c18966.10075.781053.231153@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "34adc8062227f41b04ade0ff3fbd1dbe3002669e",
      "tree": "9af82847422445f838dbe6a8850f456352922910",
      "parents": [
        "afedadf23a2c90f3ba0d963282cbe6a6be129494"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 20 20:13:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 20 20:12:54 2009 +0200"
      },
      "message": "perf_counter: Fix context removal deadlock\n\nDisable the PMU globally before removing a counter from a\ncontext. This fixes the following lockup:\n\n[22081.741922] ------------[ cut here ]------------\n[22081.746668] WARNING: at arch/x86/kernel/cpu/perf_counter.c:803 intel_pmu_handle_irq+0x9b/0x24e()\n[22081.755624] Hardware name: X8DTN\n[22081.758903] perfcounters: irq loop stuck!\n[22081.762985] Modules linked in:\n[22081.766136] Pid: 11082, comm: perf Not tainted 2.6.30-rc6-tip #226\n[22081.772432] Call Trace:\n[22081.774940]  \u003cNMI\u003e  [\u003cffffffff81019aed\u003e] ? intel_pmu_handle_irq+0x9b/0x24e\n[22081.781993]  [\u003cffffffff81019aed\u003e] ? intel_pmu_handle_irq+0x9b/0x24e\n[22081.788368]  [\u003cffffffff8104505c\u003e] ? warn_slowpath_common+0x77/0xa3\n[22081.794649]  [\u003cffffffff810450d3\u003e] ? warn_slowpath_fmt+0x40/0x45\n[22081.800696]  [\u003cffffffff81019aed\u003e] ? intel_pmu_handle_irq+0x9b/0x24e\n[22081.807080]  [\u003cffffffff814d1a72\u003e] ? perf_counter_nmi_handler+0x3f/0x4a\n[22081.813751]  [\u003cffffffff814d2d09\u003e] ? notifier_call_chain+0x58/0x86\n[22081.819951]  [\u003cffffffff8105b250\u003e] ? notify_die+0x2d/0x32\n[22081.825392]  [\u003cffffffff814d1414\u003e] ? do_nmi+0x8e/0x242\n[22081.830538]  [\u003cffffffff814d0f0a\u003e] ? nmi+0x1a/0x20\n[22081.835342]  [\u003cffffffff8117e102\u003e] ? selinux_file_free_security+0x0/0x1a\n[22081.842105]  [\u003cffffffff81018793\u003e] ? x86_pmu_disable_counter+0x15/0x41\n[22081.848673]  \u003c\u003cEOE\u003e\u003e  [\u003cffffffff81018f3d\u003e] ? x86_pmu_disable+0x86/0x103\n[22081.855512]  [\u003cffffffff8108fedd\u003e] ? __perf_counter_remove_from_context+0x0/0xfe\n[22081.862926]  [\u003cffffffff8108fcbc\u003e] ? counter_sched_out+0x30/0xce\n[22081.868909]  [\u003cffffffff8108ff36\u003e] ? __perf_counter_remove_from_context+0x59/0xfe\n[22081.876382]  [\u003cffffffff8106808a\u003e] ? smp_call_function_single+0x6c/0xe6\n[22081.882955]  [\u003cffffffff81091b96\u003e] ? perf_release+0x86/0x14c\n[22081.888600]  [\u003cffffffff810c4c84\u003e] ? __fput+0xe7/0x195\n[22081.893718]  [\u003cffffffff810c213e\u003e] ? filp_close+0x5b/0x62\n[22081.899107]  [\u003cffffffff81046a70\u003e] ? put_files_struct+0x64/0xc2\n[22081.905031]  [\u003cffffffff8104841a\u003e] ? do_exit+0x1e2/0x6ef\n[22081.910360]  [\u003cffffffff814d0a60\u003e] ? _spin_lock_irqsave+0x9/0xe\n[22081.916292]  [\u003cffffffff8104898e\u003e] ? do_group_exit+0x67/0x93\n[22081.921953]  [\u003cffffffff810489cc\u003e] ? sys_exit_group+0x12/0x16\n[22081.927759]  [\u003cffffffff8100baab\u003e] ? system_call_fastpath+0x16/0x1b\n[22081.934076] ---[ end trace 3a3936ce3e1b4505 ]---\n\nAnd could potentially also fix the lockup reported by Marcelo Tosatti.\n\nAlso, print more debug info in case of a detected lockup.\n\n[ Impact: fix lockup ]\n\nReported-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "afedadf23a2c90f3ba0d963282cbe6a6be129494",
      "tree": "3fa284b19482158c0a8dab8fa79bf41180ebd256",
      "parents": [
        "b986d7ec0f8b7ea3cc7366d80a137fbe839df227"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 20 12:21:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 20 12:43:34 2009 +0200"
      },
      "message": "perf_counter: Optimize sched in/out of counters\n\nAvoid a function call for !group counters by directly calling the counter\nfunction.\n\n[ Impact: micro-optimize the code ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090520102553.511933670@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b986d7ec0f8b7ea3cc7366d80a137fbe839df227",
      "tree": "ad3e9c473b8790f800cbf9e13e3fee01230def52",
      "parents": [
        "26b119bc811a73bac6ecf95bdf284bf31c7955f0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 20 12:21:21 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 20 12:43:33 2009 +0200"
      },
      "message": "perf_counter: Optimize disable of time based sw counters\n\nCurrently we call hrtimer_cancel() unconditionally on disable of time based\nsoftware counters. Avoid when possible.\n\n[ Impact: micro-optimize the code ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090520102553.388185031@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "26b119bc811a73bac6ecf95bdf284bf31c7955f0",
      "tree": "cc8b39284012c27c4014c253655cff7ee95f79ce",
      "parents": [
        "d7b629a34fc4134a43c730b5f0197855dc4948d0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 20 12:21:20 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 20 12:43:33 2009 +0200"
      },
      "message": "perf_counter: Log irq_period changes\n\nFor the dynamic irq_period code, log whenever we change the period so that\nanalyzing code can normalize the event flow.\n\n[ Impact: add new feature to allow more precise profiling ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090520102553.298769743@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d7b629a34fc4134a43c730b5f0197855dc4948d0",
      "tree": "040157a5fa338216644f6866e20b3994bd4eaf01",
      "parents": [
        "c44d70a340554a33071339064a303ac0f1a31623"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 20 12:21:19 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 20 12:43:32 2009 +0200"
      },
      "message": "perf_counter: Solve the rotate_ctx vs inherit race differently\n\nInstead of disabling RR scheduling of the counters, use a different list\nthat does not get rotated to iterate the counters on inheritance.\n\n[ Impact: cleanup, optimization ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c20090520102553.237504544@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c44d70a340554a33071339064a303ac0f1a31623",
      "tree": "a620d5b82a07b2e2c8c7c57d2e81d5bfdcdd4c25",
      "parents": [
        "33b2fb303fe7f6b08bbb32f708e67b96eaa94a7a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 17 11:24:08 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 20 00:22:30 2009 +0200"
      },
      "message": "perf_counter: fix counter inheritance race\n\nContext rotation should not occur when we are in the middle of\nwalking the counter list when inheriting counters ...\n\n[ Impact: fix occasionally incorrect perf stat results ]\n\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "33b2fb303fe7f6b08bbb32f708e67b96eaa94a7a",
      "tree": "32ab4cb3cca6c61a2d6cf351bb8f732045464e28",
      "parents": [
        "b68f1d2e7aa21029d73c7d453a8046e95d351740"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 17 11:08:41 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed May 20 00:22:24 2009 +0200"
      },
      "message": "perf_counter: fix counter freeing logic\n\nFix counter lifetime bugs which explain the crashes reported by\nMarcelo Tosatti and Arnaldo Carvalho de Melo.\n\nThe new rule is: flushing + freeing is only done for a task\u0027s\nown counters, never for other tasks.\n\n[ Impact: fix crashes/lockups with inherited counters ]\n\nReported-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nReported-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8bc2095951517e2c74b8aeeca4685ddd6b16ed4b",
      "tree": "6342bfb21b642b22bd8f2d39f99faf4134de0cdb",
      "parents": [
        "0bbd0d4be8d5d3676c126e06e3c75c16def00441"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 15 20:45:59 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun May 17 07:52:23 2009 +0200"
      },
      "message": "perf_counter: Fix inheritance cleanup code\n\nClean up code that open-coded the list_{add,del}_counter() code in\n__perf_counter_exit_task() which consequently diverged. This could\nlead to software counter crashes.\n\nAlso, fold the ctx-\u003enr_counter inc/dec into those functions and clean\nup some of the related code.\n\n[ Impact: fix potential sw counter crash, cleanup ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9d23a90a67261e73b2fcac04d8ca963c6b496afb",
      "tree": "81d453624f1834380740d3065cf022fe3500aad6",
      "parents": [
        "ef923214a4816c289e4af2d67a9ebb1a31e4ac61"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu May 14 21:48:08 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 15 16:38:56 2009 +0200"
      },
      "message": "perf_counter: allow arch to supply event misc flags and instruction pointer\n\nAt present the values we put in overflow events for the misc\nflags indicating processor mode and the instruction pointer are\nobtained using the standard user_mode() and\ninstruction_pointer() functions. Those functions tell you where\nthe performance monitor interrupt was taken, which might not be\nexactly where the counter overflow occurred, for example\nbecause interrupts were disabled at the point where the\noverflow occurred, or because the processor had many\ninstructions in flight and chose to complete some more\ninstructions beyond the one that caused the counter overflow.\n\nSome architectures (e.g. powerpc) can supply more precise\ninformation about where the counter overflow occurred and the\nprocessor mode at that point.  This introduces new functions,\nperf_misc_flags() and perf_instruction_pointer(), which arch\ncode can override to provide more precise information if\navailable.  They have default implementations which are\nidentical to the existing code.\n\nThis also adds a new misc flag value,\nPERF_EVENT_MISC_HYPERVISOR, for the case where a counter\noverflow occurred in the hypervisor.  We encode the processor\nmode in the 2 bits previously used to indicate user or kernel\nmode; the values for user and kernel mode are unchanged and\nhypervisor mode is indicated by both bits being set.\n\n[ Impact: generalize perfcounter core facilities ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c18956.1272.818511.561835@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e569d36729c8105ae066a9b105068305442cc77",
      "tree": "ce18dba8c5635693cdeb4af3652ba77c4e98abde",
      "parents": [
        "f5456a6b056b709282e87a68b4c1b81ac2e866fa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 15 15:37:47 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 15 15:40:25 2009 +0200"
      },
      "message": "perf_counter: frequency based adaptive irq_period, 32-bit fix\n\nfix:\n\n  kernel/built-in.o: In function `perf_counter_alloc\u0027:\n  perf_counter.c:(.text+0x7ddc7): undefined reference to `__udivdi3\u0027\n\n[ Impact: build fix on 32-bit systems ]\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c1242394667.6642.1887.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "60db5e09c13109b13830cc9dcae688003fd39e79",
      "tree": "ac923b89c28d735d2460216202d960e9c6237be0",
      "parents": [
        "789f90fcf6b0b54e655740e9396c954378542c79"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 15 15:19:28 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 15 15:26:56 2009 +0200"
      },
      "message": "perf_counter: frequency based adaptive irq_period\n\nInstead of specifying the irq_period for a counter, provide a target interrupt\nfrequency and dynamically adapt the irq_period to match this frequency.\n\n[ Impact: new perf-counter attribute/feature ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c20090515132018.646195868@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "789f90fcf6b0b54e655740e9396c954378542c79",
      "tree": "dccfe1ffac1202729238385923e74a8b5ebab979",
      "parents": [
        "548e1ddf255b4ebfb4ef20c08936fd8d4deb3bd9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 15 15:19:27 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 15 15:26:56 2009 +0200"
      },
      "message": "perf_counter: per user mlock gift\n\nInstead of a per-process mlock gift for perf-counters, use a\nper-user gift so that there is less of a DoS potential.\n\n[ Impact: allow less worst-case unprivileged memory consumption ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c20090515132018.496182835@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "548e1ddf255b4ebfb4ef20c08936fd8d4deb3bd9",
      "tree": "ba66d0fa1a15b1555a50927d0afa0bccb36efd91",
      "parents": [
        "58d7e993b16b62d30f8ef27757614056fe4def11"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 15 15:19:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 15 15:26:55 2009 +0200"
      },
      "message": "perf_counter: remove perf_disable/enable exports\n\nNow that ACPI idle doesn\u0027t use it anymore, remove the exports.\n\n[ Impact: remove dead code/data ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003c20090515132018.429826617@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e35ad388bea89f7d6f375af4c0ae98803688666",
      "tree": "9abbce9f6c9a914b1ea8d8dae82e159366030e4a",
      "parents": [
        "962bf7a66edca4d36a730a38ff8410a67f560e40"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 13 16:21:38 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 15 09:47:02 2009 +0200"
      },
      "message": "perf_counter: Rework the perf counter disable/enable\n\nThe current disable/enable mechanism is:\n\n\ttoken \u003d hw_perf_save_disable();\n\t...\n\t/* do bits */\n\t...\n\thw_perf_restore(token);\n\nThis works well, provided that the use nests properly. Except we don\u0027t.\n\nx86 NMI/INT throttling has non-nested use of this, breaking things. Therefore\nprovide a reference counter disable/enable interface, where the first disable\ndisables the hardware, and the last enable enables the hardware again.\n\n[ Impact: refactor, simplify the PMU disable/enable logic ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "53020fe81eecd0b7be295868ce5850ef8f41074e",
      "tree": "9dd7a48273419161c3bb74a0c9d492c626124835",
      "parents": [
        "a026dfecc035f213c1cfa0bf6407ce3155f6a9df"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 13 21:26:19 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 15 09:46:59 2009 +0200"
      },
      "message": "perf_counter: Fix perf_output_copy() WARN to account for overflow\n\nThe simple reservation test in perf_output_copy() failed to take\nunsigned int overflow into account, fix this.\n\n[ Impact: fix false positive warning with more than 4GB of profiling data ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e758a33d6fc5b9d6a3ae489863d04fcecad8120b",
      "tree": "3345d35fd5c9ee41a2f5a22fc5795672c0db7c2b",
      "parents": [
        "615a3f1e055ac9b0ae74e1f935a12ea2cfe2a2ad"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Tue May 12 21:59:01 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 12 15:31:06 2009 +0200"
      },
      "message": "perf_counter: call hw_perf_save_disable/restore around group_sched_in\n\nI noticed that when enabling a group via the PERF_COUNTER_IOC_ENABLE\nioctl on the group leader, the counters weren\u0027t enabled and counting\nimmediately on return from the ioctl, but did start counting a little\nwhile later (presumably after a context switch).\n\nThe reason was that __perf_counter_enable calls group_sched_in which\ncalls hw_perf_group_sched_in, which on powerpc assumes that the caller\nhas called hw_perf_save_disable already.  Until commit 46d686c6\n(\"perf_counter: put whole group on when enabling group leader\") it was\ntrue that all callers of group_sched_in had called\nhw_perf_save_disable first, and the powerpc hw_perf_group_sched_in\nrelies on that (there isn\u0027t an x86 version).\n\nThis fixes the problem by putting calls to hw_perf_save_disable /\nhw_perf_restore around the calls to group_sched_in and\ncounter_sched_in in __perf_counter_enable.  Having the calls to\nhw_perf_save_disable/restore around the counter_sched_in call is\nharmless and makes this call consistent with the other call sites\nof counter_sched_in, which have all called hw_perf_save_disable first.\n\n[ Impact: more precise counter group disable/enable functionality ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c18953.25733.53359.147452@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "615a3f1e055ac9b0ae74e1f935a12ea2cfe2a2ad",
      "tree": "bc109da69e48f00fad8782ef1852d052e92d1546",
      "parents": [
        "a08b159fc243dbfe415250466d24cfc5010deee5"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon May 11 15:50:21 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 11 12:10:54 2009 +0200"
      },
      "message": "perf_counter: call atomic64_set for counter-\u003ecount\n\nA compile warning triggered because we are calling\natomic_set(\u0026counter-\u003ecount). But since counter-\u003ecount\nis an atomic64_t, we have to use atomic64_set.\n\nSo the count can be set short, resulting in the reset ioctl\nonly resetting the low word.\n\n[ Impact: clear counter properly during the reset ioctl ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c18951.48285.270311.981806@drongo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a08b159fc243dbfe415250466d24cfc5010deee5",
      "tree": "39bb59aaf183021e6d9b02ed26dc8a4930d00f0b",
      "parents": [
        "6751b71ea2c7ab8c0d65f01973a3fc8ea16992f4"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon May 11 15:46:10 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 11 12:10:53 2009 +0200"
      },
      "message": "perf_counter: don\u0027t count scheduler ticks as context switches\n\nThe context-switch software counter gives inflated values at present\nbecause each scheduler tick and each process-wide counter\nenable/disable prctl gets counted as a context switch.\n\nThis happens because perf_counter_task_tick, perf_counter_task_disable\nand perf_counter_task_enable all call perf_counter_task_sched_out,\nwhich calls perf_swcounter_event to record a context switch event.\n\nThis fixes it by introducing a variant of perf_counter_task_sched_out\nwith two underscores in front for internal use within the perf_counter\ncode, and makes perf_counter_task_{tick,disable,enable} call it.  This\nvariant doesn\u0027t record a context switch event, and takes a struct\nperf_counter_context *.  This adds the new variant rather than\nchanging the behaviour or interface of perf_counter_task_sched_out\nbecause that is called from other code.\n\n[ Impact: fix inflated context-switch event counts ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c18951.48034.485580.498953@drongo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6751b71ea2c7ab8c0d65f01973a3fc8ea16992f4",
      "tree": "d4342bd89a10391caf648828ddea7550de6fc82d",
      "parents": [
        "8823392360dc4992f87bf4c623834d315f297493"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon May 11 12:08:02 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 11 12:10:53 2009 +0200"
      },
      "message": "perf_counter: Put whole group on when enabling group leader\n\nCurrently, if you have a group where the leader is disabled and there\nare siblings that are enabled, and then you enable the leader, we only\nput the leader on the PMU, and not its enabled siblings.  This is\nincorrect, since the enabled group members should be all on or all off\nat any given point.\n\nThis fixes it by adding a call to group_sched_in in\n__perf_counter_enable in the case where we\u0027re enabling a group leader.\n\nTo avoid the need for a forward declaration this also moves\ngroup_sched_in up before __perf_counter_enable.  The actual content of\ngroup_sched_in is unchanged by this patch.\n\n[ Impact: fix bug in counter enable code ]\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c18951.34946.451546.691693@drongo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f370e1e2f195ec1e6420e26fc83e0319595db578",
      "tree": "08276ee556bbc91d4d5f3ccee05d930efbca77ef",
      "parents": [
        "a85f61abe11a46553c4562e74edb27ebc782aeb7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 08 18:52:24 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 08 20:36:59 2009 +0200"
      },
      "message": "perf_counter: add PERF_RECORD_CPU\n\nAllow recording the CPU number the event was generated on.\n\nRFC: this leaves a u32 as reserved, should we fill in the\n     node_id() there, or leave this open for future extention,\n     as userspace can already easily do the cpu-\u003enode mapping\n     if needed.\n\n[ Impact: extend perfcounter output record format ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090508170029.008627711@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a85f61abe11a46553c4562e74edb27ebc782aeb7",
      "tree": "47a7fab94fe75dc75c0fdf8c590a6f41ef2be527",
      "parents": [
        "3df5edad87a998273aa5a9a8c728c05d855ad00e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 08 18:52:23 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 08 20:36:58 2009 +0200"
      },
      "message": "perf_counter: add PERF_RECORD_CONFIG\n\nMuch like CONFIG_RECORD_GROUP records the hw_event.config to\nidentify the values, allow to record this for all counters.\n\n[ Impact: extend perfcounter output record format ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090508170028.923228280@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3df5edad87a998273aa5a9a8c728c05d855ad00e",
      "tree": "c8e8090b1fe518918ac85d92a172702e9544fa91",
      "parents": [
        "7fc23a5380797012e92a9633169440f2f4a21253"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 08 18:52:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 08 20:36:58 2009 +0200"
      },
      "message": "perf_counter: rework ioctl()s\n\nCorey noticed that ioctl()s on grouped counters didn\u0027t work on\nthe whole group. This extends the ioctl() interface to take a\nsecond argument that is interpreted as a flags field. We then\nprovide PERF_IOC_FLAG_GROUP to toggle the behaviour.\n\nHaving this flag gives the greatest flexibility, allowing you\nto individually enable/disable/reset counters in a group, or\nall together.\n\n[ Impact: fix group counter enable/disable semantics ]\n\nReported-by: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20090508170028.837558214@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7fc23a5380797012e92a9633169440f2f4a21253",
      "tree": "b136302efccd407ef4ee608de40042bedd0ab660",
      "parents": [
        "3611dfb8eda847c1c8e1a052f57206f7fddc6a7c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 08 18:52:21 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 08 20:36:57 2009 +0200"
      },
      "message": "perf_counter: optimize perf_counter_task_tick()\n\nperf_counter_task_tick() does way too much work to find out\nthere\u0027s nothing to do. Provide an easy short-circuit for the\nnormal case where there are no counters on the system.\n\n[ Impact: micro-optimization ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090508170028.750619201@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2023b359214bbc5bad31571cf50d7fb83b535c0a",
      "tree": "991ca078cd79b883cd09da2b349055e136e13a0c",
      "parents": [
        "22c1558e51c210787c6cf75d8905246fc91ec030"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 05 17:50:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 05 20:18:33 2009 +0200"
      },
      "message": "perf_counter: inheritable sample counters\n\nRedirect the output to the parent counter and put in some sanity checks.\n\n[ Impact: new perfcounter feature - inherited sampling counters ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090505155437.331556171@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "22c1558e51c210787c6cf75d8905246fc91ec030",
      "tree": "40949ad88dcba74df009437a3270fda4e938cb3f",
      "parents": [
        "c5078f78b455fbf67ea71442c7e7ca8acf9ff095"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 05 17:50:25 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 05 20:18:32 2009 +0200"
      },
      "message": "perf_counter: fix the output lock\n\nUse -1 instead of 0 as unlocked, since 0 is a valid cpu number.\n\n( This is not an issue right now but will be once we allow multiple\n  counters to output to the same mmap area. )\n\n[ Impact: prepare code for multi-counter profile output ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090505155437.232686598@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c5078f78b455fbf67ea71442c7e7ca8acf9ff095",
      "tree": "bdd3b699919f2b23faf13177954e82b570653711",
      "parents": [
        "6de6a7b95705b859b61430fa3afa1403034eb3e6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 05 17:50:24 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 05 20:18:32 2009 +0200"
      },
      "message": "perf_counter: provide an mlock threshold\n\nProvide a threshold to relax the mlock accounting, increasing usability.\n\nEach counter gets perf_counter_mlock_kb for free.\n\n[ Impact: allow more mmap buffering ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090505155437.112113632@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6de6a7b95705b859b61430fa3afa1403034eb3e6",
      "tree": "29214ae667a58aa005d0ed13e51c265fa675adf0",
      "parents": [
        "c66de4a5be7913247bd83d79168f8e4420c9cfbc"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 05 17:50:23 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 05 20:18:31 2009 +0200"
      },
      "message": "perf_counter: add ioctl(PERF_COUNTER_IOC_RESET)\n\nProvide a way to reset an existing counter - this eases PAPI\nlibraries around perfcounters.\n\nSimilar to read() it doesn\u0027t collapse pending child counters.\n\n[ Impact: new perfcounter fd ioctl method to reset counters ]\n\nSuggested-by: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20090505155437.022272933@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c66de4a5be7913247bd83d79168f8e4420c9cfbc",
      "tree": "c671172166d94be75ad9d6df1fdafa0c006c4609",
      "parents": [
        "066d7dea32c9bffe6decc0abe465627656cdd84e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 05 17:50:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 05 20:18:30 2009 +0200"
      },
      "message": "perf_counter: uncouple data_head updates from wakeups\n\nKeep data_head up-to-date irrespective of notifications. This fixes\nthe case where you disable a counter and don\u0027t get a notification for\nthe last few pending events, and it also allows polling usage.\n\n[ Impact: increase precision of perfcounter mmap-ed fields ]\n\nSuggested-by: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20090505155436.925084300@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1dce8d99b85aba6eddb8b8260baea944922e6fe7",
      "tree": "77afc73743f8eb1c81b652418661b98b1f4b933d",
      "parents": [
        "0d905bca23aca5c86a10ee101bcd3b1abbd40b25"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 04 19:23:18 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 04 19:30:42 2009 +0200"
      },
      "message": "perf_counter: convert perf_resource_mutex to a spinlock\n\nNow percpu counters can be initialized very early. But the init\nsequence uses mutex_lock(). Fortunately, perf_resource_mutex should\nbe a spinlock anyway, so convert it.\n\n[ Impact: fix crash due to early init mutex use ]\n\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0d905bca23aca5c86a10ee101bcd3b1abbd40b25",
      "tree": "5a4e6b956d1923ac1d28ae8b8f3034c1c90df5a5",
      "parents": [
        "ba77813a2a22d631fe5bc0bf1ec0d11350544b70"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 04 19:13:30 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 04 19:30:32 2009 +0200"
      },
      "message": "perf_counter: initialize the per-cpu context earlier\n\npercpu scheduling for perfcounters wants to take the context lock,\nbut that lock first needs to be initialized. Currently it is an\nearly_initcall() - but that is too late, the task tick runs much\nsooner than that.\n\nCall it explicitly from the scheduler init sequence instead.\n\n[ Impact: fix access-before-init crash ]\n\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b82914ce33146186d554b0f5c41e4e13693614ce",
      "tree": "dde12a31830dd4216433d9a6b365c90bccaa1792",
      "parents": [
        "dab6f6a3401f596fe934f41fc5da3f401adfdfb1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 04 18:54:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 04 19:29:57 2009 +0200"
      },
      "message": "perf_counter: round-robin per-CPU counters too\n\nThis used to be unstable when we had the rq-\u003elock dependencies,\nbut now that they are that of the past we can turn on percpu\ncounter RR too.\n\n[ Impact: handle counter over-commit for per-CPU counters too ]\n\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c33a0bc4e41ef169d6e807d8abb9502544b518e5",
      "tree": "f7ba55205352cd91a4f86999710008e89932ef10",
      "parents": [
        "3c56999eec7acc105a31b4546c94aad2fb844b13"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 01 12:23:16 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 01 13:23:43 2009 +0200"
      },
      "message": "perf_counter: fix race in perf_output_*\n\nWhen two (or more) contexts output to the same buffer, it is possible\nto observe half written output.\n\nSuppose we have CPU0 doing perf_counter_mmap(), CPU1 doing\nperf_counter_overflow(). If CPU1 does a wakeup and exposes head to\nuser-space, then CPU2 can observe the data CPU0 is still writing.\n\n[ Impact: fix occasionally corrupted profiling records ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090501102533.007821627@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c5dd016cdf0a040e1de0b691e274fbfe642b2cdc",
      "tree": "db68fb2fec040fa2862f5b01da6158ec2e12151c",
      "parents": [
        "43f6201a22dbf1c5abe1cab96b49bd56fa9df8f4"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Apr 30 09:48:16 2009 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 30 08:23:11 2009 +0200"
      },
      "message": "perf_counter: update copyright notice\n\nThis adds my name to the list of copyright holders on the core\nperf_counter.c, since I have contributed a significant amount of the\ncode in there.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nLKML-Reference: \u003c18936.59200.888049.746658@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "98144511427c192e4249ff66a3f9debc55c59411",
      "tree": "2e31731dbcf489f703d00312eb041638b1d494a4",
      "parents": [
        "38105f0234d4795c77c7c6845916caf3a395c451"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:52:50 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:52:50 2009 +0200"
      },
      "message": "perf_counter: add/update copyrights\n\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4aeb0b4239bb3b67ed402cb9cef3e000c892cadf",
      "tree": "0a025a30fa5de3b40ab1ea156a3f86ee2d000839",
      "parents": [
        "527e26af3741a2168986d8b82653ffe173891324"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Wed Apr 29 12:47:03 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:51:03 2009 +0200"
      },
      "message": "perfcounters: rename struct hw_perf_counter_ops into struct pmu\n\nThis patch renames struct hw_perf_counter_ops into struct pmu. It\nintroduces a structure to describe a cpu specific pmu (performance\nmonitoring unit). It may contain ops and data. The new name of the\nstructure fits better, is shorter, and thus better to handle. Where it\nwas appropriate, names of function and variable have been changed too.\n\n[ Impact: cleanup ]\n\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1241002046-8832-7-git-send-email-robert.richter@amd.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ff7b1b4f000cea84f071c1b6aa2918b2119d66f1",
      "tree": "ef380411dc3b818e9e16d0bd7e83a57c1cf6c154",
      "parents": [
        "0f3fd87ce43727d6b8573191ce89e874533b1429"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Wed Apr 15 16:55:05 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 16 01:10:04 2009 +0200"
      },
      "message": "perfcounters: export perf_tpcounter_event\n\nNeeded for modular tracepoint support.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3d21c412d8525eb2e208d990ab5eee5fb0fe03d",
      "tree": "af78c6ac0e8c6669a092adf911b01f23809d2128",
      "parents": [
        "1ccd15497869f3ed83b5225d410df53a96e52757"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Apr 09 10:53:46 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 09 11:50:54 2009 +0200"
      },
      "message": "perf_counter: log full path names\n\nImpact: fix perf-report output for /home mounted binaries, etc.\n\ndentry_path() only provide path-names up to the mount root, which is\nunsuited for out purpose, use d_path() instead.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c20090409085524.601794134@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "1ccd15497869f3ed83b5225d410df53a96e52757"
}
