)]}'
{
  "log": [
    {
      "commit": "37167485302c8876cb0303af113696e88c2945aa",
      "tree": "8bb4cc3eacfe94f56fe9f696f8aede4ac7b2d497",
      "parents": [
        "51de4d90852ba4cfa5743594ec4a7f158b52dc43"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Dec 06 20:36:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:34 2006 -0800"
      },
      "message": "[PATCH] taskstats: cleanup reply assembling\n\nThomas Graf wrote:\n\u003e\n\u003e nla_nest_start() may return NULL, either rely on prepare_reply() to be\n\u003e correct and BUG() on failure or do proper error handling for all\n\u003e functions.\n\nnla_put() in taskstat.c can fail only if the \u0027size\u0027 argument of alloc_skb()\nwas not right. This is a kernel bug, we should not hide it. So add \u0027BUG()\u0027\non error path and check for \u0027na \u003d\u003d NULL\u0027.\n\n\u003e genlmsg_cancel() is only required in error paths for dumping\n\u003e procedures.\n\nSo we can remove \u0027genlmsg_cancel()\u0027 calls and \u0027void *reply\u0027 (saves 227 bytes).\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Thomas Graf \u003ctgraf@suug.ch\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "51de4d90852ba4cfa5743594ec4a7f158b52dc43",
      "tree": "27ee40313c79c3c5fa2ef86fc059cf991c92e8e2",
      "parents": [
        "68062b86fc0f480b806d270a8278709a5a41bb67"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Dec 06 20:36:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:34 2006 -0800"
      },
      "message": "[PATCH] taskstats: use nla_reserve() for reply assembling\n\nCurrently taskstats_user_cmd()/taskstats_exit() do:\n\n\t1) allocate stats\n\t2) fill stats\n\t3) make a temporary copy on stack (236 bytes)\n\t4) copy that copy to skb\n\t5) free stats\n\nWith the help of nla_reserve() we can operate on skb-\u003edata directly,\nthus avoiding all these steps except 2).\n\nSo, before this patch:\n\n\t// copy *stats to skb-\u003edata\n\tint mk_reply(skb, ..., struct taskstats *stats);\n\n\tfill_pid(stats);\n\tmk_reply(skb, ..., stats);\n\nAfter:\n\t// return a pointer to skb-\u003edata\n\tstruct taskstats *mk_reply(skb, ...);\n\n\tstat \u003d mk_reply(skb, ...);\n\tfill_pid(stats);\n\nShrinks taskatsks.o by 162 bytes.\n\nA stupid benchmark (send one million TASKSTATS_CMD_ATTR_PID) shows the\n\n\t\treal user sys\n\tbefore:\n\t\t4.02 0.06 3.96\n\t\t4.02 0.04 3.98\n\t\t4.02 0.04 3.97\n\tafter:\n\t\t3.86 0.08 3.78\n\t\t3.88 0.10 3.77\n\t\t3.89 0.09 3.80\n\nbut this looks suspiciously good.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68062b86fc0f480b806d270a8278709a5a41bb67",
      "tree": "b8a89eb4aa6c29ded09283b7a88960e9fa106650",
      "parents": [
        "34ec12349c8a9505adc59d72f92b4595bc2483ff"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Dec 06 20:36:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:34 2006 -0800"
      },
      "message": "[PATCH] taskstats: factor out reply assembling\n\nIntroduce mk_reply() helper which does all nla_put()s on reply.\n\nSaves 453 bytes and a preparation for the next patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34ec12349c8a9505adc59d72f92b4595bc2483ff",
      "tree": "2307c825f1a0d8bf9976d5fadcc8516ad5829eac",
      "parents": [
        "115085ea0794c0f339be8f9d25505c7f9861d824"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Dec 06 20:36:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:34 2006 -0800"
      },
      "message": "[PATCH] taskstats: cleanup -\u003esignal-\u003estats allocation\n\nAllocate -\u003esignal-\u003estats on demand in taskstats_exit(), this allows us to\nremove taskstats_tgid_alloc() (the last non-trivial inline) from taskstat\u0027s\npublic interface.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "115085ea0794c0f339be8f9d25505c7f9861d824",
      "tree": "0b69f20ab8ab53702a4c94c11927e60fa058b509",
      "parents": [
        "128fb95650b3273a8dc9ba5514b6fe7db8ea30bf"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Dec 06 20:36:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:34 2006 -0800"
      },
      "message": "[PATCH] taskstats: cleanup do_exit() path\n\ndo_exit:\n\ttaskstats_exit_alloc()\n\t...\n\ttaskstats_exit_send()\n\ttaskstats_exit_free()\n\nI think this is not good, let it be a single function exported to the core\nkernel, taskstats_exit(), which does alloc + send + free itself.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "128fb95650b3273a8dc9ba5514b6fe7db8ea30bf",
      "tree": "82e8070451edbd7421b6176083658f5f2b997b58",
      "parents": [
        "38da288b8ba2b07b4e07165027e650b61d7c8ffc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Dec 06 20:36:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:34 2006 -0800"
      },
      "message": "[PATCH] taskstats_exit_alloc: optimize/simplify\n\nIf there are no listeners, every task does unneeded kmem_cache alloc/free on\nexit. We don\u0027t need listeners-\u003esem for \u0027if (!list_empty())\u0027 check. Yes, we may\nhave a false positive, but this doesn\u0027t differ from the case when the listener\nis unregistered after we drop the semaphore. So we don\u0027t need to do allocation\nbeforehand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nAcked-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e18b890bb0881bbab6f4f1a6cd20d9c60d66b003",
      "tree": "4828be07e1c24781c264b42c5a75bcd968223c3f",
      "parents": [
        "441e143e95f5aa1e04026cb0aa71c801ba53982f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:25 2006 -0800"
      },
      "message": "[PATCH] slab: remove kmem_cache_t\n\nReplace all uses of kmem_cache_t with struct kmem_cache.\n\nThe patch was generated using the following script:\n\n\t#!/bin/sh\n\t#\n\t# Replace one string by another in all the kernel sources.\n\t#\n\n\tset -e\n\n\tfor file in `find * -name \"*.c\" -o -name \"*.h\"|xargs grep -l $1`; do\n\t\tquilt add $file\n\t\tsed -e \"1,\\$s/$1/$2/g\" $file \u003e/tmp/$$\n\t\tmv /tmp/$$ $file\n\t\tquilt refresh\n\tdone\n\nThe script was run like this\n\n\tsh replace kmem_cache_t \"struct kmem_cache\"\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e94b1766097d53e6f3ccfb36c8baa562ffeda3fc",
      "tree": "93fa0a8ab84976d4e89c50768ca8b8878d642a0d",
      "parents": [
        "54e6ecb23951b195d02433a741c7f7cb0b796c78"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed Dec 06 20:33:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:24 2006 -0800"
      },
      "message": "[PATCH] slab: remove SLAB_KERNEL\n\nSLAB_KERNEL is an alias of GFP_KERNEL.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "17c157c889f4b07258af6bfec9e4e9dcf3c00178",
      "tree": "f17be049a40b5742ca7e67094d6a7063146568d5",
      "parents": [
        "81878d27fdd297a33f3cfcf29483fe1abaf26dec"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Tue Nov 14 19:46:02 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:42 2006 -0800"
      },
      "message": "[GENL]: Add genlmsg_put_reply() to simplify building reply headers\n\nBy modyfing genlmsg_put() to take a genl_family and by adding\ngenlmsg_put_reply() the process of constructing the netlink\nand generic netlink headers is simplified.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nAcked-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3dabc7157859e706770c825aa229f8943db4e0e1",
      "tree": "a6fc7ea0605b18c47b157cc9c168c642c365cd0c",
      "parents": [
        "cfb6eeb4c860592edd123fdea908d23c6ad1c7dc"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Tue Nov 14 19:44:52 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:40 2006 -0800"
      },
      "message": "[GENL]: Add genlmsg_new() to allocate generic netlink messages\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nAcked-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "339bf98ffc6a8d8eb16fc532ac57ffbced2f8a68",
      "tree": "499ad948863d2753ca10283dcf006ad28954538e",
      "parents": [
        "a94f723d595ee085f81b1788d18e031af7eeba91"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Fri Nov 10 14:10:15 2006 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Sat Dec 02 21:22:11 2006 -0800"
      },
      "message": "[NETLINK]: Do precise netlink message allocations where possible\n\nAccount for the netlink message header size directly in nlmsg_new()\ninstead of relying on the caller calculate it correctly.\n\nReplaces error handling of message construction functions when\nconstructing notifications with bug traps since a failure implies\na bug in calculating the size of the skb.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nAcked-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4a279ff1ea1cf325775ada983035123fcdc8e986",
      "tree": "d22332ae377a02c5c70021ed53395d65fb95b067",
      "parents": [
        "525fdb6cc929b515ad7e0be40fd023cff8660ed8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 30 22:07:15 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 31 08:07:00 2006 -0800"
      },
      "message": "[PATCH] taskstats: fix sub-threads accounting\n\nIf there are no listeners, taskstats_exit_send() just returns because\ntaskstats_exit_alloc() didn\u0027t allocate *tidstats.  This is wrong, each\nsub-thread should do fill_tgid_exit() on exit, otherwise its -\u003edelays is\nnot recorded in -\u003esignal-\u003estats and lost.\n\nQ: We don\u0027t send TASKSTATS_TYPE_AGGR_TGID when single-threaded process\nexits.  Is it good?  How can the listener figure out that it was actually a\nprocess exit, not sub-thread?\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nAcked-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3d8334def5cf831d2ed438aae021696a2faa4ddd",
      "tree": "6ba3582c4927bff20fd0e8e4fd3230680a5d8718",
      "parents": [
        "d46a3d0d07ba539aea5b0e1ad30e568f0cb03576"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 29 18:57:16 2006 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 29 12:07:37 2006 -0800"
      },
      "message": "[PATCH] taskstats: fix sk_buff size calculation\n\nprepare_reply() adds GENL_HDRLEN to the payload (genlmsg_total_size()),\nbut then it does genlmsg_put()-\u003enlmsg_put().  This means we forget to\nreserve a room for \u0027struct nlmsghdr\u0027.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Thomas Graf \u003ctgraf@suug.ch\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d46a3d0d07ba539aea5b0e1ad30e568f0cb03576",
      "tree": "2db10dd06537a27bbdd16080c56db33f884812bb",
      "parents": [
        "5211e6e6c671f0d4b1e1a1023384d20227d8ee65"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 29 16:45:58 2006 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 29 12:07:37 2006 -0800"
      },
      "message": "[PATCH] taskstats: fix sk_buff leak\n\n\u0027return genlmsg_cancel()\u0027 in taskstats_user_cmd/taskstats_exit_send\npotentially leaks a skb.  Unless we pass \u0027rep_skb\u0027 to the netlink layer\nwe own sk_buff.  This means we should always do kfree_skb() on failure.\n\n[ Thomas acked and pointed out missing return value in original version ]\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nCc: Andrew Morton \u003cakpm@osdl.org\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d7c3f5f231c60d7e6ada5770b536df2b3ec1bd08",
      "tree": "04bd0ce8b70f7a43195a210d8dd6a808be329a1c",
      "parents": [
        "a98b6094261c0112e9c455c96995972181bff049"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 28 10:38:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:55 2006 -0700"
      },
      "message": "[PATCH] fill_tgid: cleanup delays accounting\n\nfill_tgid() should skip not only an already exited group leader.  If the\ntask has -\u003eexit_state !\u003d 0 it already did exit_notify(), so it also did\nfill_tgid_exit()-\u003edelayacct_add_tsk(-\u003esignal-\u003estats) and we should skip it\nto avoid a double accounting.\n\nThis patch doesn\u0027t close the race completely, but it cleanups the code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a98b6094261c0112e9c455c96995972181bff049",
      "tree": "01a15d79e331730de5a255a7109cf1318b95f6ac",
      "parents": [
        "b8534d7bd89df0cd41cd47bcd6733a05ea9a691a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 28 10:38:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:54 2006 -0700"
      },
      "message": "[PATCH] taskstats: don\u0027t use tasklist_lock\n\nRemove tasklist_lock from taskstats.c. find_task_by_pid() is rcu-safe.\n-\u003esiglock allows us to traverse subthread without tasklist.\n\nQ: delay accounting looks wrong to me.  If sub-thread has already called\ntaskstats_exit_send() but didn\u0027t call release_task(self) yet it will be\naccounted twice.  The window is big.  No?\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b8534d7bd89df0cd41cd47bcd6733a05ea9a691a",
      "tree": "c4650f417d7f05a9c645d6a0b1f64405ec4c8a39",
      "parents": [
        "17b02695b254aa2ef0e53df9c8e6548f86e66a9d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 28 10:38:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:54 2006 -0700"
      },
      "message": "[PATCH] taskstats: kill -\u003etaskstats_lock in favor of -\u003esiglock\n\nsignal_struct is (mostly) protected by -\u003esighand-\u003esiglock, I think we don\u0027t\nneed -\u003etaskstats_lock to protect -\u003estats.  This also allows us to simplify the\nlocking in fill_tgid().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fca178c0c6e8d52a1875be36b070f30884ebfae9",
      "tree": "4bce17647edd3fae6b0ba96407cd1c02037b11d1",
      "parents": [
        "6e6d9fa6f95e382bb2d5725dda18b9e811418e79"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 28 10:38:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 28 11:30:54 2006 -0700"
      },
      "message": "[PATCH] fill_tgid: fix task_struct leak and possible oops\n\n1. fill_tgid() forgets to do put_task_struct(first).\n\n2. release_task(first) can happen after fill_tgid() drops tasklist_lock,\n   it is unsafe to dereference first-\u003esignal.\n\nThis is a temporary fix, imho the locking should be reworked.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@sgi.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9acc1853519a0473620d424105f9d49ea5b4e62e",
      "tree": "fd4d03bf82ea604e71f8e805e557023226c2dd42",
      "parents": [
        "f3cef7a99469afc159fec3a61b42dc7ca5b6824f"
      ],
      "author": {
        "name": "Jay Lan",
        "email": "jlan@engr.sgi.com",
        "time": "Sat Sep 30 23:28:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:29 2006 -0700"
      },
      "message": "[PATCH] csa: Extended system accounting over taskstats\n\nAdd extended system accounting handling over taskstats interface.  A\nCONFIG_TASK_XACCT flag is created to enable the extended accounting code.\n\nSigned-off-by: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Chris Sturtivant \u003ccsturtiv@sgi.com\u003e\nCc: Tony Ernst \u003ctee@sgi.com\u003e\nCc: Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f3cef7a99469afc159fec3a61b42dc7ca5b6824f",
      "tree": "b1805a0d0b4a273b8ce0a245c17570ff18abdc5b",
      "parents": [
        "7d1bdca9b06acb3df07329eaff72d5eaf1543287"
      ],
      "author": {
        "name": "Jay Lan",
        "email": "jlan@engr.sgi.com",
        "time": "Sat Sep 30 23:28:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:29 2006 -0700"
      },
      "message": "[PATCH] csa: basic accounting over taskstats\n\nAdd some basic accounting fields to the taskstats struct, add a new\nkernel/tsacct.c to handle basic accounting data handling upon exit.  A handle\nis added to taskstats.c to invoke the basic accounting data handling.\n\nSigned-off-by: Jay Lan \u003cjlan@sgi.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Chris Sturtivant \u003ccsturtiv@sgi.com\u003e\nCc: Tony Ernst \u003ctee@sgi.com\u003e\nCc: Guillaume Thouvenin \u003cguillaume.thouvenin@bull.net\u003e\nCc: \"Michal Piotrowski\" \u003cmichal.k.k.piotrowski@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ae646845b603e9df5711084436d389f8371ffb3",
      "tree": "1554ba465812cc10c10b9bd28020a34effe0d8d4",
      "parents": [
        "17db952cd16cecc76937b138c685ae3d198ab17c"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@in.ibm.com",
        "time": "Sat Sep 30 23:28:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 01 00:39:29 2006 -0700"
      },
      "message": "[PATCH] Fix taskstats size calculation (use the new genetlink utility functions)\n\nThe addition of the CSA patch pushed the size of struct taskstats to 256\nbytes.  This exposed a problem with prepare_reply(), we were not allocating\nspace for the netlink and genetlink header.  It worked earlier because\nalloc_skb() would align the skb to SMP_CACHE_BYTES, which added some additonal\nbytes.\n\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jamal Hadi \u003chadi@cyberus.ca\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Thomas Graf \u003ctgraf@suug.ch\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fe4944e59c357f945f81bc67edb7ed1392e875ad",
      "tree": "9634365d416ac574442fc7e21e1eaa26a71a26d1",
      "parents": [
        "e1ef4bf23b1ced0bf78a1c98289f746486e5c912"
      ],
      "author": {
        "name": "Thomas Graf",
        "email": "tgraf@suug.ch",
        "time": "Fri Aug 04 23:03:05 2006 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Fri Sep 22 14:53:43 2006 -0700"
      },
      "message": "[NETLINK]: Extend netlink messaging interface\n\nAdds:\n nlmsg_get_pos()                 return current position in message\n nlmsg_trim()                    trim part of message\n nla_reserve_nohdr(skb, len)     reserve room for an attribute w/o hdr\n nla_put_nohdr(skb, len, data)   add attribute w/o hdr\n nla_find_nested()               find attribute in nested attributes\n\nFixes nlmsg_new() to take allocation flags and consider size.\n\nSigned-off-by: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d94a041519f3ab1ac023bf917619cd8c4a7d3c01",
      "tree": "6d7d476814db70fab691242c7663204c64dbb43e",
      "parents": [
        "7d94dddd438bcba97db44f120da39bb001b5249f"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Sun Jul 30 03:03:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:37 2006 -0700"
      },
      "message": "[PATCH] taskstats: free skb, avoid returns in send_cpu_listeners\n\nAdd a missing freeing of skb in the case there are no listeners at all.\nAlso remove the returning of error values by the function as it is unused\nby the sole caller.\n\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7d94dddd438bcba97db44f120da39bb001b5249f",
      "tree": "edd737ba4e06ec086f0296a7d99a13e240c7ab93",
      "parents": [
        "15a647eba94c3da27ccc666bea72e7cca06b2d19"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Sun Jul 30 03:03:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jul 31 13:28:37 2006 -0700"
      },
      "message": "[PATCH] make taskstats sending completely independent of delay accounting on/off status\n\nComplete the separation of delay accounting and taskstats by ignoring the\nreturn value of delay accounting functions that fill in parts of taskstats\nbefore it is sent out (either in response to a command or as part of a task\nexit).\n\nAlso make delayacct_add_tsk return silently when delay accounting is turned\noff rather than treat it as an error.\n\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bb129994c3bff9c5e8df91f05d7e9b6402fbd83f",
      "tree": "8d8c4e27af727c9de42ac6aeae04f70537e6bd01",
      "parents": [
        "f9fd8914c1acca0d98b69d831b128d5b52f03c51"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:57 2006 -0700"
      },
      "message": "[PATCH] Remove down_write() from taskstats code invoked on the exit() path\n\nIn send_cpu_listeners(), which is called on the exit path, a down_write()\nwas protecting operations like skb_clone() and genlmsg_unicast() that do\nGFP_KERNEL allocations.  If the oom-killer decides to kill tasks to satisfy\nthe allocations,the exit of those tasks could block on the same semphore.\n\nThe down_write() was only needed to allow removal of invalid listeners from\nthe listener list.  The patch converts the down_write to a down_read and\ndefers the removal to a separate critical region.  This ensures that even\nif the oom-killer is called, no other task\u0027s exit is blocked as it can\nstill acquire another down_read.\n\nThanks to Andrew Morton \u0026 Herbert Xu for pointing out the oom related\npitfalls, and to Chandra Seetharaman for suggesting this fix instead of\nusing something more complex like RCU.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f9fd8914c1acca0d98b69d831b128d5b52f03c51",
      "tree": "18c2506bb31e49a9e2c4a483d37b0394c815fe9d",
      "parents": [
        "c8924363da07aec213e5d359f23eeae1fff91951"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:57 2006 -0700"
      },
      "message": "[PATCH] per-task delay accounting taskstats interface: control exit data through cpumasks\n\nOn systems with a large number of cpus, with even a modest rate of tasks\nexiting per cpu, the volume of taskstats data sent on thread exit can\noverflow a userspace listener\u0027s buffers.\n\nOne approach to avoiding overflow is to allow listeners to get data for a\nlimited and specific set of cpus.  By scaling the number of listeners\nand/or the cpus they monitor, userspace can handle the statistical data\noverload more gracefully.\n\nIn this patch, each listener registers to listen to a specific set of cpus\nby specifying a cpumask.  The interest is recorded per-cpu.  When a task\nexits on a cpu, its taskstats data is unicast to each listener interested\nin that cpu.\n\nThanks to Andrew Morton for pointing out the various scalability and\ngeneral concerns of previous attempts and for suggesting this design.\n\n[akpm@osdl.org: build fix]\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ad4ecbcba72855a2b5319b96e2a3a65ed1ca3bfd",
      "tree": "a2f5b98598948525de77ab594e4432f09a230388",
      "parents": [
        "25890454667b3295f67b3372352be90705f8667c"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:57 2006 -0700"
      },
      "message": "[PATCH] delay accounting taskstats interface send tgid once\n\nSend per-tgid data only once during exit of a thread group instead of once\nwith each member thread exit.\n\nCurrently, when a thread exits, besides its per-tid data, the per-tgid data\nof its thread group is also sent out, if its thread group is non-empty.\nThe per-tgid data sent consists of the sum of per-tid stats for all\n*remaining* threads of the thread group.\n\nThis patch modifies this sending in two ways:\n\n- the per-tgid data is sent only when the last thread of a thread group\n  exits.  This cuts down heavily on the overhead of sending/receiving\n  per-tgid data, especially when other exploiters of the taskstats\n  interface aren\u0027t interested in per-tgid stats\n\n- the semantics of the per-tgid data sent are changed.  Instead of being\n  the sum of per-tid data for remaining threads, the value now sent is the\n  true total accumalated statistics for all threads that are/were part of\n  the thread group.\n\nThe patch also addresses a minor issue where failure of one accounting\nsubsystem to fill in the taskstats structure was causing the send of\ntaskstats to not be sent at all.\n\nThe patch has been tested for stability and run cerberus for over 4 hours\non an SMP.\n\n[akpm@osdl.org: bugfixes]\nSigned-off-by: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6f44993fe1d7b2b097f6ac60cd5835c6f5ca0874",
      "tree": "0f349f4e6c28cc5d11b7083273543a294c437216",
      "parents": [
        "c757249af152c59fd74b85e52e8c090acb33d9c0"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:56 2006 -0700"
      },
      "message": "[PATCH] per-task-delay-accounting: delay accounting usage of taskstats interface\n\nUsage of taskstats interface by delay accounting.\n\nSigned-off-by: Shailabh Nagar \u003cnagar@us.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nCc: Erich Focht \u003cefocht@ess.nec.de\u003e\nCc: Levent Serinol \u003clserinol@gmail.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c757249af152c59fd74b85e52e8c090acb33d9c0",
      "tree": "78495f661fe537bf5087b24e6577659de8725b5a",
      "parents": [
        "fb0ba6bd021248b6bdc58a7b1213a55a6776a38a"
      ],
      "author": {
        "name": "Shailabh Nagar",
        "email": "nagar@watson.ibm.com",
        "time": "Fri Jul 14 00:24:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jul 14 21:53:56 2006 -0700"
      },
      "message": "[PATCH] per-task-delay-accounting: taskstats interface\n\nCreate a \"taskstats\" interface based on generic netlink (NETLINK_GENERIC\nfamily), for getting statistics of tasks and thread groups during their\nlifetime and when they exit.  The interface is intended for use by multiple\naccounting packages though it is being created in the context of delay\naccounting.\n\nThis patch creates the interface without populating the fields of the data\nthat is sent to the user in response to a command or upon the exit of a task.\nEach accounting package interested in using taskstats has to provide an\nadditional patch to add its stats to the common structure.\n\n[akpm@osdl.org: cleanups, Kconfig fix]\nSigned-off-by: Shailabh Nagar \u003cnagar@us.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jes Sorensen \u003cjes@sgi.com\u003e\nCc: Peter Chubb \u003cpeterc@gelato.unsw.edu.au\u003e\nCc: Erich Focht \u003cefocht@ess.nec.de\u003e\nCc: Levent Serinol \u003clserinol@gmail.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ]
}
