)]}'
{
  "commit": "c19384b5b296905d4988c7c684ff540a0f9d65be",
  "tree": "071cfe0855d409d63de80ec1b9b663738efb09de",
  "parents": [
    "ec92d08292d3e9b0823eba138a4564d2d39f25c7"
  ],
  "author": {
    "name": "Pierre Peiffer",
    "email": "pierre.peiffer@bull.net",
    "time": "Wed May 09 02:35:02 2007 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Wed May 09 12:30:55 2007 -0700"
  },
  "message": "Make futex_wait() use an hrtimer for timeout\n\nThis patch modifies futex_wait() to use an hrtimer + schedule() in place of\nschedule_timeout().\n\nschedule_timeout() is tick based, therefore the timeout granularity is the\ntick (1 ms, 4 ms or 10 ms depending on HZ).  By using a high resolution timer\nfor timeout wakeup, we can attain a much finer timeout granularity (in the\nmicrosecond range).  This parallels what is already done for futex_lock_pi().\n\nThe timeout passed to the syscall is no longer converted to jiffies and is\ntherefore passed to do_futex() and futex_wait() as an absolute ktime_t\ntherefore keeping nanosecond resolution.\n\nAlso this removes the need to pass the nanoseconds timeout part to\nfutex_lock_pi() in val2.\n\nIn futex_wait(), if there is no timeout then a regular schedule() is\nperformed.  Otherwise, an hrtimer is fired before schedule() is called.\n\n[akpm@linux-foundation.org: fix `make headers_check\u0027]\nSigned-off-by: Sebastien Dugue \u003csebastien.dugue@bull.net\u003e\nSigned-off-by: Pierre Peiffer \u003cpierre.peiffer@bull.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\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": "modify",
      "old_id": "820125c628c1364478cfcc513275214aa9da628a",
      "old_mode": 33188,
      "old_path": "include/linux/futex.h",
      "new_id": "34e54f2b8997b322825f41232225cb1dad60c80b",
      "new_mode": 33188,
      "new_path": "include/linux/futex.h"
    },
    {
      "type": "modify",
      "old_id": "685ee2362a5e3eebc700cfb9ceedb921c4552cdb",
      "old_mode": 33188,
      "old_path": "kernel/futex.c",
      "new_id": "e1246ccbf89ac54ea1fa0da5a9aa242a5c842b0f",
      "new_mode": 33188,
      "new_path": "kernel/futex.c"
    },
    {
      "type": "modify",
      "old_id": "50f24eea6cd02916bd53d0ea09b1b8de668f8823",
      "old_mode": 33188,
      "old_path": "kernel/futex_compat.c",
      "new_id": "dff27c471ea6aa55b1a98dfd950310a4e3f784f8",
      "new_mode": 33188,
      "new_path": "kernel/futex_compat.c"
    }
  ]
}
