)]}'
{
  "commit": "3f731ca60afc29f5bcdb5fd2a04391466313a9ac",
  "tree": "ca9953e902e5043f62f56db31a0e990eed755e78",
  "parents": [
    "f38b082081bf69a06fffb8b32a175999e2320c5b"
  ],
  "author": {
    "name": "Paul Mackerras",
    "email": "paulus@samba.org",
    "time": "Mon Jun 01 17:52:30 2009 +1000"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Tue Jun 02 13:10:54 2009 +0200"
  },
  "message": "perf_counter: Fix cpu migration counter\n\nThis fixes the cpu migration software counter to count\ncorrectly even when contexts get swapped from one task to\nanother.  Previously the cpu migration counts reported by perf\nstat were bogus, ranging from negative to several thousand for\na single \"lat_ctx 2 8 32\" run.  With this patch the cpu\nmigration count reported for \"lat_ctx 2 8 32\" is almost always\nbetween 35 and 44.\n\nThis fixes the problem by adding a call into the perf_counter\ncode from set_task_cpu when tasks are migrated.  This enables\nus to use the generic swcounter code (with some modifications)\nfor the cpu migration counter.\n\nThis modifies the swcounter code to allow a NULL regs pointer\nto be passed in to perf_swcounter_ctx_event() etc.  The cpu\nmigration counter does this because there isn\u0027t necessarily a\npt_regs struct for the task available.  In this case, the\ncounter will not have interrupt capability - but the migration\ncounter didn\u0027t have interrupt capability before, so this is no\nloss.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Corey Ashford \u003ccjashfor@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: John Kacur \u003cjkacur@redhat.com\u003e\nLKML-Reference: \u003c18979.35006.819769.416327@cargo.ozlabs.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0e57d8cc5a3d2d3a18a1172cdcd27b08e7f7f1d0",
      "old_mode": 33188,
      "old_path": "include/linux/perf_counter.h",
      "new_id": "deb9acf9ad2a3ad6caaf26a3a3c1b72d64210626",
      "new_mode": 33188,
      "new_path": "include/linux/perf_counter.h"
    },
    {
      "type": "modify",
      "old_id": "8d2653f137e9099ed7941780d6bd52dd39629eaf",
      "old_mode": 33188,
      "old_path": "kernel/perf_counter.c",
      "new_id": "cd94cf3bf9e2a652dd39b5a95cb6f29b0c6bbcc5",
      "new_mode": 33188,
      "new_path": "kernel/perf_counter.c"
    },
    {
      "type": "modify",
      "old_id": "3226cc132e9fcae69d01ea9634f552424d717373",
      "old_mode": 33188,
      "old_path": "kernel/sched.c",
      "new_id": "8d43347a0c0dd086ee6269373fd723a8b3355e02",
      "new_mode": 33188,
      "new_path": "kernel/sched.c"
    }
  ]
}
