)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3e260731f8e62baafdff355bb17116e68080a331",
      "old_mode": 33188,
      "old_path": "arch/alpha/kernel/perf_event.c",
      "new_id": "380ef02d557af1630f64dd6524884e5fd38a9c1f",
      "new_mode": 33188,
      "new_path": "arch/alpha/kernel/perf_event.c"
    },
    {
      "type": "modify",
      "old_id": "3343f3f4b973540d6e520d6bba1b56ec7a800d05",
      "old_mode": 33188,
      "old_path": "arch/arm/kernel/perf_event.c",
      "new_id": "448cfa6b3ef09ccd13d78850eb8251f5d26078d7",
      "new_mode": 33188,
      "new_path": "arch/arm/kernel/perf_event.c"
    },
    {
      "type": "modify",
      "old_id": "deb84bbcb0e68978735fff166979b00980083ea5",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/perf_event.c",
      "new_id": "9cb4924b6c07837a47718bb1c842eb40a96df7b8",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/perf_event.c"
    },
    {
      "type": "modify",
      "old_id": "84b1974c628fe5afbce9b34ec9b515c6656680db",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/perf_event_fsl_emb.c",
      "new_id": "7ecca59ddf77fe20bd46b470d9392cdd16fd5ba9",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/perf_event_fsl_emb.c"
    },
    {
      "type": "modify",
      "old_id": "4bbe19058a58f3eabddcb04950a3884c65252440",
      "old_mode": 33188,
      "old_path": "arch/sh/kernel/perf_event.c",
      "new_id": "cf39c4873468ed8cbd14ec088d295b9acb1d9719",
      "new_mode": 33188,
      "new_path": "arch/sh/kernel/perf_event.c"
    },
    {
      "type": "modify",
      "old_id": "37cae676536c0d0d2c2c7734ddaaaf0c361e81cc",
      "old_mode": 33188,
      "old_path": "arch/sparc/kernel/perf_event.c",
      "new_id": "516be2314b542ad4e942316d980b98ee7ed61187",
      "new_mode": 33188,
      "new_path": "arch/sparc/kernel/perf_event.c"
    },
    {
      "type": "modify",
      "old_id": "79705ac45019d03caf78d01a21cf1431decfda4e",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/perf_event.c",
      "new_id": "dd6fec710677effa72a0b36e1bfd8a8d5239c78f",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/perf_event.c"
    },
    {
      "type": "modify",
      "old_id": "ee05c90012d269e66de9ffb6a5952d1434317c1e",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/perf_event_intel.c",
      "new_id": "82395f2378ec7317ca25f3d37dd9e7cd2a9b8396",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/perf_event_intel.c"
    },
    {
      "type": "modify",
      "old_id": "18018d1311cdf3fa7f550b2fd7894c278505afe6",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/perf_event_intel_ds.c",
      "new_id": "9893a2f77b7ad56ff9736fe7dad1bfa5c98116df",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/perf_event_intel_ds.c"
    },
    {
      "type": "modify",
      "old_id": "5f8ad7bec6368ad21a82b26e26232338a6b2e1c3",
      "old_mode": 33188,
      "old_path": "include/linux/ftrace_event.h",
      "new_id": "8beabb958f61d5147c8893f1e780415a91fcb2e6",
      "new_mode": 33188,
      "new_path": "include/linux/ftrace_event.h"
    },
    {
      "type": "modify",
      "old_id": "8cafa15af60d4b8e5ec8658a4d44ef22d9ab0a78",
      "old_mode": 33188,
      "old_path": "include/linux/perf_event.h",
      "new_id": "402073c61669f0641b21002d0ac67a9c04edb7bc",
      "new_mode": 33188,
      "new_path": "include/linux/perf_event.h"
    },
    {
      "type": "modify",
      "old_id": "e9c5cfa1fd203870c952a393f172dfa8a7d765d2",
      "old_mode": 33188,
      "old_path": "kernel/hw_breakpoint.c",
      "new_id": "6f150095cafe14e247c27eee6ba4f1461c195b18",
      "new_mode": 33188,
      "new_path": "kernel/hw_breakpoint.c"
    },
    {
      "type": "modify",
      "old_id": "1a6cdbf0d0911257fb4d2817b25a00122b96ea25",
      "old_mode": 33188,
      "old_path": "kernel/perf_event.c",
      "new_id": "3bace4fd035519908ea25ea1e387e6058096ac83",
      "new_mode": 33188,
      "new_path": "kernel/perf_event.c"
    },
    {
      "type": "modify",
      "old_id": "f3bbcd1c90c8dd8a8aff1c008b83cf65f12635aa",
      "old_mode": 33188,
      "old_path": "kernel/trace/trace_event_perf.c",
      "new_id": "39c059ca670e64156e6681782ffa708c6b8d720f",
      "new_mode": 33188,
      "new_path": "kernel/trace/trace_event_perf.c"
    }
  ]
}
