)]}'
{
  "commit": "b1b5f65e53af770ede22c113e249de2f6fa53706",
  "tree": "2aaf103408e285c5413c973649c7dd3a111da800",
  "parents": [
    "191e56880a6a638ce931859317f37deb084b6433"
  ],
  "author": {
    "name": "Phil Carmody",
    "email": "ext-phil.2.carmody@nokia.com",
    "time": "Tue Mar 22 16:34:15 2011 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Tue Mar 22 17:44:12 2011 -0700"
  },
  "message": "calibrate: retry with wider bounds when converge seems to fail\n\nSystems with unmaskable interrupts such as SMIs may massively\nunderestimate loops_per_jiffy, and fail to converge anywhere near the real\nvalue.  A case seen on x86_64 was an initial estimate of 256\u003c\u003c12, which\nconverged to 511\u003c\u003c12 where the real value should have been over 630\u003c\u003c12.\nThis admitedly requires bypassing the TSC calibration (lpj_fine), and a\nfailure to settle in the direct calibration too, but is physically\npossible.  This failure does not depend on my previous calibration\noptimisation, but by luck is easy to fix with the optimisation in place\nwith a trivial retry loop.\n\nIn the context of the optimised converging method, as we can no longer\ntrust the starting estimate, enlarge the search bounds exponentially so\nthat the number of retries is logarithmically bounded.\n\n[akpm@linux-foundation.org: mention x86_64 SMIs in comment]\nSigned-off-by: Phil Carmody \u003cext-phil.2.carmody@nokia.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nTested-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Greg KH \u003cgreg@kroah.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": "f9000dfbe2271eaaca8b3e52bf05365be92a1cc7",
      "old_mode": 33188,
      "old_path": "init/calibrate.c",
      "new_id": "76ac9194cbc437911e2394f8e94f4530eff716c8",
      "new_mode": 33188,
      "new_path": "init/calibrate.c"
    }
  ]
}
