)]}'
{
  "commit": "ff8399709e41bf72b4cb145612a0f9a9f7283c83",
  "tree": "5577163d56e30020d907245f00dcef17730f037b",
  "parents": [
    "f56916b97fe2031761ca611f0a342efd913afb33"
  ],
  "author": {
    "name": "Chuck Lever",
    "email": "chuck.lever@oracle.com",
    "time": "Fri May 07 13:34:47 2010 -0400"
  },
  "committer": {
    "name": "Trond Myklebust",
    "email": "Trond.Myklebust@netapp.com",
    "time": "Fri May 14 15:09:33 2010 -0400"
  },
  "message": "SUNRPC: Replace jiffies-based metrics with ktime-based metrics\n\nCurrently RPC performance metrics that tabulate elapsed time use\njiffies time values.  This is problematic on systems that use slow\njiffies (for instance 100HZ systems built for paravirtualized\nenvironments).  It is also a problem for computing precise latency\nstatistics for advanced network transports, such as InfiniBand,\nthat can have round-trip latencies significanly faster than a single\nclock tick.\n\nFor the RPC client, adopt the high resolution time stamp mechanism\nalready used by the network layer and blktrace: ktime.\n\nWe use ktime format time stamps for all internal computations, and\nconvert to milliseconds for presentation.  As a result, we need only\naddition operations in the performance critical paths; multiply/divide\nis required only for presentation.\n\nWe could report RTT metrics in microseconds.  In fact the mountstats\nformat is versioned to accomodate exactly this kind of interface\nimprovement.\n\nFor now, however, we\u0027ll stay with millisecond precision for\npresentation to maintain backwards compatibility with the handful of\ncurrently deployed user space tools.  At a later point, we\u0027ll move to\nan API such as BDI_STATS where a finer timestamp precision can be\nreported.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "77f78e56c4814606066669b2ba45104fafb45b91",
      "old_mode": 33188,
      "old_path": "include/linux/sunrpc/metrics.h",
      "new_id": "b6edbc0ea83dddcdc450fa05a06cc6face7d69b5",
      "new_mode": 33188,
      "new_path": "include/linux/sunrpc/metrics.h"
    },
    {
      "type": "modify",
      "old_id": "7bc7fd5291ce37d6abcbe7f44e96156540beb46d",
      "old_mode": 33188,
      "old_path": "include/linux/sunrpc/sched.h",
      "new_id": "76720d262ef22aabfff476d02150e8faca49558f",
      "new_mode": 33188,
      "new_path": "include/linux/sunrpc/sched.h"
    },
    {
      "type": "modify",
      "old_id": "04fc342d9840059cd351503c79ddb8ccd046aef9",
      "old_mode": 33188,
      "old_path": "include/linux/sunrpc/xprt.h",
      "new_id": "f8851861b74410bda47fdc02c0ac04e09b0a568d",
      "new_mode": 33188,
      "new_path": "include/linux/sunrpc/xprt.h"
    },
    {
      "type": "modify",
      "old_id": "c8979ce5d88ae3fc7bd5554bc89c5697b1dfc549",
      "old_mode": 33188,
      "old_path": "net/sunrpc/sched.c",
      "new_id": "aa7b07ef5d55c3a5040511fed9f965b3be6f3070",
      "new_mode": 33188,
      "new_path": "net/sunrpc/sched.c"
    },
    {
      "type": "modify",
      "old_id": "5785d2037f45ea72bd065c1b93a0f22e16ec5526",
      "old_mode": 33188,
      "old_path": "net/sunrpc/stats.c",
      "new_id": "aacd95f0dce5b5a947ff79e8f4ece63a6e22967a",
      "new_mode": 33188,
      "new_path": "net/sunrpc/stats.c"
    },
    {
      "type": "modify",
      "old_id": "698c627122944ce1d4310f904e17f0e1419ae4d8",
      "old_mode": 33188,
      "old_path": "net/sunrpc/xprt.c",
      "new_id": "8986b1b8286206650fe5f0cd55cb013a6f1841cc",
      "new_mode": 33188,
      "new_path": "net/sunrpc/xprt.c"
    }
  ]
}
