)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "23cd0057a6815cf84adf07ea62bf2f5657d6b079",
      "old_mode": 33188,
      "old_path": "include/linux/perf_event.h",
      "new_id": "4924c96d7e2de3d0c4ae71dae7101074c5f2ed09",
      "new_mode": 33188,
      "new_path": "include/linux/perf_event.h"
    },
    {
      "type": "modify",
      "old_id": "34659d4085c79b8cafb4bf122af6b3dfcd497a33",
      "old_mode": 33188,
      "old_path": "kernel/perf_event.c",
      "new_id": "bb06382f98e7ed2c7386ae5f154477ebd77ba59e",
      "new_mode": 33188,
      "new_path": "kernel/perf_event.c"
    }
  ]
}
