)]}'
{
  "commit": "704f15ddb5fc2a7f25a12eb0913302d8ad9ffab3",
  "tree": "ef17a945288c333c345643325783f374e10a4020",
  "parents": [
    "5bf54a9758c230d9e957e7b4f3a41c226660dd49"
  ],
  "author": {
    "name": "Jesse Gross",
    "email": "jesse@nicira.com",
    "time": "Thu May 26 16:25:02 2011 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Thu May 26 17:12:33 2011 -0700"
  },
  "message": "flex_array: avoid divisions when accessing elements\n\nOn most architectures division is an expensive operation and accessing an\nelement currently requires four of them.  This performance penalty\neffectively precludes flex arrays from being used on any kind of fast\npath.  However, two of these divisions can be handled at creation time and\nthe others can be replaced by a reciprocal divide, completely avoiding\nreal divisions on access.\n\n[eparis@redhat.com: rebase on top of changes to support 0 len elements]\n[eparis@redhat.com: initialize part_nr when array fits entirely in base]\nSigned-off-by: Jesse Gross \u003cjesse@nicira.com\u003e\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.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": "ebeb2f3ad068db1ec6d8cee92a1bcfb6cd097630",
      "old_mode": 33188,
      "old_path": "include/linux/flex_array.h",
      "new_id": "6843cf193a445134cde17f7d2db6893399ac8cda",
      "new_mode": 33188,
      "new_path": "include/linux/flex_array.h"
    },
    {
      "type": "modify",
      "old_id": "cab7621f98aa1130f99de9b9949851e56b4cdc4d",
      "old_mode": 33188,
      "old_path": "lib/flex_array.c",
      "new_id": "9b8b89458c4ce4a8995afd9448f000c6e73335a7",
      "new_mode": 33188,
      "new_path": "lib/flex_array.c"
    }
  ]
}
