)]}'
{
  "commit": "37d81828385f8ff823caaaf1a83e72d065b6cfa1",
  "tree": "972900a193a6a5ab1bdc14adcd7ab72bf0a51c13",
  "parents": [
    "96f6d4444302bb2ea2cf409529eef816462f6ce0"
  ],
  "author": {
    "name": "Paul Mackerras",
    "email": "paulus@samba.org",
    "time": "Mon Mar 23 18:22:08 2009 +0100"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Mon Apr 06 09:30:26 2009 +0200"
  },
  "message": "perf_counter: add an mmap method to allow userspace to read hardware counters\n\nImpact: new feature giving performance improvement\n\nThis adds the ability for userspace to do an mmap on a hardware counter\nfd and get access to a read-only page that contains the information\nneeded to translate a hardware counter value to the full 64-bit\ncounter value that would be returned by a read on the fd.  This is\nuseful on architectures that allow user programs to read the hardware\ncounters, such as PowerPC.\n\nThe mmap will only succeed if the counter is a hardware counter\nmonitoring the current process.\n\nOn my quad 2.5GHz PowerPC 970MP machine, userspace can read a counter\nand translate it to the full 64-bit value in about 30ns using the\nmmapped page, compared to about 830ns for the read syscall on the\ncounter, so this does give a significant performance improvement.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nOrig-LKML-Reference: \u003c20090323172417.297057964@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d05651584d439cbb581fb9d2504c978b02ae38a5",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/perf_counter.c",
      "new_id": "e4349281b07def8cc3d09e088dda7e0d6d120edf",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/perf_counter.c"
    },
    {
      "type": "modify",
      "old_id": "18dc17d0a61cc050416f68d4ce8b1e9302322637",
      "old_mode": 33188,
      "old_path": "include/linux/perf_counter.h",
      "new_id": "40b324e91bf68f165e8f8386fe70494b4a32e4c7",
      "new_mode": 33188,
      "new_path": "include/linux/perf_counter.h"
    },
    {
      "type": "modify",
      "old_id": "ce34bff07bdaaf16fe8b79b5e0427fd0de13ee73",
      "old_mode": 33188,
      "old_path": "kernel/perf_counter.c",
      "new_id": "d9cfd902140e00011c65775dc7e262ec0576d426",
      "new_mode": 33188,
      "new_path": "kernel/perf_counter.c"
    }
  ]
}
