)]}'
{
  "commit": "dcfce4a095932e6e95d83ad982be3609947963bc",
  "tree": "2808b7cbdb57deab25cc1cd847fd0f9ffa058f92",
  "parents": [
    "75c43a20b220f885c39ffa7cdbbb1191e257a9a9"
  ],
  "author": {
    "name": "Robert Richter",
    "email": "robert.richter@amd.com",
    "time": "Tue Oct 11 17:11:08 2011 +0200"
  },
  "committer": {
    "name": "Robert Richter",
    "email": "robert.richter@amd.com",
    "time": "Fri Nov 04 16:27:18 2011 +0100"
  },
  "message": "oprofile, x86: Reimplement nmi timer mode using perf event\n\nThe legacy x86 nmi watchdog code was removed with the implementation\nof the perf based nmi watchdog. This broke Oprofile\u0027s nmi timer\nmode. To run nmi timer mode we relied on a continuous ticking nmi\nsource which the nmi watchdog provided. The nmi tick was no longer\navailable and current watchdog can not be used anymore since it runs\nwith very long periods in the range of seconds. This patch\nreimplements the nmi timer mode using a perf counter nmi source.\n\nV2:\n* removing pr_info()\n* fix undefined reference to `__udivdi3\u0027 for 32 bit build\n* fix section mismatch of .cpuinit.data:nmi_timer_cpu_nb\n* removed nmi timer setup in arch/x86\n* implemented function stubs for op_nmi_init/exit()\n* made code more readable in oprofile_init()\n\nV3:\n* fix architectural initialization in oprofile_init()\n* fix CONFIG_OPROFILE_NMI_TIMER dependencies\n\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Robert Richter \u003crobert.richter@amd.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4b0669cbb3b01d4c0eb66f364859cb6f65654693",
      "old_mode": 33188,
      "old_path": "arch/Kconfig",
      "new_id": "2505740b81d2e24696ff4420f2f9af86713b817b",
      "new_mode": 33188,
      "new_path": "arch/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "446902b2a6b6a2fac5080d062e8d86b1caea8aae",
      "old_mode": 33188,
      "old_path": "arch/x86/oprofile/Makefile",
      "new_id": "1599f568f0e2fc5e7eef53c63fdce878820b1b25",
      "new_mode": 33188,
      "new_path": "arch/x86/oprofile/Makefile"
    },
    {
      "type": "modify",
      "old_id": "f148cf65267836d66e1fa666d612dca5669950c3",
      "old_mode": 33188,
      "old_path": "arch/x86/oprofile/init.c",
      "new_id": "9e138d00ad36d1cd900284ba6549f9d64b19122e",
      "new_mode": 33188,
      "new_path": "arch/x86/oprofile/init.c"
    },
    {
      "type": "delete",
      "old_id": "720bf5a53c513cc05aeafa644d83d70ed1e2017c",
      "old_mode": 33188,
      "old_path": "arch/x86/oprofile/nmi_timer_int.c",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "76f1c9357f39d2a285c6bd8af17eb2c4aac5dcad",
      "new_mode": 33188,
      "new_path": "drivers/oprofile/nmi_timer_int.c"
    },
    {
      "type": "modify",
      "old_id": "f7cd06967aedd7bb4c9c8698a1f0ceb6f6358731",
      "old_mode": 33188,
      "old_path": "drivers/oprofile/oprof.c",
      "new_id": "ed2c3ec07024d0bcb04686a64510f1a607bfded7",
      "new_mode": 33188,
      "new_path": "drivers/oprofile/oprof.c"
    },
    {
      "type": "modify",
      "old_id": "177b73de5e5f158cbb31fe27f8e31b9363c3a255",
      "old_mode": 33188,
      "old_path": "drivers/oprofile/oprof.h",
      "new_id": "769fb0fcac4449bd2865905cdf92f60f734e2e23",
      "new_mode": 33188,
      "new_path": "drivers/oprofile/oprof.h"
    },
    {
      "type": "modify",
      "old_id": "d1a1bee35228ce06bd77862909278a33d0158a4f",
      "old_mode": 33188,
      "old_path": "kernel/events/core.c",
      "new_id": "d2e28bdd523a9b206b69b6e66ae4b684747ddd9a",
      "new_mode": 33188,
      "new_path": "kernel/events/core.c"
    }
  ]
}
