)]}'
{
  "commit": "82f67cd9fca8c8762c15ba7ed0d5747588c1e221",
  "tree": "1ff7e5cc496580b85bb42fb1d7b19dcbef7b7776",
  "parents": [
    "8bfd9a7a229b5f3d3eda5d7d45c2eebec5b4ba16"
  ],
  "author": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Fri Feb 16 01:28:13 2007 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Fri Feb 16 08:13:59 2007 -0800"
  },
  "message": "[PATCH] Add debugging feature /proc/timer_stat\n\nAdd /proc/timer_stats support: debugging feature to profile timer expiration.\nBoth the starting site, process/PID and the expiration function is captured.\nThis allows the quick identification of timer event sources in a system.\n\nSample output:\n\n# echo 1 \u003e /proc/timer_stats\n# cat /proc/timer_stats\nTimer Stats Version: v0.1\nSample period: 4.010 s\n  24,     0 swapper          hrtimer_stop_sched_tick (hrtimer_sched_tick)\n  11,     0 swapper          sk_reset_timer (tcp_delack_timer)\n   6,     0 swapper          hrtimer_stop_sched_tick (hrtimer_sched_tick)\n   2,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)\n  17,     0 swapper          hrtimer_restart_sched_tick (hrtimer_sched_tick)\n   2,     1 swapper          queue_delayed_work_on (delayed_work_timer_fn)\n   4,  2050 pcscd            do_nanosleep (hrtimer_wakeup)\n   5,  4179 sshd             sk_reset_timer (tcp_write_timer)\n   4,  2248 yum-updatesd     schedule_timeout (process_timeout)\n  18,     0 swapper          hrtimer_restart_sched_tick (hrtimer_sched_tick)\n   3,     0 swapper          sk_reset_timer (tcp_delack_timer)\n   1,     1 swapper          neigh_table_init_no_netlink (neigh_periodic_timer)\n   2,     1 swapper          e1000_up (e1000_watchdog)\n   1,     1 init             schedule_timeout (process_timeout)\n100 total events, 25.24 events/sec\n\n[ cleanups and hrtimers support from Thomas Gleixner \u003ctglx@linutronix.de\u003e ]\n[bunk@stusta.de: nr_entries can become static]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "27f782e3593f2f86047fbc2e74e387710f3a0f9a",
      "new_mode": 33188,
      "new_path": "Documentation/hrtimer/timer_stats.txt"
    },
    {
      "type": "modify",
      "old_id": "4ecd991431b40d42a0f2d96f49f30cdb87250660",
      "old_mode": 33188,
      "old_path": "include/linux/hrtimer.h",
      "new_id": "93b8757c1ea2da118be5609392dc238dabd41152",
      "new_mode": 33188,
      "new_path": "include/linux/hrtimer.h"
    },
    {
      "type": "modify",
      "old_id": "44d41e9d7818d8da4a5bab81bce4742dbc86aa2a",
      "old_mode": 33188,
      "old_path": "include/linux/timer.h",
      "new_id": "719113b652dd55e31bd1f0afd039a55b1d972de0",
      "new_mode": 33188,
      "new_path": "include/linux/timer.h"
    },
    {
      "type": "modify",
      "old_id": "62aad8e1a3835c9e390ff93e383dbceff3755d4d",
      "old_mode": 33188,
      "old_path": "kernel/hrtimer.c",
      "new_id": "476cb0c0b4a432bce65c1f113011aa60cd3060b0",
      "new_mode": 33188,
      "new_path": "kernel/hrtimer.c"
    },
    {
      "type": "modify",
      "old_id": "f246bc836b9a970758421411ebc434893572f09d",
      "old_mode": 33188,
      "old_path": "kernel/time/Makefile",
      "new_id": "252b4b5d9dd05b2c491b9d4e42718110410119c1",
      "new_mode": 33188,
      "new_path": "kernel/time/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1bc4882e28e03ac4150a467efe3afa6410ea3a61",
      "new_mode": 33188,
      "new_path": "kernel/time/timer_stats.c"
    },
    {
      "type": "modify",
      "old_id": "f058e6cfd50cf8c2200667deaed50aa245d2fb3b",
      "old_mode": 33188,
      "old_path": "kernel/timer.c",
      "new_id": "c3c67f3c0190d42d196987b138955ff8a4d2b535",
      "new_mode": 33188,
      "new_path": "kernel/timer.c"
    },
    {
      "type": "modify",
      "old_id": "020d1fff57dce7839735bf7df6362a57ff747b55",
      "old_mode": 33188,
      "old_path": "kernel/workqueue.c",
      "new_id": "b6fa5e63085d65b42f46fe97735751b6f402cab4",
      "new_mode": 33188,
      "new_path": "kernel/workqueue.c"
    },
    {
      "type": "modify",
      "old_id": "63f04c15e6f52924c98f91c1281c54cbdcb01ae9",
      "old_mode": 33188,
      "old_path": "lib/Kconfig.debug",
      "new_id": "4448f91b865c10a48933a6a8d1c4ea645266b90c",
      "new_mode": 33188,
      "new_path": "lib/Kconfig.debug"
    }
  ]
}
