)]}'
{
  "log": [
    {
      "commit": "d7842da470f244d258f21c5f72cd8388b3541d04",
      "tree": "02196f905f3c27ab9dfc85b26dbb32348d943d60",
      "parents": [
        "9ffcfa6f1f63eeac15555b745c292eb9f59130f6"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Wed Oct 20 15:25:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 22 14:18:27 2010 +0200"
      },
      "message": "perf_events: Fix for transaction recovery in group_sched_in()\n\nThis new version (see commit 8e5fc1a) is much simpler and ensures that\nin case of error in group_sched_in() during event_sched_in(), the\nevents up to the failed event go through regular event_sched_out().\nBut the failed event and the remaining events in the group have their\ntimings adjusted as if they had also gone through event_sched_in() and\nevent_sched_out(). This ensures timing uniformity across all events in\na group. This also takes care of the tstamp_stopped problem in case\nthe group could never be scheduled. The tstamp_stopped is updated as\nif the event had actually run.\n\nWith this patch, the following now reports correct time_enabled,\nin case the NMI watchdog is active:\n\n$ task -e unhalted_core_cycles,instructions_retired,baclears,baclears\nnoploop 1\nnoploop for 1 seconds\n\n0 unhalted_core_cycles (100.00% scaling, ena\u003d997,552,872, run\u003d0)\n0 instructions_retired (100.00% scaling, ena\u003d997,552,872, run\u003d0)\n0 baclears (100.00% scaling, ena\u003d997,552,872, run\u003d0)\n0 baclears (100.00% scaling, ena\u003d997,552,872, run\u003d0)\n\nAnd the older test case also works:\n\n$ task -einstructions_retired,baclears,baclears -e\nunhalted_core_cycles,baclears,baclears sleep 5\n\n1680885 instructions_retired (69.39% scaling, ena\u003d950756, run\u003d291006)\n  10735 baclears (69.39% scaling, ena\u003d950756, run\u003d291006)\n  10735 baclears (69.39% scaling, ena\u003d950756, run\u003d291006)\n\n      0 unhalted_core_cycles (100.00% scaling, ena\u003d817932, run\u003d0)\n      0 baclears (100.00% scaling, ena\u003d817932, run\u003d0)\n      0 baclears (100.00% scaling, ena\u003d817932, run\u003d0)\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4cbeeebc.8ee7d80a.5a28.0d5f@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ffcfa6f1f63eeac15555b745c292eb9f59130f6",
      "tree": "803cc11f312da98713fdfc366b7ec79351dffa55",
      "parents": [
        "96681fc3c9e7d1f89ab64e5eec40b6467c97680f"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Wed Oct 20 15:25:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 22 14:18:27 2010 +0200"
      },
      "message": "perf_events: Revert: Fix transaction recovery in group_sched_in()\n\nThis patch reverts commit 8e5fc1a (perf_events: Fix transaction\nrecovery in group_sched_in()) because it had one flaw in case the\ngroup could never be scheduled. It would cause time_enabled to get\nnegative.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4cbeeeb7.0aefd80a.6e40.0e2f@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5d70f79b5ef6ea2de4f72a37b2d96e2601e40a22",
      "tree": "a0d6de0930ba83ecf4629c2e2e261f5eaa2d8f33",
      "parents": [
        "888a6f77e0418b049f83d37547c209b904d30af4",
        "750ed158bf6c782d2813da1bca2c824365a0b777"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 21 12:54:49 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (163 commits)\n  tracing: Fix compile issue for trace_sched_wakeup.c\n  [S390] hardirq: remove pointless header file includes\n  [IA64] Move local_softirq_pending() definition\n  perf, powerpc: Fix power_pmu_event_init to not use event-\u003ectx\n  ftrace: Remove recursion between recordmcount and scripts/mod/empty\n  jump_label: Add COND_STMT(), reducer wrappery\n  perf: Optimize sw events\n  perf: Use jump_labels to optimize the scheduler hooks\n  jump_label: Add atomic_t interface\n  jump_label: Use more consistent naming\n  perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n  perf: Find task before event alloc\n  perf: Fix task refcount bugs\n  perf: Fix group moving\n  irq_work: Add generic hardirq context callbacks\n  perf_events: Fix transaction recovery in group_sched_in()\n  perf_events: Fix bogus AMD64 generic TLB events\n  perf_events: Fix bogus context time tracking\n  tracing: Remove parent recording in latency tracer graph options\n  tracing: Use one prologue for the preempt irqs off tracer function tracers\n  ...\n"
    },
    {
      "commit": "7e54a5a0b655734326dc78c2b5efc1eb35497bb6",
      "tree": "71346dfdb01ef387ad1aaaccbf72b3127814ce92",
      "parents": [
        "82cd6def9806dcb6a325fb6abbc1d61388a15f6a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 22:32:45 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:59 2010 +0200"
      },
      "message": "perf: Optimize sw events\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.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": "82cd6def9806dcb6a325fb6abbc1d61388a15f6a",
      "tree": "569ce440f8a0619adb8c3791d6b68eecdb2fd29c",
      "parents": [
        "8b92538d84e50062560ba33adbaed7887b6e4a42"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 17:57:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:58 2010 +0200"
      },
      "message": "perf: Use jump_labels to optimize the scheduler hooks\n\nTrades a call + conditional + ret for an unconditional jmp.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.501657727@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d580ff8699e8811a9af37e9de4dea375401bdeec",
      "tree": "f2789d8a8628b856ad902c0bfbb1899e6cc67697",
      "parents": [
        "c6be5a5cb62592d9d661899a2aa78236eb00ffa5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 17:43:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:55 2010 +0200"
      },
      "message": "perf, hw_breakpoint: Fix crash in hw_breakpoint creation\n\nhw_breakpoint creation needs to account stuff per-task to ensure there\nis always sufficient hardware resources to back these things due to\nptrace.\n\nWith the perf per pmu context changes the event initialization no\nlonger has access to the event context, for the simple reason that we\nneed to first find the pmu (result of initialization) before we can\nfind the context.\n\nThis makes hw_breakpoints unhappy, because it can no longer do per\ntask accounting, cure this by frobbing a task pointer in the event::hw\nbits for now...\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20101014203625.391543667@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c6be5a5cb62592d9d661899a2aa78236eb00ffa5",
      "tree": "510a7b92a65a2faf7395f6ab37be44328f0186cf",
      "parents": [
        "e7d0bc047548d76feee6b23f7d3d9da927189a50"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 16:59:46 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:54 2010 +0200"
      },
      "message": "perf: Find task before event alloc\n\nSo that we can pass the task pointer to the event allocation, so that\nwe can use task associated data during event initialization.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20101014203625.340789919@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7d0bc047548d76feee6b23f7d3d9da927189a50",
      "tree": "be1cd1fc48f6458a2efa4d0bfac53808938208dc",
      "parents": [
        "74c3337c2fc6389d3a57a622a936036b6db6b2e8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 16:54:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:52 2010 +0200"
      },
      "message": "perf: Fix task refcount bugs\n\nCurrently it looks like find_lively_task_by_vpid() takes a task ref\nand relies on find_get_context() to drop it.\n\nThe problem is that perf_event_create_kernel_counter() shouldn\u0027t be\ndropping task refs.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nLKML-Reference: \u003c20101014203625.278436085@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74c3337c2fc6389d3a57a622a936036b6db6b2e8",
      "tree": "d87232b7cc19eef0f1fe0a0bb167868513819b31",
      "parents": [
        "e360adbe29241a0194e10e20595360dd7b98a2b3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Oct 15 11:40:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:51 2010 +0200"
      },
      "message": "perf: Fix group moving\n\nMatt found we trigger the WARN_ON_ONCE() in perf_group_attach() when we take\nthe move_group path in perf_event_open().\n\nSince we cannot de-construct the group (we rely on it to move the events), we\nhave to simply ignore the double attach. The group state is context invariant\nand doesn\u0027t need changing.\n\nReported-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1287135757.29097.1368.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e360adbe29241a0194e10e20595360dd7b98a2b3",
      "tree": "ef5fa5f50a895096bfb25bc11b25949603158238",
      "parents": [
        "8e5fc1a7320baf6076391607515dceb61319b36a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Oct 14 14:01:34 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:50 2010 +0200"
      },
      "message": "irq_work: Add generic hardirq context callbacks\n\nProvide a mechanism that allows running code in IRQ context. It is\nmost useful for NMI code that needs to interact with the rest of the\nsystem -- like wakeup a task to drain buffers.\n\nPerf currently has such a mechanism, so extract that and provide it as\na generic feature, independent of perf so that others may also\nbenefit.\n\nThe IRQ context callback is generated through self-IPIs where\npossible, or on architectures like powerpc the decrementer (the\nbuilt-in timer facility) is set to generate an interrupt immediately.\n\nArchitectures that don\u0027t have anything like this get to do with a\ncallback from the timer tick. These architectures can call\nirq_work_run() at the tail of any IRQ handlers that might enqueue such\nwork (like the perf IRQ handler) to avoid undue latencies in\nprocessing the work.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nAcked-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n[ various fixes ]\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nLKML-Reference: \u003c1287036094.7768.291.camel@yhuang-dev\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8e5fc1a7320baf6076391607515dceb61319b36a",
      "tree": "24a5e7ac4bbd8a960fa90ce2a668b9475a3f0b16",
      "parents": [
        "ba0cef3d149ce4db293c572bf36ed352b11ce7b9"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Fri Oct 15 16:54:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:49 2010 +0200"
      },
      "message": "perf_events: Fix transaction recovery in group_sched_in()\n\nThe group_sched_in() function uses a transactional approach to schedule\na group of events. In a group, either all events can be scheduled or\nnone are. To schedule each event in, the function calls event_sched_in().\nIn case of error, event_sched_out() is called on each event in the group.\n\nThe problem is that event_sched_out() does not completely cancel the\neffects of event_sched_in(). Furthermore event_sched_out() changes the\nstate of the event as if it had run which is not true is this particular\ncase.\n\nThose inconsistencies impact time tracking fields and may lead to events\nin a group not all reporting the same time_enabled and time_running values.\nThis is demonstrated with the example below:\n\n$ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5\n1946101 unhalted_core_cycles (32.85% scaling, ena\u003d829181, run\u003d556827)\n  11423 baclears (32.85% scaling, ena\u003d829181, run\u003d556827)\n   7671 baclears (0.00% scaling, ena\u003d556827, run\u003d556827)\n\n2250443 unhalted_core_cycles (57.83% scaling, ena\u003d962822, run\u003d405995)\n  11705 baclears (57.83% scaling, ena\u003d962822, run\u003d405995)\n  11705 baclears (57.83% scaling, ena\u003d962822, run\u003d405995)\n\nNotice that in the first group, the last baclears event does not\nreport the same timings as its siblings.\n\nThis issue comes from the fact that tstamp_stopped is updated\nby event_sched_out() as if the event had actually run.\n\nTo solve the issue, we must ensure that, in case of error, there is\nno change in the event state whatsoever. That means timings must\nremain as they were when entering group_sched_in().\n\nTo do this we defer updating tstamp_running until we know the\ntransaction succeeded. Therefore, we have split event_sched_in()\nin two parts separating the update to tstamp_running.\n\nSimilarly, in case of error, we do not want to update tstamp_stopped.\nTherefore, we have split event_sched_out() in two parts separating\nthe update to tstamp_stopped.\n\nWith this patch, we now get the following output:\n\n$ task -eunhalted_core_cycles,baclears,baclears -e unhalted_core_cycles,baclears,baclears sleep 5\n2492050 unhalted_core_cycles (71.75% scaling, ena\u003d1093330, run\u003d308841)\n  11243 baclears (71.75% scaling, ena\u003d1093330, run\u003d308841)\n  11243 baclears (71.75% scaling, ena\u003d1093330, run\u003d308841)\n\n1852746 unhalted_core_cycles (0.00% scaling, ena\u003d784489, run\u003d784489)\n   9253 baclears (0.00% scaling, ena\u003d784489, run\u003d784489)\n   9253 baclears (0.00% scaling, ena\u003d784489, run\u003d784489)\n\nNote that the uneven timing between groups is a side effect of\nthe process spending most of its time sleeping, i.e., not enough\nevent rotations (but that\u0027s a separate issue).\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c4cb86b4c.41e9d80a.44e9.3e19@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c530ccd9a1864a44a7ff35826681229ce9f2357a",
      "tree": "51cb7ae96aa2b6e144686e850255344b2d94b888",
      "parents": [
        "f92f6e6ee35d2779aa62e70f78ad8e1cd417eb52"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Fri Oct 15 15:26:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 18 19:58:46 2010 +0200"
      },
      "message": "perf_events: Fix bogus context time tracking\n\nYou can only call update_context_time() when the context\nis active, i.e., the thread it is attached to is still running.\n\nHowever, perf_event_read() can be called even when the context\nis inactive, e.g., user read() the counters. The call to\nupdate_context_time() must be conditioned on the status of\nthe context, otherwise, bogus time_enabled, time_running may\nbe returned. Here is an example on AMD64. The task program\nis an example from libpfm4. The -p prints deltas every 1s.\n\n$ task -p -e cpu_clk_unhalted sleep 5\n    2,266,610 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n\t    0 cpu_clk_unhalted (0.00% scaling, ena\u003d2,158,982, run\u003d2,158,982)\n5,242,358,071 cpu_clk_unhalted (99.95% scaling, ena\u003d5,000,359,984, run\u003d2,319,270)\n\nWhereas if you don\u0027t read deltas, e.g., no call to perf_event_read() until\nthe process terminates:\n\n$ task -e cpu_clk_unhalted sleep 5\n    2,497,783 cpu_clk_unhalted (0.00% scaling, ena\u003d2,376,899, run\u003d2,376,899)\n\nNotice that time_enable, time_running are bogus in the first example\ncausing bogus scaling.\n\nThis patch fixes the problem, by conditionally calling update_context_time()\nin perf_event_read().\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: stable@kernel.org\nLKML-Reference: \u003c4cb856dc.51edd80a.5ae0.38fb@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6268464b370e234e0255330190f9bd5d19386ad7",
      "tree": "5742641092ce64227dd2086d78baaede57da1f80",
      "parents": [
        "7df01d96b295e400167e78061b81d4c91630b12d",
        "0fdf13606b67f830559abdaad15980c7f4f05ec4"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Fri Oct 15 12:45:00 2010 +0200"
      },
      "committer": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Fri Oct 15 12:45:00 2010 +0200"
      },
      "message": "Merge remote branch \u0027tip/perf/core\u0027 into oprofile/core\n\nConflicts:\n\tarch/arm/oprofile/common.c\n\tkernel/perf_event.c\n"
    },
    {
      "commit": "ad0cf3478de8677f720ee06393b3147819568d6a",
      "tree": "cd007170b0f20f724924ff53897bf534847e14c4",
      "parents": [
        "29979aa8bd69becd94cbad59093807a417ce2a9e"
      ],
      "author": {
        "name": "John Blackwood",
        "email": "john.blackwood@ccur.com",
        "time": "Tue Sep 28 18:03:11 2010 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 12 11:45:01 2010 +0200"
      },
      "message": "perf: Fix incorrect copy_from_user() usage\n\nperf events: repair incorrect use of copy_from_user\n\nThis makes the perf_event_period() return 0 instead of\n-EFAULT on success.\n\nSigned-off-by: John Blackwood\u003cjohn.blackwood@ccur.com\u003e\nSigned-off-by: Joe Korty \u003cjoe.korty@ccur.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20100928220311.GA18145@tsunami.ccur.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad0f7cfaa85fc033523a09ab1f3dd6b8ded3dff5",
      "tree": "2565121e4b9945d953e02c77a2e53065b3789aa4",
      "parents": [
        "86c8c04792f152c5469023885510140dd34817bc",
        "c7a27aa4652c63172489a73f3961455650a79a7f"
      ],
      "author": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Mon Oct 11 19:26:50 2010 +0200"
      },
      "committer": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Mon Oct 11 19:26:50 2010 +0200"
      },
      "message": "Merge branch \u0027oprofile/urgent\u0027 (early part) into oprofile/perf\n"
    },
    {
      "commit": "84c7991059c9c4530cc911137c5bf508a41ed129",
      "tree": "1fc9f7c8139f680f3d899328128a38e5087c30c7",
      "parents": [
        "3bf101ba42a1c89b5afbc7492e7647dae5e18735"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt@console-pimps.org",
        "time": "Sun Oct 03 21:41:13 2010 +0100"
      },
      "committer": {
        "name": "Robert Richter",
        "email": "robert.richter@amd.com",
        "time": "Mon Oct 11 17:45:49 2010 +0200"
      },
      "message": "perf: New helper function for pmu name\n\nIntroduce perf_pmu_name() helper function that returns the name of the\npmu. This gives us a generic way to get the name of a pmu regardless of\nhow an architecture identifies it internally.\n\nSigned-off-by: Matt Fleming \u003cmatt@console-pimps.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\n"
    },
    {
      "commit": "540804b5c52065a87d826f7714b18a3ec0b269f9",
      "tree": "71144b372d615c9c188860f9eaea062bdb8cb1c5",
      "parents": [
        "d6dad199a10423ce37b8bfec1f055c380dc4a3d5"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Mon Oct 04 12:00:02 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Oct 04 12:47:20 2010 +0200"
      },
      "message": "perf_events: Fix invalid pointer when pid is invalid\n\nThis patch fixes an error in perf_event_open() when the pid\nprovided by the user is invalid. find_lively_task_by_vpid()\ndoes not return NULL on error but an error code. Without the\nfix the error code was silently passed to find_get_context()\nwhich would eventually cause a invalid pointer dereference.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nCc: peterz@infradead.org\nCc: paulus@samba.org\nCc: davem@davemloft.net\nCc: fweisbec@gmail.com\nCc: perfmon2-devel@lists.sf.net\nCc: eranian@gmail.com\nCc: robert.richter@amd.com\nLKML-Reference: \u003c4ca9a5d1.e8e9d80a.3dbb.ffff8f2e@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "41945f6ccf1e86f87fddf6b32db9cf431c05fb54",
      "tree": "cf64d47bfff06ff4560efcaa23a067fa99db34dd",
      "parents": [
        "8b8e2ec1eeca7f6941bc81cefc9663018d6ceb57"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 16 19:17:24 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 21 13:55:44 2010 +0200"
      },
      "message": "perf: Avoid RCU vs preemption assumptions\n\nThe per-pmu per-cpu context patch converted things from\nget_cpu_var() to this_cpu_ptr(), but that only works if\nrcu_read_lock() actually disables preemption, and since\nthere is no such guarantee, we need to fix that.\n\nUse the newly introduced {get,put}_cpu_ptr().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nLKML-Reference: \u003c20100917093009.308453028@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e9d2b064149ff7ef4acbc65a1b9374ac8b218d3e",
      "tree": "6ce885c6052a6e05046b9937376107e4bcf378fe",
      "parents": [
        "917bdd1c9b7b0f4c22f2504c2f0c1074c8ab9df7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 17 11:28:50 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 17 12:48:48 2010 +0200"
      },
      "message": "perf: Undo the per cpu-context timer stuff\n\nRevert the timer per cpu-context timers because of unfortunate\nnohz interaction. Fixing that would have been somewhat ugly, so\ngo back to driving things from the regular tick. Provide a\njiffies interval feature for people who want slower rotations.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c20100917093009.519845633@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "917bdd1c9b7b0f4c22f2504c2f0c1074c8ab9df7",
      "tree": "63b408a2b5951580d5c1bba7d64932ddee2c6d12",
      "parents": [
        "b04243ef7006cda301819f54ee7ce0a3632489e3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 17 11:28:49 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 17 12:48:48 2010 +0200"
      },
      "message": "perf: Fix perf_event_exit_cpu_context()\n\nUse the right cpu-context.. spotted by preempt warning on\nhot-unplug\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nLKML-Reference: \u003c20100917093009.461794357@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b04243ef7006cda301819f54ee7ce0a3632489e3",
      "tree": "e8e83c53d40dce08ad5bfc37ec1e58b3a5aa7adc",
      "parents": [
        "d14b12d7adbf214f33eb59f800b5c3d5ed9268e8"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 17 11:28:48 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 17 12:48:48 2010 +0200"
      },
      "message": "perf: Complete software pmu grouping\n\nAside from allowing software events into a !software group,\nallow adding !software events to pure software groups.\n\nOnce we\u0027ve moved the software group and attached the first\n!software event, the group will no longer be a pure software\ngroup and hence no longer be eligible for movement, at which\npoint the straight ctx comparison is correct again.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003c20100917093009.410784731@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d14b12d7adbf214f33eb59f800b5c3d5ed9268e8",
      "tree": "005705157545c70db6b751f38ae28702714fb1ed",
      "parents": [
        "74704ac6ea402d50c9543cb28247e6d9f521f7ae"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Fri Sep 17 11:28:47 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 17 12:48:47 2010 +0200"
      },
      "message": "perf_events: Fix broken event grouping\n\nEvents were not grouped anymore. The reason was that in\nperf_event_open(), the field event-\u003egroup_leader was\ninitialized before the function looked up the group_fd\nto find the event leader. This patch fixes this by\nreordering the code correctly.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nLKML-Reference: \u003c20100917093009.360420946@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "38a81da2205f94e8a2a834b51a6b99c91fc7c2e8",
      "tree": "5227c665f37d1c472608a44aaad0a04be68befb2",
      "parents": [
        "2ebd4ffb6d0cb877787b1e42be8485820158857e"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Mon Sep 13 13:01:20 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:44:00 2010 +0200"
      },
      "message": "perf events: Clean up pid passing\n\nThe kernel perf event creation path shouldn\u0027t use find_task_by_vpid()\nbecause a vpid exists in a specific namespace. find_task_by_vpid() uses\ncurrent\u0027s pid namespace which isn\u0027t always the correct namespace to use\nfor the vpid in all the places perf_event_create_kernel_counter() (and\nthus find_get_context()) is called.\n\nThe goal is to clean up pid namespace handling and prevent bugs like:\n\n\thttps://bugzilla.kernel.org/show_bug.cgi?id\u003d17281\n\nInstead of using pids switch find_get_context() to use task struct\npointers directly. The syscall is responsible for resolving the pid to\na task struct. This moves the pid namespace resolution into the syscall\nmuch like every other syscall that takes pid parameters.\n\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robin Green \u003cgreenrd@greenrd.org\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003ca134e5e392ab0204961fd1a62c84a222bf5874a9.1284407763.git.matthltc@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ebd4ffb6d0cb877787b1e42be8485820158857e",
      "tree": "21db710a8f3de28f9554674e947da796a23d2e92",
      "parents": [
        "d958077d007d98125766d11e82da2fd6497b91d6"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Mon Sep 13 13:01:19 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Sep 15 10:44:00 2010 +0200"
      },
      "message": "perf events: Split out task search into helper\n\nSplit out the code which searches for non-exiting tasks into its own\nhelper. Creating this helper not only makes the code slightly more\nreadable it prepares to move the search out of find_get_context() in\na subsequent commit.\n\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robin Green \u003cgreenrd@greenrd.org\u003e\nCc: Prasad \u003cprasad@linux.vnet.ibm.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Mahesh Salgaonkar \u003cmahesh@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003c561205417b450b8a4bf7488374541d64b4690431.1284407762.git.matthltc@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0c67b40872326a5340cab51d79a192a5fbaeb484",
      "tree": "e92b420dcb1375e159842d8ffa03a5230976ab3a",
      "parents": [
        "cde8e88498c8de69271fcb6d4dd974979368fa67"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 13 11:15:58 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 13 17:08:42 2010 +0200"
      },
      "message": "perf: Fix free_event()\n\nWith the context rework stuff we can actually end up freeing an event\nbefore it gets attached to a context.\n\nReported-by: Cyrill Gorcunov \u003cgorcunov@gmail.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": "cde8e88498c8de69271fcb6d4dd974979368fa67",
      "tree": "34eb745cc6f3e5a5dbe0918f4920424be70bcfff",
      "parents": [
        "b0b2072df3b544f56b90173c2cde7a374c51546b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 13 11:06:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 13 17:08:42 2010 +0200"
      },
      "message": "perf: Sanitize the RCU logic\n\nSimplify things and simply synchronize against two RCU variants for\nPMU unregister -- we don\u0027t care about performance, its module unload\nif anything.\n\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e5f4d3394a52ac351f1a479fe136d92fa5228eff",
      "tree": "57adeb66c5e98bf86613c15295e07cbb07952be3",
      "parents": [
        "cee010ec5211b96f33c5c2208f5c14ebb04b634a"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 10 17:38:06 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 10 17:41:55 2010 +0200"
      },
      "message": "perf: Fix perf_init_event()\n\nWe ought to return -ENOENT when non of the registered PMUs\nrecognise the requested event.\n\nThis fixes a boot crash that occurs if no PMU is available\nbut the NMI watchdog tries to register an event.\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\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": "cee010ec5211b96f33c5c2208f5c14ebb04b634a",
      "tree": "dae35fd772d7e18db94b320a0ffc97e55e719d0e",
      "parents": [
        "3b8fad3e2f5f69bfd8e42d099ca8582fb2342edf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Sep 10 12:51:54 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Sep 10 16:24:33 2010 +0200"
      },
      "message": "perf: Ensure we call add_event_to_ctx() with the right locks held\n\nEven though we call it from the inherit path, where the child is\nnot yet accessible, we need to hold ctx-\u003elock, add_event_to_ctx()\nassumes IRQs are disabled.\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": "4e231c7962ce711c7d8c2a4dc23ecd1e8fc28363",
      "tree": "05af30e5c2f1084d8e77c89f0e55beaafa2194c0",
      "parents": [
        "1b9a644fece117cfa5474a2388d6b89d1baf8ddf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 09 21:01:59 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 21:07:09 2010 +0200"
      },
      "message": "perf: Fix up delayed_put_task_struct()\n\nI missed a perf_event_ctxp user when converting it to an array. Pull this\nlast user into perf_event.c as well and fix it up.\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": "1b9a644fece117cfa5474a2388d6b89d1baf8ddf",
      "tree": "c89be6de269578501a365f7526a81fb64cb6ba93",
      "parents": [
        "89a1e18731959e9953fae15ddc1a983eb15a4f19"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 07 18:32:22 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:34 2010 +0200"
      },
      "message": "perf: Optimize context ops\n\nAssuming we don\u0027t mix events of different pmus onto a single context\n(with the exeption of software events inside a hardware group) we can\nnow assume that all events on a particular context belong to the same\npmu, hence we can disable the pmu for the entire context operations.\n\nThis reduces the amount of hardware writes.\n\nThe exception for swevents comes from the fact that the sw pmu disable\nis a nop.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "89a1e18731959e9953fae15ddc1a983eb15a4f19",
      "tree": "5a52e77acb23f47254c94e23eb6ed35a422fce1d",
      "parents": [
        "8dc85d547285668e509f86c177bcd4ea055bcaaf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 07 17:34:50 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:34 2010 +0200"
      },
      "message": "perf: Provide a separate task context for swevents\n\nSince software events are always schedulable, mixing them up with\nhardware events (who are not) can lead to funny scheduling oddities.\n\nGiving them their own context solves this.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8dc85d547285668e509f86c177bcd4ea055bcaaf",
      "tree": "5474dd6c31952b342f0a3f1bcec09e3049129264",
      "parents": [
        "eb184479874238393ac186c4e054d24311c34aaa"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Sep 02 16:50:03 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:33 2010 +0200"
      },
      "message": "perf: Multiple task contexts\n\nProvide the infrastructure for multiple task contexts.\n\nA more flexible approach would have resulted in more pointer chases\nin the scheduling hot-paths. This approach has the limitation of a\nstatic number of task contexts.\n\nSince I expect most external PMUs to be system wide, or at least node\nwide (as per the intel uncore unit) they won\u0027t actually need a task\ncontext.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "eb184479874238393ac186c4e054d24311c34aaa",
      "tree": "ac7206becfb3e0d18600252d8f5aa15478c32390",
      "parents": [
        "97dee4f3206622f31396dede2b5ddb8670458f56"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 07 15:55:13 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:33 2010 +0200"
      },
      "message": "perf: Clean up perf_event_context allocation\n\nUnify the two perf_event_context allocation sites.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "97dee4f3206622f31396dede2b5ddb8670458f56",
      "tree": "0698df23dc32aa44cfc75968163825841c534160",
      "parents": [
        "108b02cfce04ee90b0a07ee0b104baffd39f5934"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Sep 07 15:35:33 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:33 2010 +0200"
      },
      "message": "perf: Move some code around\n\nMove all inherit code near each other.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "108b02cfce04ee90b0a07ee0b104baffd39f5934",
      "tree": "e209d5fe01cda90df2cc0241c6247fd934cc5087",
      "parents": [
        "b5ab4cd563e7ab49b27957704112a8ecade54e1f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 06 14:32:03 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:32 2010 +0200"
      },
      "message": "perf: Per-pmu-per-cpu contexts\n\nAllocate per-cpu contexts per pmu.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5ab4cd563e7ab49b27957704112a8ecade54e1f",
      "tree": "a5d1194e001a1203c679e1f0014d3b40118a725d",
      "parents": [
        "b28ab83c595e767f2028276b7398d17f2253cec0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 06 16:32:21 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:32 2010 +0200"
      },
      "message": "perf: Per cpu-context rotation timer\n\nGive each cpu-context its own timer so that it is a self contained\nentity, this eases the way for per-pmu-per-cpu contexts as well as\nprovides the basic infrastructure to allow different rotation\ntimes per pmu.\n\nThings to look at:\n - folding the tick and these TICK_NSEC timers\n - separate task context rotation\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b28ab83c595e767f2028276b7398d17f2253cec0",
      "tree": "ae52b2d4c10d1317ec7a5906bea56847e95b5f43",
      "parents": [
        "c3f00c70276d8ae82578c8b773e2db657f69a478"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 06 14:48:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:32 2010 +0200"
      },
      "message": "perf: Remove the swevent hash-table from the cpu context\n\nSeparate the swevent hash-table from the cpu_context bits in\npreparation for per pmu cpu contexts.\n\nThis keeps the swevent hash a global entity.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c3f00c70276d8ae82578c8b773e2db657f69a478",
      "tree": "d941c7ffd4ca6918140690023a2611be3b055006",
      "parents": [
        "15ac9a395a753cb28c674e7ea80386ffdff21785"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Aug 18 14:37:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:31 2010 +0200"
      },
      "message": "perf: Separate find_get_context() from event initialization\n\nSeparate find_get_context() from the event allocation and\ninitialization so that we may make find_get_context() depend\non the event pmu in a later patch.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "15ac9a395a753cb28c674e7ea80386ffdff21785",
      "tree": "63879e3031a6ed8e372ffd254ef97ff703a4d478",
      "parents": [
        "a4eaf7f14675cb512d69f0c928055e73d0c6d252"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Sep 06 15:51:45 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:31 2010 +0200"
      },
      "message": "perf: Remove the sysfs bits\n\nNeither the overcommit nor the reservation sysfs parameter were\nactually working, remove them as they\u0027ll only get in the way.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a4eaf7f14675cb512d69f0c928055e73d0c6d252",
      "tree": "e8a0f631fc28d4bd9becd2e9e2c71743c64ee3ec",
      "parents": [
        "fa407f35e0298d841e4088f95a7f9cf6e725c6d5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Jun 16 14:37:10 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:30 2010 +0200"
      },
      "message": "perf: Rework the PMU methods\n\nReplace pmu::{enable,disable,start,stop,unthrottle} with\npmu::{add,del,start,stop}, all of which take a flags argument.\n\nThe new interface extends the capability to stop a counter while\nkeeping it scheduled on the PMU. We replace the throttled state with\nthe generic stopped state.\n\nThis also allows us to efficiently stop/start counters over certain\ncode paths (like IRQ handlers).\n\nIt also allows scheduling a counter without it starting, allowing for\na generic frozen state (useful for rotating stopped counters).\n\nThe stopped state is implemented in two different ways, depending on\nhow the architecture implemented the throttled state:\n\n 1) We disable the counter:\n    a) the pmu has per-counter enable bits, we flip that\n    b) we program a NOP event, preserving the counter state\n\n 2) We store the counter state and ignore all read/overflow events\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa407f35e0298d841e4088f95a7f9cf6e725c6d5",
      "tree": "8ffb9141278688835de02e1940a8535c54a87cd7",
      "parents": [
        "ad5133b7030d04ce7701aa7cbe98f561347c79c2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 24 12:35:12 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:30 2010 +0200"
      },
      "message": "perf: Shrink hw_perf_event\n\nUse hw_perf_event::period_left instead of hw_perf_event::remaining\nand win back 8 bytes.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ad5133b7030d04ce7701aa7cbe98f561347c79c2",
      "tree": "b0593f2cdc40432ad2d91c5eaa9485df328ab97b",
      "parents": [
        "33696fc0d141bbbcb12f75b69608ea83282e3117"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 15 12:22:39 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:30 2010 +0200"
      },
      "message": "perf: Default PMU ops\n\nProvide default implementations for the pmu txn methods, this\nallows us to remove some conditional code.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "33696fc0d141bbbcb12f75b69608ea83282e3117",
      "tree": "72e08dba377d57eb7dd8c08a937a6de10e8af9c4",
      "parents": [
        "24cd7f54a0d47e1d5b3de29e2456bfbd2d8447b7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 14 08:49:00 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:29 2010 +0200"
      },
      "message": "perf: Per PMU disable\n\nChanges perf_disable() into perf_pmu_disable().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "24cd7f54a0d47e1d5b3de29e2456bfbd2d8447b7",
      "tree": "a37d3a4cb101e3f67635a1920f447c9e9e8d8ab2",
      "parents": [
        "9ed6060d286b1eb55974d09080f442f809408c42"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 11 17:32:03 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:29 2010 +0200"
      },
      "message": "perf: Reduce perf_disable() usage\n\nSince the current perf_disable() usage is only an optimization,\nremove it for now. This eases the removal of the __weak\nhw_perf_enable() interface.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9ed6060d286b1eb55974d09080f442f809408c42",
      "tree": "529961474ca96bef34ec0b75e35fe991aee0e80d",
      "parents": [
        "b0a873ebbf87bf38bf70b5e39a7cadc96099fa13"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 11 17:36:35 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:28 2010 +0200"
      },
      "message": "perf: Unindent labels\n\nFixup random annoying style bits.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0a873ebbf87bf38bf70b5e39a7cadc96099fa13",
      "tree": "63ab672b847aed295f99b9b2a3bbcfd5d3d35bd9",
      "parents": [
        "51b0fe39549a04858001922919ab355dee9bdfcf"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 11 13:35:08 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:28 2010 +0200"
      },
      "message": "perf: Register PMU implementations\n\nSimple registration interface for struct pmu, this provides the\ninfrastructure for removing all the weak functions.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "51b0fe39549a04858001922919ab355dee9bdfcf",
      "tree": "024768dd0c87e890edf76e129820ea0cdf16a257",
      "parents": [
        "2aa61274efb9f532deaebc9812675a27af1994cb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 11 13:35:57 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:46:27 2010 +0200"
      },
      "message": "perf: Deconstify struct pmu\n\nsed -ie \u0027s/const struct pmu\\\u003e/struct pmu/g\u0027 `git grep -l \"const struct pmu\\\u003e\"`\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nCc: stephane eranian \u003ceranian@googlemail.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Yanmin \u003cyanmin_zhang@linux.intel.com\u003e\nCc: Deng-Cheng Zhu \u003cdengcheng.zhu@gmail.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michael Cree \u003cmcree@orcon.net.nz\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2aa61274efb9f532deaebc9812675a27af1994cb",
      "tree": "c2f70525dc152e0ddce60f1a3021473cc6a3f298",
      "parents": [
        "359d5106a2ff4ffa2ba129ec8f54743c341dabfc",
        "5e11637e2c929e34dcc0fbbfb48bdb638937701a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:40:06 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:40:08 2010 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: Pick up pending fixes before applying dependent new changes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5e11637e2c929e34dcc0fbbfb48bdb638937701a",
      "tree": "ed782662362ee0ea5ac888588664aeb97e6f1312",
      "parents": [
        "9cb627d5f38830ca19aa0dca52d1d3a633018bf7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 11 13:35:08 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Sep 09 20:38:52 2010 +0200"
      },
      "message": "perf: Fix CPU hotplug\n\nSince we have UP_PREPARE, we should also have UP_CANCELED.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus \u003cpaulus@samba.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa66f07aa1f0950e1dc78b7ab39728b3f8aa77a1",
      "tree": "4ad4612c2fc07f159e192fae9145f9d87a697592",
      "parents": [
        "5225c45899e872383ca39f5533d28ec63c54b39e"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Thu Aug 26 16:40:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Aug 30 12:16:55 2010 +0200"
      },
      "message": "perf_events: Fix time tracking for events with pid !\u003d -1 and cpu !\u003d -1\n\nPer-thread events with a cpu filter, i.e., cpu !\u003d -1, were not\nreporting correct timings when the thread never ran on the\nmonitored cpu. The time enabled was reported as a negative\nvalue.\n\nThis patch fixes the problem by updating tstamp_stopped,\ntstamp_running in event_sched_out() for events with filters and\nwhich are marked as INACTIVE.\n\nThe function group_sched_out() is modified to systematically\ncall into event_sched_out() to avoid duplicating the timing\nadjustment code twice.\n\nWith the patch, I now get:\n\n$ task_cpu -i -e unhalted_core_cycles,unhalted_core_cycles\nnoploop 2 noploop for 2 seconds\nCPU0 0\t\t   unhalted_core_cycles (ena\u003d1,991,136,594, run\u003d0)\nCPU0 0\t\t   unhalted_core_cycles (ena\u003d1,991,136,594, run\u003d0)\n\nCPU1 0\t\t   unhalted_core_cycles (ena\u003d1,991,136,594, run\u003d0)\nCPU1 0\t\t   unhalted_core_cycles (ena\u003d1,991,136,594, run\u003d0)\n\nCPU2 0\t\t   unhalted_core_cycles (ena\u003d1,991,136,594, run\u003d0)\nCPU2 0\t\t   unhalted_core_cycles (ena\u003d1,991,136,594, run\u003d0)\n\nCPU3 4,747,990,931 unhalted_core_cycles (ena\u003d1,991,136,594, run\u003d1,991,136,594)\nCPU3 4,747,990,931 unhalted_core_cycles (ena\u003d1,991,136,594, run\u003d1,991,136,594)\n\nSigned-off-by: Stephane Eranian \u003ceranian@gmail.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: paulus@samba.org\nCc: davem@davemloft.net\nCc: fweisbec@gmail.com\nCc: perfmon2-devel@lists.sf.net\nCc: eranian@google.com\nLKML-Reference: \u003c4c76802d.aae9d80a.115d.70fe@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c8710ad38900153af7a3e6762e99c062cfa46443",
      "tree": "a0c0632274c4eb72f51e99a5861f71cffe65ea60",
      "parents": [
        "6016ee13db518ab1cd0cbf43fc2ad5712021e338",
        "86397dc3ccfc0e17b7550d05eaf15fe91f6498dd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 19 12:48:09 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Aug 19 12:48:09 2010 +0200"
      },
      "message": "Merge branch \u0027tip/perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core\n"
    },
    {
      "commit": "7ae07ea3a48d30689ee037cb136bc21f0b37d8ae",
      "tree": "2cb895a0794bcb2e45a4f48ef7e93302c1f6332c",
      "parents": [
        "927c7a9e92c4f69097a6e9e086d11fc2f8a5b40b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Aug 14 20:45:13 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 19 01:32:53 2010 +0200"
      },
      "message": "perf: Humanize the number of contexts\n\nInstead of hardcoding the number of contexts for the recursions\nbarriers, define a cpp constant to make the code more\nself-explanatory.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\n"
    },
    {
      "commit": "927c7a9e92c4f69097a6e9e086d11fc2f8a5b40b",
      "tree": "d98bde726caf6b27d465852b5683cf08485df007",
      "parents": [
        "f72c1a931e311bb7780fee19e41a89ac42cab50e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 01 16:20:36 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 19 01:32:31 2010 +0200"
      },
      "message": "perf: Fix race in callchains\n\nNow that software events don\u0027t have interrupt disabled anymore in\nthe event path, callchains can nest on any context. So seperating\nnmi and others contexts in two buffers has become racy.\n\nFix this by providing one buffer per nesting level. Given the size\nof the callchain entries (2040 bytes * 4), we now need to allocate\nthem dynamically.\n\nv2: Fixed put_callchain_entry call after recursion.\n    Fix the type of the recursion, it must be an array.\n\nv3: Use a manual pr cpu allocation (temporary solution until NMIs\n    can safely access vmalloc\u0027ed memory).\n    Do a better separation between callchain reference tracking and\n    allocation. Make the \"put\" path lockless for non-release cases.\n\nv4: Protect the callchain buffers with rcu.\n\nv5: Do the cpu buffers allocations node affine.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Borislav Petkov \u003cbp@amd64.org\u003e\n"
    },
    {
      "commit": "f72c1a931e311bb7780fee19e41a89ac42cab50e",
      "tree": "470aa111c535af47d8444a249c83b5d360806e69",
      "parents": [
        "56962b4449af34070bb1994621ef4f0265eed4d8"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Jul 01 02:31:21 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 19 01:32:11 2010 +0200"
      },
      "message": "perf: Factorize callchain context handling\n\nStore the kernel and user contexts from the generic layer instead\nof archs, this gathers some repetitive code.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nTested-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Borislav Petkov \u003cbp@amd64.org\u003e\n"
    },
    {
      "commit": "56962b4449af34070bb1994621ef4f0265eed4d8",
      "tree": "b4c5dfee35d272c71cba80e75a51cb3e7070e430",
      "parents": [
        "70791ce9ba68a5921c9905ef05d23f62a90bc10c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Jun 30 23:03:51 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Aug 19 01:30:59 2010 +0200"
      },
      "message": "perf: Generalize some arch callchain code\n\n- Most archs use one callchain buffer per cpu, except x86 that needs\n  to deal with NMIs. Provide a default perf_callchain_buffer()\n  implementation that x86 overrides.\n\n- Centralize all the kernel/user regs handling and invoke new arch\n  handlers from there: perf_callchain_user() / perf_callchain_kernel()\n  That avoid all the user_mode(), current-\u003emm checks and so...\n\n- Invert some parameters in perf_callchain_*() helpers: entry to the\n  left, regs to the right, following the traditional (dst, src).\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nTested-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Borislav Petkov \u003cbp@amd64.org\u003e\n"
    },
    {
      "commit": "c4efd6b569b2646e1346a08a4c40286f8bcb5f11",
      "tree": "bf33e8594ac4e628cc95f2ef25513788b8273601",
      "parents": [
        "4aed2fd8e3181fea7c09ba79cf64e7e3f4413bf9",
        "0bcfe75807944106a3aa655a54bb610d62f3a7f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 09:39:22 2010 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)\n  sched: Use correct macro to display sched_child_runs_first in /proc/sched_debug\n  sched: No need for bootmem special cases\n  sched: Revert nohz_ratelimit() for now\n  sched: Reduce update_group_power() calls\n  sched: Update rq-\u003eclock for nohz balanced cpus\n  sched: Fix spelling of sibling\n  sched, cpuset: Drop __cpuexit from cpu hotplug callbacks\n  sched: Fix the racy usage of thread_group_cputimer() in fastpath_timer_check()\n  sched: run_posix_cpu_timers: Don\u0027t check -\u003eexit_state, use lock_task_sighand()\n  sched: thread_group_cputime: Simplify, document the \"alive\" check\n  sched: Remove the obsolete exit_state/signal hacks\n  sched: task_tick_rt: Remove the obsolete -\u003esignal !\u003d NULL check\n  sched: __sched_setscheduler: Read the RLIMIT_RTPRIO value lockless\n  sched: Fix comments to make them DocBook happy\n  sched: Fix fix_small_capacity\n  powerpc: Exclude arch_sd_sibiling_asym_packing() on UP\n  powerpc: Enable asymmetric SMT scheduling on POWER7\n  sched: Add asymmetric group packing option for sibling domain\n  sched: Fix capacity calculations for SMT4\n  sched: Change nohz idle load balancing logic to push model\n  ...\n"
    },
    {
      "commit": "4cb6948e5365ab874bb71ac35fb6b7c6dd305765",
      "tree": "0af0f44cce9043f3d66b7259536c6c99b790d9b0",
      "parents": [
        "89275d59b572b92b1e2f6ddb63c49deecb801ff9",
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:46:31 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:46:35 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.35-rc3\u0027 into sched/core\n\nMerge reason: Update to the latest -rc.\n"
    },
    {
      "commit": "c726b61c6a5acc54c55ed7a0e7638cc4c5a100a8",
      "tree": "3f44aa013d31d34951e9610e79ff14c1148ad6ac",
      "parents": [
        "7be7923633a142402266d642ccebf74f556a649b",
        "018378c55b03f88ff513aba4e0e93b8d4a9cf241"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 18:55:20 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 18:55:57 2010 +0200"
      },
      "message": "Merge branch \u0027perf/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core\n"
    },
    {
      "commit": "e78505958cf123048fb48cb56b79cebb8edd15fb",
      "tree": "3688d124cdc906cbe9f6587c8671ba0a14c95262",
      "parents": [
        "a6e6dea68c18f705957573ee5596097c7e82d0e5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 21 14:43:08 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:37 2010 +0200"
      },
      "message": "perf: Convert perf_event to local_t\n\nSince now all modification to event-\u003ecount (and -\u003eprev_count\nand -\u003eperiod_left) are local to a cpu, change then to local64_t so we\navoid the LOCK\u0027ed ops.\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": "a6e6dea68c18f705957573ee5596097c7e82d0e5",
      "tree": "2e8d302800fa4c57cc6604d856e6d680d3ee120f",
      "parents": [
        "b5e58793c7a8ec35e72ea6ec6c353499dd189809"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 21 14:27:58 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:37 2010 +0200"
      },
      "message": "perf: Add perf_event::child_count\n\nOnly child counters adding back their values into the parent counter\nare responsible for cross-cpu updates to event-\u003ecount.\n\nSo if we pull that out into a new child_count variable, we get an\nevent-\u003ecount that is only modified locally.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b5e58793c7a8ec35e72ea6ec6c353499dd189809",
      "tree": "b416db400eb1f67c0b078bd15d60aa9a561d7edf",
      "parents": [
        "1996bda2a42480c275656233e631ee0966574be4"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 21 14:43:12 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:36 2010 +0200"
      },
      "message": "perf: Add perf_event_count()\n\nCreate a helper function for those sites that want to read the event count.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d57e34fdd60be7ffd0b1d86bfa1a553df86b7172",
      "tree": "f6044a0b2c2a757d56ad47e88cfa662bfc5bf424",
      "parents": [
        "ca5135e6b4a3cbc7e187737520fbc4b508f6f7a2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 28 19:41:35 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:35 2010 +0200"
      },
      "message": "perf: Simplify the ring-buffer logic: make perf_buffer_alloc() do everything needed\n\nCurrently there are perf_buffer_alloc() + perf_buffer_init() + some\nseparate bits, fold it all into a single perf_buffer_alloc() and only\nleave the attachment to the event separate.\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": "ca5135e6b4a3cbc7e187737520fbc4b508f6f7a2",
      "tree": "b9bf928206d397f9c0474b1d2ea8f777cf4d22d7",
      "parents": [
        "68aa00ac0a82e9a876c799bf6be7622b8f1c8517"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 28 19:33:23 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:35 2010 +0200"
      },
      "message": "perf: Rename perf_mmap_data to perf_buffer\n\nRename to clarify code.\n\ns/perf_mmap_data/perf_buffer/g and selective s/data/buffer/g\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8d2cacbbb8deadfae78aa16e4e1ee619bdd7019e",
      "tree": "79fcb319d1c99e348b0a04056e016c85c3666b35",
      "parents": [
        "3af9e859281bda7eb7c20b51879cf43aa788ac2e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 25 17:49:05 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:34 2010 +0200"
      },
      "message": "perf: Cleanup {start,commit,cancel}_txn details\n\nClarify some of the transactional group scheduling API details\nand change it so that a successfull -\u003ecommit_txn also closes\nthe transaction.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1274803086.5882.1752.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3af9e859281bda7eb7c20b51879cf43aa788ac2e",
      "tree": "cddb7fc788abc826551e12bba5892c6b26942392",
      "parents": [
        "8ed92280be013180e24c84456ab6babcb07037cc"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "ebmunson@us.ibm.com",
        "time": "Tue May 18 15:30:49 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:34 2010 +0200"
      },
      "message": "perf: Add non-exec mmap() tracking\n\nAdd the capacility to track data mmap()s. This can be used together\nwith PERF_SAMPLE_ADDR for data profiling.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\n[Updated code for stable perf ABI]\nSigned-off-by: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1274193049-25997-1-git-send-email-ebmunson@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8ed92280be013180e24c84456ab6babcb07037cc",
      "tree": "5b0826219599532cc1a17ed823bd2358a2bef666",
      "parents": [
        "ecc55f84b2e9741f29daa787ded93986df6cbe17"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 21 15:13:59 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:33 2010 +0200"
      },
      "message": "perf, trace: Remove superfluous rcu_read_lock()\n\n__DO_TRACE() already calls the callbacks under rcu_read_lock_sched(),\nwhich is sufficient for our needs, avoid doing it again.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ecc55f84b2e9741f29daa787ded93986df6cbe17",
      "tree": "9da1012eb14faf8133e7e432b0da581ed55de6ee",
      "parents": [
        "e768aee89c687a50e6a2110e30c5cae1fbf0d2da"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 21 15:11:34 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:33 2010 +0200"
      },
      "message": "perf, trace: Inline perf_swevent_put_recursion_context()\n\nInline perf_swevent_put_recursion_context into perf_tp_event(), this\nshrinks the per trace template code footprint and saves a function\ncall.\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": "c676329abb2b8359d9a5d734dec0c81779823fd6",
      "tree": "b6c33715176221a87100228399c2a6f5049e44ea",
      "parents": [
        "95ae3c59fa8ad616c73745e21154b5af0fb10168"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 25 10:48:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 10:34:49 2010 +0200"
      },
      "message": "sched_clock: Add local_clock() API and improve documentation\n\nFor people who otherwise get to write: cpu_clock(smp_processor_id()),\nthere is now: local_clock().\n\nAlso, as per suggestion from Andrew, provide some documentation on\nthe various clock interfaces, and minimize the unsigned long long vs\nu64 mess.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nLKML-Reference: \u003c1275052414.1645.52.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0f82b81fe6bbcf78d478071f33e44554726bc81",
      "tree": "6305c095b927f956a791b9dce687cb94a21718e6",
      "parents": [
        "c9cf4dbb4d9ca715d8fedf13301a53296429abc6"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 20 07:47:21 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jun 08 23:31:27 2010 +0200"
      },
      "message": "perf: Drop the skip argument from perf_arch_fetch_regs_caller\n\nDrop this argument now that we always want to rewind only to the\nstate of the first caller.\nIt means frame pointers are not necessary anymore to reliably get\nthe source of an event. But this also means we need this helper\nto be a macro now, as an inline function is not an option since\nwe need to know when to provide a default implentation.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\n"
    },
    {
      "commit": "f6ab91add6355e231e1c47897027b2a6ee4fa268",
      "tree": "74dffdf3b78c290d38a78b73788dce64e4c1e857",
      "parents": [
        "58cc1a9e3b11a84e66c4d3a4cc9073f2cb0ecabb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 04 15:18:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 18:43:00 2010 +0200"
      },
      "message": "perf: Fix signed comparison in perf_adjust_period()\n\nFrederic reported that frequency driven swevents didn\u0027t work properly\nand even caused a division-by-zero error.\n\nIt turns out there are two bugs, the division-by-zero comes from a\nfailure to deal with that in perf_calculate_period().\n\nThe other was more interesting and turned out to be a wrong comparison\nin perf_adjust_period(). The comparison was between an s64 and u64 and\ngot implicitly converted to an unsigned comparison. The problem is\nthat period_left is typically \u003c 0, so it ended up being always true.\n\nCure this by making the local period variables s64.\n\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c6df8d5ab87a246942d138321e1721edbb69f6e1",
      "tree": "4fa2965d148c3e7ea456ab889d278d5c16d25d17",
      "parents": [
        "da3fd1a0010ccc9fe6fd5ae2b9e85e1aacc03e4d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 03 11:21:20 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 03 17:03:08 2010 +0200"
      },
      "message": "perf: Fix crash in swevents\n\nFrederic reported that because swevents handling doesn\u0027t disable IRQs\nanymore, we can get a recursion of perf_adjust_period(), once from\noverflow handling and once from the tick.\n\nIf both call -\u003edisable, we get a double hlist_del_rcu() and trigger\na LIST_POISON2 dereference.\n\nSince we don\u0027t actually need to stop/start a swevent to re-programm\nthe hardware (lack of hardware to program), simply nop out these\ncallbacks for the swevent pmu.\n\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1275557609.27810.35218.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74048f895fa8cbf8119b4999f1f44881a825f954",
      "tree": "16c38467e68c730d459dd64cee7f749f1745c782",
      "parents": [
        "90151c35b19633e0cab5a6c80f1ba4a51e7c913b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 27 21:34:58 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:10 2010 +0200"
      },
      "message": "perf_events: Fix unincremented buffer base on partial copy\n\nIf a sample size crosses to the next page boundary, the copy\nwill be made in more than one step. However we forget to advance\nthe source offset for the next copy, leading to unexpected double\ncopies that completely mess up the traces.\n\nThis fixes various kinds of bad traces that have irrelevant\ndata inside, as an example:\n\n\tgeany-4979  [001]  5758.077775: sched_switch: prev_comm\u003d! prev_pid\u003d121\n\t\tprev_prio\u003d0 prev_state\u003dS|D|Z|X|x \u003d\u003d\u003e next_comm\u003d next_pid\u003d7497072\n\t\tnext_prio\u003d0\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1274988898-5639-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90151c35b19633e0cab5a6c80f1ba4a51e7c913b",
      "tree": "448c86520eef5b9dc0f06c59a8a96abfd4096fab",
      "parents": [
        "2e97942fe57864588774f173cf4cd7bb68968b76"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Tue May 25 16:23:10 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:10 2010 +0200"
      },
      "message": "perf_events: Fix event scheduling issues introduced by transactional API\n\nThe transactional API patch between the generic and model-specific\ncode introduced several important bugs with event scheduling, at\nleast on X86. If you had pinned events, e.g., watchdog,  and were\nover-committing the PMU, you would get bogus counts. The bug was\nshowing up on Intel CPU because events would move around more\noften that on AMD. But the problem also existed on AMD, though\nharder to expose.\n\nThe issues were:\n\n - group_sched_in() was missing a cancel_txn() in the error path\n\n - cpuc-\u003en_added was not properly maintained, leading to missing\n   actions in hw_perf_enable(), i.e., n_running being 0. You cannot\n   update n_added until you know the transaction has succeeded. In\n   case of failed transaction n_added was not adjusted back.\n\n - in case of failed transactions, event_sched_out() was called\n   and eventually invoked x86_disable_event() to touch the HW reg.\n   But with transactions, on X86, event_sched_in() does not touch\n   HW registers, it simply collects events into a list. Thus, you\n   could end up calling x86_disable_event() on a counter which\n   did not correspond to the current event when idx !\u003d -1.\n\nThe patch modifies the generic and X86 code to avoid all those problems.\n\nFirst, we keep track of the number of events added last. In case the\ntransaction fails, we substract them from n_added. This approach is\nnecessary (as opposed to delaying updates to n_added) because not all\nevent updates use the transaction API, e.g., single events.\n\nSecond, we encapsulate the event_sched_in() and event_sched_out() in\ngroup_sched_in() inside the transaction. That makes the operations\nsymmetrical and you can also detect that you are inside a transaction\nand skip the HW reg access by checking cpuc-\u003egroup_flag.\n\nWith this patch, you can now overcommit the PMU even with pinned\nsystem-wide events present and still get valid counts.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1274796225.5882.1389.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
      "tree": "73e82ee5a624012ac723c3af21bb1945b7bd675f",
      "parents": [
        "ac9721f3f54b27a16c7e1afb2481e7ee95a70318"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 27 15:47:49 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:09 2010 +0200"
      },
      "message": "perf_events: Fix races in group composition\n\nGroup siblings don\u0027t pin each-other or the parent, so when we destroy\nevents we must make sure to clean up all cross referencing pointers.\n\nIn particular, for destruction of a group leader we must be able to\nfind all its siblings and remove their reference to it.\n\nThis means that detaching an event from its context must not detach it\nfrom the group, otherwise we can end up failing to clear all pointers.\n\nSolve this by clearly separating the attachment to a context and\nattachment to a group, and keep the group composed until we destroy\nthe events.\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": "ac9721f3f54b27a16c7e1afb2481e7ee95a70318",
      "tree": "a9f21d60c7c4c1910696553a6f8273edcca03c64",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 27 12:54:41 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:08 2010 +0200"
      },
      "message": "perf_events: Fix races and clean up perf_event and perf_mmap_data interaction\n\nIn order to move toward separate buffer objects, rework the whole\nperf_mmap_data construct to be a more self-sufficient entity, one\nwith its own lifetime rules.\n\nThis greatly sanitizes the whole output redirection code, which\nwas riddled with bugs and races.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea635c64e007061f6468ece5cc9cc62d41d4ecf2",
      "tree": "eaa7123e7749893e8f542d12cba616664bc2c848",
      "parents": [
        "d7065da038227a4d09a244e6014e0186a6bd21d0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 26 17:40:29 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:03:08 2010 -0400"
      },
      "message": "Fix racy use of anon_inode_getfd() in perf_event.c\n\nonce anon_inode_getfd() is called, you can\u0027t expect *anything* about\nstruct file that descriptor points to - another thread might be doing\nwhatever it likes with descriptor table at that point.\n\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "580d607cd666dfabfc1c7b0fb08c8ac690c7c87f",
      "tree": "6d7c87d60b12adbacd4dbcb8c784975bc1203228",
      "parents": [
        "a94ffaaf55552769af328eaca9260fe6291c66c7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 20 20:54:31 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 21 11:38:00 2010 +0200"
      },
      "message": "perf: Optimize perf_tp_event_match()\n\nSince we know tracepoints come from kernel context,\navoid conditionals that try and establish that very\nfact.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100521090710.904944001@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a94ffaaf55552769af328eaca9260fe6291c66c7",
      "tree": "39339b21a962b50c6f8be09786fcb41cdc4a8459",
      "parents": [
        "3cafa9fbb5c1d564b7b8e7224f493effbf04ffee"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 20 19:50:07 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 21 11:37:59 2010 +0200"
      },
      "message": "perf: Remove more code from the fastpath\n\nSanity checks cost instructions.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100521090710.852926930@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3cafa9fbb5c1d564b7b8e7224f493effbf04ffee",
      "tree": "c046895789900e8a031b241e79e7f0d45d7e39f0",
      "parents": [
        "5d967a8be636a4f301a8daad642bd1007299d9ec"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 20 19:07:56 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 21 11:37:59 2010 +0200"
      },
      "message": "perf: Optimize the !vmalloc backed buffer\n\nReduce code and data by using the knowledge that for\n!PERF_USE_VMALLOC data_order is always 0.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100521090710.795019386@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5d967a8be636a4f301a8daad642bd1007299d9ec",
      "tree": "a55fa9c068f4a25a0de62797994353a36e165ca5",
      "parents": [
        "adb8e118f288dc4c569ac9a89010b81a4745fbf0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 20 16:46:39 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 21 11:37:59 2010 +0200"
      },
      "message": "perf: Optimize perf_output_copy()\n\nReduce the clutter in perf_output_copy() by keeping\nan interator in perf_output_handle.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100521090710.742809176@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "adb8e118f288dc4c569ac9a89010b81a4745fbf0",
      "tree": "40f2bbbe7c59fb4b4a44120fa9cc79822b68e545",
      "parents": [
        "0e2e63dd608bf5844ffae7bf7d860de18a62724c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 20 16:21:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 21 11:37:58 2010 +0200"
      },
      "message": "perf: Fix wakeup storm for RO mmap()s\n\nRO mmap()s don\u0027t update the tail pointer, so\ncomparing against it for determining the written data\nsize doesn\u0027t really do any good.\n\nKeep track of when we last did a wakeup, and compare\nagainst that.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100521090710.684479310@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0f139300c9057c16b5833a4636b715b104fe0baa",
      "tree": "e7b19c4fc8599fb683cee1b618b28a8aa16208e2",
      "parents": [
        "1c024eca51fdc965290acf342ae16a476c2189d0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 20 14:35:15 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 21 11:37:57 2010 +0200"
      },
      "message": "perf: Ensure that IOC_OUTPUT isn\u0027t used to create multi-writer buffers\n\nSince we want to ensure buffers only have a single\nwriter, we must avoid creating one with multiple.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100521090710.528215873@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1c024eca51fdc965290acf342ae16a476c2189d0",
      "tree": "28dc160cc70a20eeb8b8825d6d52ea88a6188413",
      "parents": [
        "b7e2ecef92d2e7785e6d76b41e5ba8bcbc45259d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 19 14:02:22 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 21 11:37:56 2010 +0200"
      },
      "message": "perf, trace: Optimize tracepoints by using per-tracepoint-per-cpu hlist to track events\n\nAvoid the swevent hash-table by using per-tracepoint\nhlists.\n\nAlso, avoid conditionals on the fast path by ordering\nwith probe unregister so that we should never get on\nthe callback path without the data being there.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20100521090710.473188012@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "acd35a463cb2a8d2b28e094d718cf6e653ad7191",
      "tree": "65f9392ef5b670eafa819138602a8c49458040ab",
      "parents": [
        "dfacc4d6c98b89609250269f518c1f54c30454ef"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 20 21:28:34 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 20 21:28:34 2010 +0200"
      },
      "message": "perf: Fix forgotten preempt_enable by nested writers\n\nA writer that gets a reference to the buffer handle disables\npreemption. When we put that reference, we check if we are\nthe outer most writer and if not, we simply return and defer\nthe head update to the outer most writer. The problem here\nis that preemption is only reenabled by the outer most, that\nproduces preemption count imbalance for every nested writer\nthat exit.\n\nSo just don\u0027t forget to always re-enable preemption when we\nput the buffer reference, whoever we are.\n\nFixes lots of sleeping in atomic warnings, visible with lock\nevents recording.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\n"
    },
    {
      "commit": "dfacc4d6c98b89609250269f518c1f54c30454ef",
      "tree": "e7effbee7bdc85d18f7b26ab9cb5c9f700d1481a",
      "parents": [
        "f869097e884d8cb65b2bb7831ca57b7dffb66fdd",
        "85cb68b27c428d477169f3aa46c72dba103a17bd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 20 14:38:55 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu May 20 14:38:55 2010 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing into perf/core\n"
    },
    {
      "commit": "49f135ed02828a58b2401f149926c2e3c9cb0116",
      "tree": "6f5541da5ad60131eb32beb42083443705351750",
      "parents": [
        "cbb5cf7ff6b298beacfe23db3386335b0b9c0a2d"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 20 10:17:46 2010 +0200"
      },
      "committer": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 20 10:40:37 2010 +0200"
      },
      "message": "perf: Comply with new rcu checks API\n\nThe software events hlist doesn\u0027t fully comply with the new\nrcu checks api.\n\nWe need to consider three different sides that access the hlist:\n\n- the hlist allocation/release side. This side happens when an\n  events is created or released, accesses to the hlist are\n  serialized under the cpuctx mutex.\n\n- the events insertion/removal in the hlist. This side is always\n  serialized against the above one. The hlist is always present\n  during such operations. This side happens when a software event\n  is scheduled in/out. The serialization that ensures the software\n  event is really attached to the context is made under the\n  ctx-\u003elock.\n\n- events triggering. This is the read side, it can happen\n  concurrently with any update side.\n\nThis patch deals with them one by one and anticipates with the\nseparate rcu mem space patches in preparation.\n\nThis patch fixes various annoying rcu warnings.\n\nReported-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "6d1acfd5c6bfd5231c13a8f2858d7f2afbaa1b62",
      "tree": "abcfa95947cafc94c978a255b814472fe67cad22",
      "parents": [
        "fa5881514ef9c9bcb29319aad85cf2d8889d91f1"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 18 11:12:48 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 18:35:49 2010 +0200"
      },
      "message": "perf: Optimize perf_output_*() by avoiding local_xchg()\n\nSince the x86 XCHG ins implies LOCK, avoid the use by\nusing a sequence count instead.\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": "fa5881514ef9c9bcb29319aad85cf2d8889d91f1",
      "tree": "4ca8bc35591b05adc8556358fb91498d2057c394",
      "parents": [
        "ef60777c9abd999db5eb4e338aae3eb593ae8e10"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 18 10:54:20 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 18:35:49 2010 +0200"
      },
      "message": "perf: Optimize the hotpath by converting the perf output buffer to local_t\n\nSince there is now only a single writer, we can use\nlocal_t instead and avoid all these pesky LOCK insn.\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": "ef60777c9abd999db5eb4e338aae3eb593ae8e10",
      "tree": "2dee468a922ebea2241d1c1ec10e581d62bf2db6",
      "parents": [
        "c7920614cebbf269a7c8397ff959a8dcf727465c"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 18 10:50:41 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 18:35:48 2010 +0200"
      },
      "message": "perf: Optimize the perf_output() path by removing IRQ-disables\n\nSince we can now assume there is only a single writer\nto each buffer, we can remove per-cpu lock thingy and\nuse a simply nest-count to the same effect.\n\nThis removes the need to disable IRQs.\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\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c7920614cebbf269a7c8397ff959a8dcf727465c",
      "tree": "d1ca38ee77cb4160660efb97b8bdc2e5c44967c1",
      "parents": [
        "a19d35c11fd559dd7dfd5a2078df7c9af74a5d88"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 18 10:33:24 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 18:35:48 2010 +0200"
      },
      "message": "perf: Disallow mmap() on per-task inherited events\n\nSince we now have working per-task-per-cpu events for\na while, disallow mmap() on per-task inherited\nevents. Those things were a performance problem\nanyway, and doing away with it allows us to optimize\nthe buffer somewhat by assuming there is only a\nsingle writer.\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\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a19d35c11fd559dd7dfd5a2078df7c9af74a5d88",
      "tree": "54cc4f3f5813eb7afd81d089d581a098df896f11",
      "parents": [
        "00d1d0b095ba4e5c0958cb228b2a9c445d4a339d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon May 17 18:48:00 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 18:35:47 2010 +0200"
      },
      "message": "perf: Optimize buffer placement by allocating buffers NUMA aware\n\nEnsure cpu bound buffers live on the right NUMA node.\n\nSuggested-by: Stephane Eranian \u003ceranian@google.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: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1274114880.5605.5236.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00d1d0b095ba4e5c0958cb228b2a9c445d4a339d",
      "tree": "68e96107d3297f97c232dac4a5548a8abb9bf42f",
      "parents": [
        "4f41c013f553957765902fb01475972f0af3e8e7"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Mon May 17 12:46:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 18:35:47 2010 +0200"
      },
      "message": "perf: Fix errors path in perf_output_begin()\n\nIn case the sampling buffer has no \"payload\" pages,\nnr_pages is 0. The problem is that the error path in\nperf_output_begin() skips to a label which assumes\nperf_output_lock() has been issued which is not the\ncase. That triggers a WARN_ON() in\nperf_output_unlock().\n\nThis patch fixes the problem by skipping\nperf_output_unlock() in case data-\u003enr_pages is 0.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.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: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4bf13674.014fd80a.6c82.ffffb20c@mx.google.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4f41c013f553957765902fb01475972f0af3e8e7",
      "tree": "ddaa54947cc990094a4b270f2f8b3d6da195044f",
      "parents": [
        "ef4f30f54e265c2f6f9ac9eda4db158a4e16050b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 18 18:08:32 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 18 18:35:46 2010 +0200"
      },
      "message": "perf/ftrace: Optimize perf/tracepoint interaction for single events\n\nWhen we\u0027ve got but a single event per tracepoint\nthere is no reason to try and multiplex it so don\u0027t.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\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": "96c21a460a37880abfbc8445d5b098dbab958a29",
      "tree": "57b6ae2ecb8713b720fb5ee86ebbf3d1b2638856",
      "parents": [
        "050735b08ca8a016bbace4445fa025b88fee770b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 11 16:19:10 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 11 17:08:24 2010 +0200"
      },
      "message": "perf: Fix exit() vs event-groups\n\nCorey reported that the value scale times of group siblings are not\nupdated when the monitored task dies.\n\nThe problem appears to be that we only update the group leader\u0027s\ntime values, fix it by updating the whole group.\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\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e # .34.x\nLKML-Reference: \u003c1273588935.1810.6.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "050735b08ca8a016bbace4445fa025b88fee770b",
      "tree": "68ce73ebb40dfcb66c9c18db9d31bfdb82c2e795",
      "parents": [
        "e3174cfd2a1e28fff774681f00a0eef3d31da970"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue May 11 11:51:53 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 11 15:46:43 2010 +0200"
      },
      "message": "perf: Fix exit() vs PERF_FORMAT_GROUP\n\nBoth Stephane and Corey reported that PERF_FORMAT_GROUP didn\u0027t\nwork as expected if the task the counters were attached to quit\nbefore the read() call.\n\nThe cause is that we unconditionally destroy the grouping when\nwe remove counters from their context. Fix this by splitting off\nthe group destroy from the list removal such that\nperf_event_remove_from_context() does not do this and change\nperf_event_release() to do so.\n\nReported-by: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nReported-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: \u003cstable@kernel.org\u003e # .34.x\nLKML-Reference: \u003c1273571513.5605.3527.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3174cfd2a1e28fff774681f00a0eef3d31da970",
      "tree": "5706316d689a9b1fe11df562bed391295deff537",
      "parents": [
        "e61a639a794063d78fd248a37ce2c21d5c81fc19"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 11 08:31:49 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 11 08:31:49 2010 +0200"
      },
      "message": "Revert \"perf: Fix exit() vs PERF_FORMAT_GROUP\"\n\nThis reverts commit 4fd38e4595e2f6c9d27732c042a0e16b2753049c.\n\nIt causes various crashes and hangs when events are activated.\n\nThe cause is not fully understood yet but we need to revert it\nbecause the effects are severe.\n\nReported-by: Stephane Eranian \u003ceranian@google.com\u003e\nReported-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: 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: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6e85158cf5a2385264316870256fb6ad681156a0",
      "tree": "39d5a0c81c4cc54c8051a9f62b587f17b0a2077a",
      "parents": [
        "ed82702155b6343727ee732f7eae6d72e8b453fe"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Sat May 08 20:58:00 2010 +1000"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat May 08 13:16:55 2010 +0200"
      },
      "message": "perf_event: Make software events work again\n\nCommit 6bde9b6ce0127e2a56228a2071536d422be31336 (\"perf: Add\ngroup scheduling transactional APIs\") added code to allow a\ngroup to be scheduled in a single transaction.  However, it\nintroduced a bug in handling events whose pmu does not implement\ntransactions -- at the end of scheduling in the events in the\ngroup, in the non-transactional case the code now falls through\nto the group_error label, and proceeds to unschedule all the\nevents in the group and return failure.\n\nThis fixes it by returning 0 (success) in the non-transactional\ncase.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: eranian@gmail.com\nLKML-Reference: \u003c20100508105800.GB10650@brick.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6bde9b6ce0127e2a56228a2071536d422be31336",
      "tree": "1a1f2fe3dbb741d81b0c08f1822ef7c0af01f91d",
      "parents": [
        "ab608344bcbde4f55ec4cd911b686b0ce3eae076"
      ],
      "author": {
        "name": "Lin Ming",
        "email": "ming.m.lin@intel.com",
        "time": "Fri Apr 23 13:56:00 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:31:02 2010 +0200"
      },
      "message": "perf: Add group scheduling transactional APIs\n\nAdd group scheduling transactional APIs to struct pmu.\nThese APIs will be implemented in arch code, based on Peter\u0027s idea as\nbelow.\n\n\u003e the idea behind hw_perf_group_sched_in() is to not perform\n\u003e schedulability tests on each event in the group, but to add the group\n\u003e as a whole and then perform one test.\n\u003e\n\u003e Of course, when that test fails, you\u0027ll have to roll-back the whole\n\u003e group again.\n\u003e\n\u003e So start_txn (or a better name) would simply toggle a flag in the pmu\n\u003e implementation that will make pmu::enable() not perform the\n\u003e schedulablilty test.\n\u003e\n\u003e Then commit_txn() will perform the schedulability test (so note the\n\u003e method has to have a !void return value.\n\u003e\n\u003e This will allow us to use the regular\n\u003e kernel/perf_event.c::group_sched_in() and all the rollback code.\n\u003e Currently each hw_perf_group_sched_in() implementation duplicates all\n\u003e the rolllback code (with various bugs).\n\n-\u003estart_txn:\nStart group events scheduling transaction, set a flag to make\npmu::enable() not perform the schedulability test, it will be performed\nat commit time.\n\n-\u003ecommit_txn:\nCommit group events scheduling transaction, perform the group\nschedulability as a whole\n\n-\u003ecancel_txn:\nStop group events scheduling transaction, clear the flag so\npmu::enable() will perform the schedulability test.\n\nReviewed-by: Stephane Eranian \u003ceranian@google.com\u003e\nReviewed-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Lin Ming \u003cming.m.lin@intel.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1272002160.5707.60.camel@minggr.sh.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0507c84bf47dfd204299774f45fd16da33f0619",
      "tree": "d40bf7628ebb9935fb1ef6727337dcd9e2c94fd5",
      "parents": [
        "cce913178118b0b36742eb7544c2b38a0c957ee7"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 06 15:42:53 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:30:59 2010 +0200"
      },
      "message": "perf: Annotate perf_event_read_group() vs perf_event_release_kernel()\n\nStephane reported a lockdep warning while using PERF_FORMAT_GROUP.\n\nThe issue is that perf_event_read_group() takes faults while holding\nthe ctx-\u003emutex, while perf_event_release_kernel() can be called from\nmunmap(). Which makes for an AB-BA deadlock.\n\nExcept we can never establish the deadlock because we\u0027ll only ever\ncall perf_event_release_kernel() after all file descriptors are dead\nso there is no concurrency possible.\n\nReported-by: Stephane Eranian \u003ceranian@google.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\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": "cce913178118b0b36742eb7544c2b38a0c957ee7",
      "tree": "25a6d7b4e01fea2932e6e2962a75f7a3d8c19a4f",
      "parents": [
        "d9f599e1e6d019968b35d2dc63074b9e8964fa69",
        "4fd38e4595e2f6c9d27732c042a0e16b2753049c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:30:29 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri May 07 11:30:30 2010 +0200"
      },
      "message": "Merge branch \u0027perf/urgent\u0027 into perf/core\n\nMerge reason: Resolve patch dependency\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    }
  ],
  "next": "4fd38e4595e2f6c9d27732c042a0e16b2753049c"
}
