)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "de4d1db369785c29d68915edfee0cb70e8199f4c",
      "tree": "78979fc131145d4b2df3cd4721a811784126f05c",
      "parents": [
        "0c884439dbd7c895cce61c4974c8868b0f6cd4a1"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Nov 21 22:02:58 2007 +0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 28 14:54:39 2008 -0800"
      },
      "message": "[LIB]: Introduce struct pcounter\n\nThis just generalises what was introduced by Eric Dumazet for the struct proto\ninuse field in 286ab3d46058840d68e5d7d52e316c1f7e98c59f:\n\n    [NET]: Define infrastructure to keep \u0027inuse\u0027 changes in an efficent SMP/NUMA way.\n\nPlease look at the comment in there to see the rationale.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ]
}
