)]}'
{
  "commit": "c76febef574fd86566bbdf1a73a547a439115c25",
  "tree": "bdfb67e30f7c55f54413c2bee79049bbbefff805",
  "parents": [
    "de25c1818c44f580ff556cb9e0f7a1c687ed870b"
  ],
  "author": {
    "name": "Dave Chinner",
    "email": "dchinner@redhat.com",
    "time": "Tue Nov 30 15:15:31 2010 +1100"
  },
  "committer": {
    "name": "Alex Elder",
    "email": "aelder@sgi.com",
    "time": "Wed Dec 01 07:40:20 2010 -0600"
  },
  "message": "xfs: only run xfs_error_test if error injection is active\n\nRecent tests writing lots of small files showed the flusher thread\nbeing CPU bound and taking a long time to do allocations on a debug\nkernel. perf showed this as the prime reason:\n\n             samples  pcnt function                    DSO\n             _______ _____ ___________________________ _________________\n\n           224648.00 36.8% xfs_error_test              [kernel.kallsyms]\n            86045.00 14.1% xfs_btree_check_sblock      [kernel.kallsyms]\n            39778.00  6.5% prandom32                   [kernel.kallsyms]\n            37436.00  6.1% xfs_btree_increment         [kernel.kallsyms]\n            29278.00  4.8% xfs_btree_get_rec           [kernel.kallsyms]\n            27717.00  4.5% random32                    [kernel.kallsyms]\n\nWalking btree blocks during allocation checking them requires each\nblock (a cache hit, so no I/O) call xfs_error_test(), which then\ndoes a random32() call as the first operation.  IOWs, ~50% of the\nCPU is being consumed just testing whether we need to inject an\nerror, even though error injection is not active.\n\nKill this overhead when error injection is not active by adding a\nglobal counter of active error traps and only calling into\nxfs_error_test when fault injection is active.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ed99902676615e166a8e08371bf79c3a33d98021",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_error.c",
      "new_id": "c78cc6a3d87c0bb061092564c9f27c52d48519fa",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_error.c"
    },
    {
      "type": "modify",
      "old_id": "c2c1a072bb82493bc210c50c9f6980633f8c9732",
      "old_mode": 33188,
      "old_path": "fs/xfs/xfs_error.h",
      "new_id": "f338847f80b8d36c5c017214ec9538dab795459b",
      "new_mode": 33188,
      "new_path": "fs/xfs/xfs_error.h"
    }
  ]
}
