)]}'
{
  "commit": "163da958ba5282cbf85e8b3dc08e4f51f8b01c5e",
  "tree": "ccfdaf7ac1b0f5e06cd4cc34522fa491ede89fe7",
  "parents": [
    "2a10387ec463c4fcd3ccc461291ce4d8505827e2"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "dada1@cosmosbay.com",
    "time": "Mon Feb 12 00:52:24 2007 -0800"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Mon Feb 12 09:48:29 2007 -0800"
  },
  "message": "[PATCH] FS: speed up rw_verify_area()\n\noprofile hunting showed a stall in rw_verify_area(), because of triple\nindirection and potential cache misses.\n(file-\u003ef_path.dentry-\u003ed_inode-\u003ei_flock)\n\nBy moving initialization of \u0027struct inode\u0027 pointer before the pos/count\nsanity tests, we allow the compiler and processor to perform two loads by\nanticipation, reducing stall, without prefetch() hints.  Even x86 arch has\nenough registers to not use temporary variables and not increase text size.\n\nI validated this patch running a bench and studied oprofile changes, and\nabsolute perf of the test program.\n\nResults of my epoll_pipe_bench (source available on request) on a Pentium-M\n1.6 GHz machine\n\nBefore :\n# ./epoll_pipe_bench -l 30 -t 20\nAvg: 436089 evts/sec read_count\u003d8843037 write_count\u003d8843040 21.218390 samples\nper call\n(best value out of 10 runs)\n\nAfter :\n# ./epoll_pipe_bench -l 30 -t 20\nAvg: 470980 evts/sec read_count\u003d9549871 write_count\u003d9549894 21.216694 samples\nper call\n(best value out of 10 runs)\n\noprofile CPU_CLK_UNHALTED events gave a reduction from 5.3401 % to 2.5851 %\nfor the rw_verify_area() function.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.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": "bcb0ef2aae3d5f54588616102b0d220d1aa63d94",
      "old_mode": 33188,
      "old_path": "fs/read_write.c",
      "new_id": "1f8dc373ede7755124a0d5da510f05beb7ce784f",
      "new_mode": 33188,
      "new_path": "fs/read_write.c"
    }
  ]
}
