)]}'
{
  "commit": "571e7682026fd0e25833d103a3eeb74be29bf199",
  "tree": "3707c7fb4ea4384a163cddc9fac76e9d8860a109",
  "parents": [
    "789675e216617b1331875c42a81f58227a06df91"
  ],
  "author": {
    "name": "Eric Dumazet",
    "email": "dada1@cosmosbay.com",
    "time": "Thu Jan 03 20:41:28 2008 -0800"
  },
  "committer": {
    "name": "David S. Miller",
    "email": "davem@davemloft.net",
    "time": "Mon Jan 28 15:00:35 2008 -0800"
  },
  "message": "[LIB] pcounter : unline too big functions\n\nBefore pushing pcounter to Linus tree, I would like to make some adjustments.\n\nGoal is to reduce kernel text size, by unlining too big functions.\n\nWhen a pcounter is bound to a statically defined per_cpu variable,\nwe define two small helpers functions. (No more folding function\nusing the fat for_each_possible_cpu(cpu) ... )\n\nstatic DEFINE_PER_CPU(int, NAME##_pcounter_values);\nstatic void NAME##_pcounter_add(struct pcounter *self, int val)\n{\n       __get_cpu_var(NAME##_pcounter_values) +\u003d val;\n}\nstatic int NAME##_pcounter_getval(const struct pcounter *self, int cpu)\n{\n       return per_cpu(NAME##_pcounter_values, cpu);\n}\n\nFast path is therefore unchanged, while folding/alloc/free is now unlined.\n\nThis saves 228 bytes on i386\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9c4760a328f32e43866a0dd7e524746a34eadadc",
      "old_mode": 33188,
      "old_path": "include/linux/pcounter.h",
      "new_id": "a82d9f2628ca2158e8dedc986aed37cb397fb0a9",
      "new_mode": 33188,
      "new_path": "include/linux/pcounter.h"
    },
    {
      "type": "modify",
      "old_id": "93feea598251ba0c7cc052241c15cdb59a59f7fd",
      "old_mode": 33188,
      "old_path": "lib/pcounter.c",
      "new_id": "9b56807da93b483bc91f6e0bfdcedc9854485ec6",
      "new_mode": 33188,
      "new_path": "lib/pcounter.c"
    }
  ]
}
