)]}'
{
  "commit": "5cd1c9c5cf30d4b33df3d3f74d8142f278d536b7",
  "tree": "6d74ddeff7e9a044d961d36db13071c158f0557a",
  "parents": [
    "eb3f938fd6292dc79f43a5fe14784b044776e9f0"
  ],
  "author": {
    "name": "Roman Zippel",
    "email": "zippel@linux-m68k.org",
    "time": "Mon Sep 22 14:42:43 2008 -0700"
  },
  "committer": {
    "name": "Thomas Gleixner",
    "email": "tglx@linutronix.de",
    "time": "Wed Sep 24 17:33:13 2008 +0200"
  },
  "message": "timekeeping: fix rounding problem during clock update\n\nDue to a rounding problem during a clock update it\u0027s possible for readers\nto observe the clock jumping back by 1nsec.  The following simplified\nexample demonstrates the problem:\n\ncycle\txtime\n0\t0\n1000\t999999.6\n2000\t1999999.2\n3000\t2999998.8\n...\n\n1500 \u003d\t1499999.4\n\u003d\t0.0 + 1499999.4\n\u003d\t999999.6 + 499999.8\n\nWhen reading the clock only the full nanosecond part is used, while\ntimekeeping internally keeps nanosecond fractions.  If the clock is now\nupdated at cycle 1500 here, a nanosecond is missing due to the truncation.\n\nThe simple fix is to round up the xtime value during the update, this also\nchanges the distance to the reference time, but the adjustment will\nautomatically take care that it stays under control.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e91c29f961c900d7739c0dc2f27b81c480cdb55c",
      "old_mode": 33188,
      "old_path": "kernel/time/timekeeping.c",
      "new_id": "5ecbfc39a2684eca0f23988eb1064dff987f5098",
      "new_mode": 33188,
      "new_path": "kernel/time/timekeeping.c"
    }
  ]
}
