)]}'
{
  "log": [
    {
      "commit": "8c733420bdd5a6cc2d8540fb5aa32d1fbf3cb3ff",
      "tree": "e5ae903b22d0288fe9a8391c2ab0ca85bbe9dfce",
      "parents": [
        "eaa0d190bfe1ed891b814a52712dcd852554cb08"
      ],
      "author": {
        "name": "Zhang Xiao",
        "email": "xiao.zhang@windriver.com",
        "time": "Mon May 08 15:56:45 2017 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 08 17:15:12 2017 -0700"
      },
      "message": "taskstats: add e/u/stime for TGID command\n\nThe elapsed time, user CPU time and system CPU time for the thread group\nstatus request are presently left at zero.  Fill these in.\n\n[akpm@linux-foundation.org: run ktime_get_ns() a single time]\n[akpm@linux-foundation.org: include linux/sched/cputime.h for task_cputime()]\nLink: http://lkml.kernel.org/r/1488508424-12322-1-git-send-email-xiao.zhang@windriver.com\nSigned-off-by: Zhang Xiao \u003cxiao.zhang@windriver.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb598c1b8c9bf56981927dcb8c0dc34b8ff95342",
      "tree": "69fe6d3bcdbf0acb76e42b144d8af5a0234ccdcb",
      "parents": [
        "eb2ca35f1814dad3ca547261eedfbbd0d65a0efc",
        "e76d21c40bd6c67fd4e2c1540d77e113df962b4d"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 15 10:54:36 2016 -0500"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 15 10:54:36 2016 -0500"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nSeveral cases of bug fixes in \u0027net\u0027 overlapping other changes in\n\u0027net-next-.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "243d52126184b072a18fe2130ce0008f8aa3a340",
      "tree": "d8437d736ef3723ae9fd58aaf67d7324b2433286",
      "parents": [
        "00ffc1ba02d876478c125e4305f9a02d40c6d284"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Thu Nov 03 09:42:36 2016 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 03 16:55:58 2016 -0400"
      },
      "message": "taskstats: fix the length of cgroupstats_cmd_get_policy\n\ncgroupstats_cmd_get_policy is [CGROUPSTATS_CMD_ATTR_MAX+1],\ntaskstats_cmd_get_policy[TASKSTATS_CMD_ATTR_MAX+1],\nbut their family.maxattr is TASKSTATS_CMD_ATTR_MAX.\nCGROUPSTATS_CMD_ATTR_MAX is less than TASKSTATS_CMD_ATTR_MAX,\nso we could end up accessing out-of-bound.\n\nChange cgroupstats_cmd_get_policy to TASKSTATS_CMD_ATTR_MAX+1,\nthis is safe because the rest are initialized to 0\u0027s.\n\nReported-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nTested-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nSigned-off-by: Cong Wang \u003cxiyou.wangcong@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "56989f6d8568c21257dcec0f5e644d5570ba3281",
      "tree": "60a6b44865e68e25dbc8bcc38d0000e12106f2d8",
      "parents": [
        "2ae0f17df1cd52aafd1ab0415ea1f1dd56dc0e2a"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Mon Oct 24 14:40:05 2016 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 27 16:16:09 2016 -0400"
      },
      "message": "genetlink: mark families as __ro_after_init\n\nNow genl_register_family() is the only thing (other than the\nusers themselves, perhaps, but I didn\u0027t find any doing that)\nwriting to the family struct.\n\nIn all families that I found, genl_register_family() is only\ncalled from __init functions (some indirectly, in which case\nI\u0027ve add __init annotations to clarifly things), so all can\nactually be marked __ro_after_init.\n\nThis protects the data structure from accidental corruption.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "489111e5c25b93be80340c3113d71903d7c82136",
      "tree": "bf1af9c989ee4cd1decbfcbfe0633d7f563f5c83",
      "parents": [
        "a07ea4d9941af5a0c6f0be2a71b51ac9c083c5e5"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Mon Oct 24 14:40:03 2016 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 27 16:16:09 2016 -0400"
      },
      "message": "genetlink: statically initialize families\n\nInstead of providing macros/inline functions to initialize\nthe families, make all users initialize them statically and\nget rid of the macros.\n\nThis reduces the kernel code size by about 1.6k on x86-64\n(with allyesconfig).\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a07ea4d9941af5a0c6f0be2a71b51ac9c083c5e5",
      "tree": "52d22e6ed0079bb5a78d610c2ee33a783f070553",
      "parents": [
        "c90c39dab3e02ce45427a214746711f33ad13be6"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Mon Oct 24 14:40:02 2016 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Oct 27 16:16:09 2016 -0400"
      },
      "message": "genetlink: no longer support using static family IDs\n\nStatic family IDs have never really been used, the only\nuse case was the workaround I introduced for those users\nthat assumed their family ID was also their multicast\ngroup ID.\n\nAdditionally, because static family IDs would never be\nreserved by the generic netlink code, using a relatively\nlow ID would only work for built-in families that can be\nregistered immediately after generic netlink is started,\nwhich is basically only the control family (apart from\nthe workaround code, which I also had to add code for so\nit would reserve those IDs)\n\nThus, anything other than GENL_ID_GENERATE is flawed and\nluckily not used except in the cases I mentioned. Move\nthose workarounds into a few lines of code, and then get\nrid of GENL_ID_GENERATE entirely, making it more robust.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "80df554275c21edca22ece02448bdb378c2ee9f1",
      "tree": "ea4a3f342c07929025c193b2b67e206e1008afa9",
      "parents": [
        "de95c4a46a6e608444ccaf541087594553c7df11"
      ],
      "author": {
        "name": "Nicolas Dichtel",
        "email": "nicolas.dichtel@6wind.com",
        "time": "Fri Apr 22 17:31:24 2016 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sat Apr 23 20:13:25 2016 -0400"
      },
      "message": "taskstats: use the libnl API to align nlattr on 64-bit\n\nGoal of this patch is to use the new libnl API to align netlink attribute\nwhen needed.\nThe layout of the netlink message will be a bit different after the patch,\nbecause the padattr (TASKSTATS_TYPE_STATS) will be inside the nested\nattribute instead of before it.\n\nSigned-off-by: Nicolas Dichtel \u003cnicolas.dichtel@6wind.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "053c095a82cf773075e83d7233b5cc19a1f73ece",
      "tree": "c787028efa9a73a182a0f338f87b6294cef4b8b9",
      "parents": [
        "ede58ef28e105de94475b2b69fa069c9a2ce6933"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Jan 16 22:09:00 2015 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jan 18 01:03:45 2015 -0500"
      },
      "message": "netlink: make nlmsg_end() and genlmsg_end() void\n\nContrary to common expectations for an \"int\" return, these functions\nreturn only a positive value -- if used correctly they cannot even\nreturn 0 because the message header will necessarily be in the skb.\n\nThis makes the very common pattern of\n\n  if (genlmsg_end(...) \u003c 0) { ... }\n\nbe a whole bunch of dead code. Many places also simply do\n\n  return nlmsg_end(...);\n\nand the caller is expected to deal with it.\n\nThis also commonly (at least for me) causes errors, because it is very\ncommon to write\n\n  if (my_function(...))\n    /* error condition */\n\nand if my_function() does \"return nlmsg_end()\" this is of course wrong.\n\nAdditionally, there\u0027s not a single place in the kernel that actually\nneeds the message length returned, and if anyone needs it later then\nit\u0027ll be very easy to just use skb-\u003elen there.\n\nRemove this, and make the functions void. This removes a bunch of dead\ncode as described above. The patch adds lines because I did\n\n-\treturn nlmsg_end(...);\n+\tnlmsg_end(...);\n+\treturn 0;\n\nI could have preserved all the function\u0027s return values by returning\nskb-\u003elen, but instead I\u0027ve audited all the places calling the affected\nfunctions and found that none cared. A few places actually compared\nthe return value with \u003c\u003d 0 in dump functionality, but that could just\nbe changed to \u003c 0 with no change in behaviour, so I opted for the more\nefficient version.\n\nOne instance of the error I\u0027ve made numerous times now is also present\nin net/phonet/pn_netlink.c in the route_dumpit() function - it didn\u0027t\ncheck for \u003c0 or \u003c\u003d0 and thus broke out of the loop every single time.\nI\u0027ve preserved this since it will (I think) have caused the messages to\nuserspace to be formatted differently with just a single message for\nevery SKB returned to userspace. It\u0027s possible that this isn\u0027t needed\nfor the tools that actually use this, but I don\u0027t even know what they\nare so couldn\u0027t test that changing this behaviour would be acceptable.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b583043e99bc6d91e98fae32bd9eff6a5958240a",
      "tree": "8f2f9a4d28ae16c7d452808ff400bb1f31fb09c8",
      "parents": [
        "30e46aba8f1010b03178f04c0c56be299c063df2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 31 01:22:04 2014 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 19 13:01:25 2014 -0500"
      },
      "message": "kill f_dentry uses\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4a32fea9d78f2d2315c0072757b197d5a304dc8b",
      "tree": "6cb53d3bb67bed81671ff9ff38d2f48d118a2345",
      "parents": [
        "dc5df73b3afffc8d042dadffc1c959008b2c1163"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Sun Aug 17 12:30:27 2014 -0500"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Aug 26 13:45:45 2014 -0400"
      },
      "message": "scheduler: Replace __get_cpu_var with this_cpu_ptr\n\nConvert all uses of __get_cpu_var for address calculation to use\nthis_cpu_ptr instead.\n\n[Uses of __get_cpu_var with cpumask_var_t are no longer\nhandled by this patch]\n\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "c53ed7423619b4e8108914a9f31b426dd58ad591",
      "tree": "03a469a7f00d99ff73bf947b5306369bfaff18f5",
      "parents": [
        "dbde497966804e63a38fdedc1e3815e77097efc2"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Tue Nov 19 15:19:31 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Nov 19 16:39:05 2013 -0500"
      },
      "message": "genetlink: only pass array to genl_register_family_with_ops()\n\nAs suggested by David Miller, make genl_register_family_with_ops()\na macro and pass only the array, evaluating ARRAY_SIZE() in the\nmacro, this is a little safer.\n\nThe openvswitch has some indirection, assing ops/n_ops directly in\nthat code. This might ultimately just assign the pointers in the\nfamily initializations, saving the struct genl_family_and_ops and\ncode (once mcast groups are handled differently.)\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4534de8305b3f1460a527a0cda0e3dc2224c6f0c",
      "tree": "8d140f8ea1c583a4f4ab4e7dc74a3d5dfdaa9ddc",
      "parents": [
        "f84f771d942182e39a56ec2989d6a67d3ca33a13"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Nov 14 17:14:46 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 14 17:10:41 2013 -0500"
      },
      "message": "genetlink: make all genl_ops users const\n\nNow that genl_ops are no longer modified in place when\nregistering, they can be made const. This patch was done\nmostly with spatch:\n\n@@\nidentifier ops;\n@@\n+const\n struct genl_ops ops[] \u003d {\n ...\n };\n\n(except the struct thing in net/openvswitch/datapath.c)\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "88d36a9949513419de3a506e7fca8b82d1dc972a",
      "tree": "ea91ab0a7da6b3549a0559677b8cd9937006a6e7",
      "parents": [
        "1e9f3d6f1c403dd2b6270f654b4747147aa2306f"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Thu Nov 14 17:14:39 2013 +0100"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Nov 14 17:10:40 2013 -0500"
      },
      "message": "taskstats: use genl_register_family_with_ops()\n\nThis simplifies the code since there\u0027s no longer a\nneed to have error handling in the registration.\n\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0d20633b041041ecda39ae562e62087acf0092f1",
      "tree": "fdc3283c0a96c22705c103b04a87567029a9c4a8",
      "parents": [
        "3fa582663129330d57d15b97ae534dc1203fc3aa"
      ],
      "author": {
        "name": "Chen Gang",
        "email": "gang.chen@asianux.com",
        "time": "Tue Nov 12 15:11:23 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 13 12:09:34 2013 +0900"
      },
      "message": "kernel/taskstats.c: return -ENOMEM when alloc memory fails in add_del_listener()\n\nFor registering in add_del_listener(), when kmalloc_node() fails, need\nreturn -ENOMEM instead of success code, and cmd_attr_register_cpumask()\nwants to know about it.\n\nAfter modification, give a simple common test \"build -\u003e boot up -\u003e\nkernel/controllers/cgroup/getdelays by LTP tools\".\n\nSigned-off-by: Chen Gang \u003cgang.chen@asianux.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3fa582663129330d57d15b97ae534dc1203fc3aa",
      "tree": "b648e5937c02b442fba0bd0918e5566b24d8d7f4",
      "parents": [
        "f02147ef190b3963bb61ec0e140ec47f22889f38"
      ],
      "author": {
        "name": "Chen Gang",
        "email": "gang.chen@asianux.com",
        "time": "Tue Nov 12 15:11:22 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 13 12:09:33 2013 +0900"
      },
      "message": "kernel/taskstats.c: add nla_nest_cancel() for failure processing between nla_nest_start() and nla_nest_end()\n\nWhen failure occurs between nla_nest_start() and nla_nest_end(), we should\ncall nla_nest_cancel() to clean up related things.\n\nSigned-off-by: Chen Gang \u003cgang.chen@asianux.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0324b5a450f8a58304e93c5d886add24ca3527bc",
      "tree": "f3e77339d9964f550485e9d9b40897ba1b95b33f",
      "parents": [
        "322c9ec009fdc2bc9ccb8f55afab3f7ab8ac71ab"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Oct 04 17:16:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 06 03:05:31 2012 +0900"
      },
      "message": "taskstats: cgroupstats_user_cmd() may leak on error\n\nIf prepare_reply() succeeds we have allocated memory for \u0027rep_skb\u0027.  If\nnla_reserve() then subsequently fails and returns NULL we fail to release\nthe memory we allocated, thus causing a leak.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aab174f0df5d72d31caccf281af5f614fa254578",
      "tree": "2a172c5009c4ac8755e858593154c258ce7709a0",
      "parents": [
        "ca41cc96b2813221b05af57d0355157924de5a07",
        "2bd2c1941f141ad780135ccc1cd08ca71a24f10a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 20:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 20:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs update from Al Viro:\n\n - big one - consolidation of descriptor-related logics; almost all of\n   that is moved to fs/file.c\n\n   (BTW, I\u0027m seriously tempted to rename the result to fd.c.  As it is,\n   we have a situation when file_table.c is about handling of struct\n   file and file.c is about handling of descriptor tables; the reasons\n   are historical - file_table.c used to be about a static array of\n   struct file we used to have way back).\n\n   A lot of stray ends got cleaned up and converted to saner primitives,\n   disgusting mess in android/binder.c is still disgusting, but at least\n   doesn\u0027t poke so much in descriptor table guts anymore.  A bunch of\n   relatively minor races got fixed in process, plus an ext4 struct file\n   leak.\n\n - related thing - fget_light() partially unuglified; see fdget() in\n   there (and yes, it generates the code as good as we used to have).\n\n - also related - bits of Cyrill\u0027s procfs stuff that got entangled into\n   that work; _not_ all of it, just the initial move to fs/proc/fd.c and\n   switch of fdinfo to seq_file.\n\n - Alex\u0027s fs/coredump.c spiltoff - the same story, had been easier to\n   take that commit than mess with conflicts.  The rest is a separate\n   pile, this was just a mechanical code movement.\n\n - a few misc patches all over the place.  Not all for this cycle,\n   there\u0027ll be more (and quite a few currently sit in akpm\u0027s tree).\"\n\nFix up trivial conflicts in the android binder driver, and some fairly\nsimple conflicts due to two different changes to the sock_alloc_file()\ninterface (\"take descriptor handling from sock_alloc_file() to callers\"\nvs \"net: Providing protocol type via system.sockprotoname xattr of\n/proc/PID/fd entries\" adding a dentry name to the socket)\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (72 commits)\n  MAX_LFS_FILESIZE should be a loff_t\n  compat: fs: Generic compat_sys_sendfile implementation\n  fs: push rcu_barrier() from deactivate_locked_super() to filesystems\n  btrfs: reada_extent doesn\u0027t need kref for refcount\n  coredump: move core dump functionality into its own file\n  coredump: prevent double-free on an error path in core dumper\n  usb/gadget: fix misannotations\n  fcntl: fix misannotations\n  ceph: don\u0027t abuse d_delete() on failure exits\n  hypfs: -\u003ed_parent is never NULL or negative\n  vfs: delete surplus inode NULL check\n  switch simple cases of fget_light to fdget\n  new helpers: fdget()/fdput()\n  switch o2hb_region_dev_write() to fget_light()\n  proc_map_files_readdir(): don\u0027t bother with grabbing files\n  make get_file() return its argument\n  vhost_set_vring(): turn pollstart/pollstop into bool\n  switch prctl_set_mm_exe_file() to fget_light()\n  switch xfs_find_handle() to fget_light()\n  switch xfs_swapext() to fget_light()\n  ...\n"
    },
    {
      "commit": "aecdc33e111b2c447b622e287c6003726daa1426",
      "tree": "3e7657eae4b785e1a1fb5dfb225dbae0b2f0cfc6",
      "parents": [
        "a20acf99f75e49271381d65db097c9763060a1e8",
        "a3a6cab5ea10cca64d036851fe0d932448f2fe4f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 13:38:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 02 13:38:27 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nPull networking changes from David Miller:\n\n 1) GRE now works over ipv6, from Dmitry Kozlov.\n\n 2) Make SCTP more network namespace aware, from Eric Biederman.\n\n 3) TEAM driver now works with non-ethernet devices, from Jiri Pirko.\n\n 4) Make openvswitch network namespace aware, from Pravin B Shelar.\n\n 5) IPV6 NAT implementation, from Patrick McHardy.\n\n 6) Server side support for TCP Fast Open, from Jerry Chu and others.\n\n 7) Packet BPF filter supports MOD and XOR, from Eric Dumazet and Daniel\n    Borkmann.\n\n 8) Increate the loopback default MTU to 64K, from Eric Dumazet.\n\n 9) Use a per-task rather than per-socket page fragment allocator for\n    outgoing networking traffic.  This benefits processes that have very\n    many mostly idle sockets, which is quite common.\n\n    From Eric Dumazet.\n\n10) Use up to 32K for page fragment allocations, with fallbacks to\n    smaller sizes when higher order page allocations fail.  Benefits are\n    a) less segments for driver to process b) less calls to page\n    allocator c) less waste of space.\n\n    From Eric Dumazet.\n\n11) Allow GRO to be used on GRE tunnels, from Eric Dumazet.\n\n12) VXLAN device driver, one way to handle VLAN issues such as the\n    limitation of 4096 VLAN IDs yet still have some level of isolation.\n    From Stephen Hemminger.\n\n13) As usual there is a large boatload of driver changes, with the scale\n    perhaps tilted towards the wireless side this time around.\n\nFix up various fairly trivial conflicts, mostly caused by the user\nnamespace changes.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1012 commits)\n  hyperv: Add buffer for extended info after the RNDIS response message.\n  hyperv: Report actual status in receive completion packet\n  hyperv: Remove extra allocated space for recv_pkt_list elements\n  hyperv: Fix page buffer handling in rndis_filter_send_request()\n  hyperv: Fix the missing return value in rndis_filter_set_packet_filter()\n  hyperv: Fix the max_xfer_size in RNDIS initialization\n  vxlan: put UDP socket in correct namespace\n  vxlan: Depend on CONFIG_INET\n  sfc: Fix the reported priorities of different filter types\n  sfc: Remove EFX_FILTER_FLAG_RX_OVERRIDE_IP\n  sfc: Fix loopback self-test with separate_tx_channels\u003d1\n  sfc: Fix MCDI structure field lookup\n  sfc: Add parentheses around use of bitfield macro arguments\n  sfc: Fix null function pointer in efx_sriov_channel_type\n  vxlan: virtual extensible lan\n  igmp: export symbol ip_mc_leave_group\n  netlink: add attributes to fdb interface\n  tg3: unconditionally select HWMON support when tg3 is enabled.\n  Revert \"net: ti cpsw ethernet: allow reading phy interface mode from DT\"\n  gre: fix sparse warning\n  ...\n"
    },
    {
      "commit": "2903ff019b346ab8d36ebbf54853c3aaf6590608",
      "tree": "962d94054765bb37bc00e977c3036e65c5fd91fe",
      "parents": [
        "a5b470ba06aa3f96999ede5feba178df6bdb134a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Aug 28 12:52:22 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Sep 26 22:20:08 2012 -0400"
      },
      "message": "switch simple cases of fget_light to fdget\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "4bd6e32acec66c55c6c1af4672f3216b2ac88e35",
      "tree": "10800ae46eac8cba0f947b9ec3b7c8bc694d834a",
      "parents": [
        "cca080d9b622094831672a136e5ee4f702d116b1"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Feb 07 17:56:49 2012 -0800"
      },
      "committer": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Sep 18 01:01:32 2012 -0700"
      },
      "message": "userns: Convert taskstats to handle the user and pid namespaces.\n\n- Explicitly limit exit task stat broadcast to the initial user and\n  pid namespaces, as it is already limited to the initial network\n  namespace.\n\n- For broadcast task stats explicitly generate all of the idenitiers\n  in terms of the initial user namespace and the initial pid\n  namespace.\n\n- For request stats report them in terms of the current user namespace\n  and the current pid namespace.  Netlink messages are delivered\n  syncrhonously to the kernel allowing us to get the user namespace\n  and the pid namespace from the current task.\n\n- Pass the namespaces for representing pids and uids and gids\n  into bacct_add_task.\n\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "15e473046cb6e5d18a4d0057e61d76315230382b",
      "tree": "893d2df5d46a6ce156933ac57a1398f0ad22b889",
      "parents": [
        "9f00d9776bc5beb92e8bfc884a7e96ddc5589e2e"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Sep 07 20:12:54 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Sep 10 15:30:41 2012 -0400"
      },
      "message": "netlink: Rename pid to portid to avoid confusion\n\nIt is a frequent mistake to confuse the netlink port identifier with a\nprocess identifier.  Try to reduce this confusion by renaming fields\nthat hold port identifiers portid instead of pid.\n\nI have carefully avoided changing the structures exported to\nuserspace to avoid changing the userspace API.\n\nI have successfully built an allyesconfig kernel with this change.\n\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Stephen Hemminger \u003cshemminger@vyatta.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "25353b3377d5a75d4b830477bb90a3691155de72",
      "tree": "fc1227929cb2cf7c5356e19c5adbb238bcfb14bb",
      "parents": [
        "fd4b616b0fbb77e3f349e7d60914f2b7c7e39f9c"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Mon Jul 30 14:42:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 30 17:25:21 2012 -0700"
      },
      "message": "taskstats: check nla_reserve() return\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d44621\n\nReported-by: \u003crucsoftsec@gmail.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a51410abe7d0ee4b1d112780f46df87d3621043",
      "tree": "fc8a3d70b9fca3692e33e528a420eae1e5407850",
      "parents": [
        "b6a68a5ba4a5111379625d6d921e1c24fc17dc3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 19 17:04:37 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 19 17:04:37 2011 -0700"
      },
      "message": "Make TASKSTATS require root access\n\nOk, this isn\u0027t optimal, since it means that \u0027iotop\u0027 needs admin\ncapabilities, and we may have to work on this some more.  But at the\nsame time it is very much not acceptable to let anybody just read\nanybody elses IO statistics quite at this level.\n\nUse of the GENL_ADMIN_PERM suggested by Johannes Berg as an alternative\nto checking the capabilities by hand.\n\nReported-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nAcked-by: Balbir Singh \u003cbsingharora@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a7295898a1d2e501427f557111c2b4bdfc90b1ed",
      "tree": "143ce6e69d8aa795494120a00c62ca0ade8bac40",
      "parents": [
        "dfc428b656c4693a2334a8d9865b430beddb562a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 03 16:21:05 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 14:25:20 2011 -1000"
      },
      "message": "taskstats: add_del_listener() should ignore !valid listeners\n\nWhen send_cpu_listeners() finds the orphaned listener it marks it as\n!valid and drops listeners-\u003esem.  Before it takes this sem for writing,\ns-\u003epid can be reused and add_del_listener() can wrongly try to re-use\nthis entry.\n\nChange add_del_listener() to check -\u003evalid \u003d T.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nAcked-by: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfc428b656c4693a2334a8d9865b430beddb562a",
      "tree": "ad8aa91d2e3c5e9cedc5f4efb2e04a86b4a0784e",
      "parents": [
        "12b3e038e5bb4860c17d001e92a6fa9964c0a7b9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Aug 03 16:21:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 03 14:25:20 2011 -1000"
      },
      "message": "taskstats: add_del_listener() shouldn\u0027t use the wrong node\n\n1. Commit 26c4caea9d69 \"don\u0027t allow duplicate entries in listener mode\"\n   changed add_del_listener(REGISTER) so that \"next_cpu:\" can reuse the\n   listener allocated for the previous cpu, this doesn\u0027t look exactly\n   right even if minor.\n\n   Change the code to kfree() in the already-registered case, this case\n   is unlikely anyway so the extra kmalloc_node() shouldn\u0027t hurt but\n   looke more correct and clean.\n\n2. use the plain list_for_each_entry() instead of _safe() to scan\n   listeners-\u003elist.\n\n3. Remove the unneeded INIT_LIST_HEAD(\u0026s-\u003elist), we are going to\n   list_add(\u0026s-\u003elist).\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nReviewed-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60063497a95e716c9a689af3be2687d261f115b4",
      "tree": "6ce0d68db76982c53df46aee5f29f944ebf2c320",
      "parents": [
        "148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed"
      ],
      "author": {
        "name": "Arun Sharma",
        "email": "asharma@fb.com",
        "time": "Tue Jul 26 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 26 16:49:47 2011 -0700"
      },
      "message": "atomic: use \u003clinux/atomic.h\u003e\n\nThis allows us to move duplicated code in \u003casm/atomic.h\u003e\n(atomic_inc_not_zero() for now) to \u003clinux/atomic.h\u003e\n\nSigned-off-by: Arun Sharma \u003casharma@fb.com\u003e\nReviewed-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26c4caea9d697043cc5a458b96411b86d7f6babd",
      "tree": "cf4de2553fbfcafc41eb4f84bc9ee1eb69adf725",
      "parents": [
        "08142579b6ca35883c1ed066a2681de6f6917062"
      ],
      "author": {
        "name": "Vasiliy Kulikov",
        "email": "segoon@openwall.com",
        "time": "Mon Jun 27 16:18:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 18:00:13 2011 -0700"
      },
      "message": "taskstats: don\u0027t allow duplicate entries in listener mode\n\nCurrently a single process may register exit handlers unlimited times.\nIt may lead to a bloated listeners chain and very slow process\nterminations.\n\nEg after 10KK sent TASKSTATS_CMD_ATTR_REGISTER_CPUMASKs ~300 Mb of\nkernel memory is stolen for the handlers chain and \"time id\" shows 2-7\nseconds instead of normal 0.003.  It makes it possible to exhaust all\nkernel memory and to eat much of CPU time by triggerring numerous exits\non a single CPU.\n\nThe patch limits the number of times a single process may register\nitself on a single CPU to one.\n\nOne little issue is kept unfixed - as taskstats_exit() is called before\nexit_files() in do_exit(), the orphaned listener entry (if it was not\nexplicitly deregistered) is kept until the next someone\u0027s exit() and\nimplicit deregistration in send_cpu_listeners().  So, if a process\nregistered itself as a listener exits and the next spawned process gets\nthe same pid, it would inherit taskstats attributes.\n\nSigned-off-by: Vasiliy Kulikov \u003csegooon@gmail.com\u003e\nCc: Balbir Singh \u003cbsingharora@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9b182e24ecb2b3bb33340f053ba31c8c4e1d895",
      "tree": "17964defa2bd5104dc49994385f627d70c5dfdef",
      "parents": [
        "2e1496707560ecf98e9b0604622c0990f94861d3"
      ],
      "author": {
        "name": "Mandeep Singh Baines",
        "email": "msb@chromium.org",
        "time": "Wed Mar 23 16:43:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 23 19:47:14 2011 -0700"
      },
      "message": "taskstats: use appropriate printk priority level\n\nprintk()s without a priority level default to KERN_WARNING.  To reduce\nnoise at KERN_WARNING, this patch set the priority level appriopriately\nfor unleveled printks()s.  This should be useful to folks that look at\ndmesg warnings closely.\n\nSigned-off-by: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9ab020cf07e457a8b425bf5af17e704f90f86d8b",
      "tree": "8119f741492575b12968f325cb225ec16f437fc7",
      "parents": [
        "0329326e85aaa30fb8d427828c718d565c287385"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Wed Jan 12 17:00:48 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:19 2011 -0800"
      },
      "message": "taskstats: use better ifdef for alignment\n\nCommit 4be2c95d (\"taskstats: pad taskstats netlink response for aligment\nissues on ia64\") added a null field to align the taskstats structure but\nthe discussion centered around ia64.  The issue exists on other platforms\nwith inefficient unaligned access and adding them piecemeal would be an\nunmaintainable mess.\n\nThis patch uses Dave Miller\u0027s suggestion of using a combination of\nCONFIG_64BIT \u0026\u0026 !CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS to determine\nwhether alignment is needed.\n\nNote that this will cause breakage on those platforms with applications\nlike iotop which had hard-coded offsets into the packet to access the\ntaskstats structure.\n\nThe message seen on systems without the alignment fixes looks like: kernel\nunaligned access to 0xe000023879dca9bc, ip\u003d0xa000000100133d10\n\nThe addresses may vary but resolve to locations inside __delayacct_add_tsk.\n\niotop makes what I\u0027d call unreasonable assumptions about the contents of a\nnetlink genetlink packet containing generic attributes.  They\u0027re typed and\nhave headers that specify value lengths, so the client can (should)\nidentify and skip the ones the client doesn\u0027t understand.\n\nThe kernel, as of version 2.6.36, presented a packet like so:\n+--------------------------------+\n| genlmsghdr - 4 bytes           |\n+--------------------------------+\n| NLA header - 4 bytes           | /* Aggregate header */\n+-+------------------------------+\n| | NLA header - 4 bytes         | /* PID header */\n| +------------------------------+\n| | pid/tgid   - 4 bytes         |\n| +------------------------------+\n| | NLA header - 4 bytes         | /* stats header */\n| + -----------------------------+ \u003c- oops. aligned on 4 byte boundary\n| | struct taskstats - 328 bytes |\n+-+------------------------------+\n\nThe iotop code expects that the kernel will behave as it did then,\nassuming that the packet format is set in stone.  The format is set in\nstone, but the packet offsets are not.  There\u0027s nothing in the packet\nformat that guarantees that the packet will be sent in exactly the same\nway.  The attribute contents are set (or versioned) and the aggregate\ncontents are set but they can be anywhere in the packet.\n\nThe issue here isn\u0027t that an unaligned structure gets passed to userspace,\nit\u0027s that the NLA infrastructure has something of a weakness: The 4 byte\nattribute header may force the payload to be unaligned.  The taskstats\nstructure is created at an unaligned location and then 64-bit values are\noperated on inside the kernel, so the unaligned access warnings gets\nspewed everywhere.\n\nIt\u0027s possible to use the unaligned access API to operate on the structure\nin the kernel but it seems like a wasted effort to work around userspace\ncode that isn\u0027t following the packet format.  Any new additions would also\nneed the be worked around.  It\u0027s a maintenance nightmare.\n\nThe conclusion of the earlier discussion seemed to be \"ok fine, if we have\nto break it, don\u0027t break it on arches that don\u0027t have the problem.\" Dave\npointed out that the unaligned access problem doesn\u0027t only exist on ia64,\nbut also on other 64-bit arches that don\u0027t have efficient unaligned access\nand it should be fixed there as well.  The committed version of the patch\nand this addition keep with the conclusion of that discussion not to break\nit unnecessarily, which the pid padding and the packet padding fixes did\ndo.  x86_64 and powerpc don\u0027t suffer this problem so they shouldn\u0027t suffer\nthe solution.  Other 64-bit architectures do and will, though.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nReported-by: David S. Miller \u003cdavem@davemloft.net\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Florian Mickler \u003cflorian@mickler.org\u003e\nCc: Guillaume Chazarain \u003cguichaz@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72eb6a791459c87a0340318840bb3bd9252b627b",
      "tree": "3bfb8ad99f9c7e511f37f72d57b56a2cea06d753",
      "parents": [
        "23d69b09b78c4876e134f104a3814c30747c53f1",
        "55ee4ef30241a62b700f79517e6d5ef2ddbefa67"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 07 17:02:58 2011 -0800"
      },
      "message": "Merge branch \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-2.6.38\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu: (30 commits)\n  gameport: use this_cpu_read instead of lookup\n  x86: udelay: Use this_cpu_read to avoid address calculation\n  x86: Use this_cpu_inc_return for nmi counter\n  x86: Replace uses of current_cpu_data with this_cpu ops\n  x86: Use this_cpu_ops to optimize code\n  vmstat: User per cpu atomics to avoid interrupt disable / enable\n  irq_work: Use per cpu atomics instead of regular atomics\n  cpuops: Use cmpxchg for xchg to avoid lock semantics\n  x86: this_cpu_cmpxchg and this_cpu_xchg operations\n  percpu: Generic this_cpu_cmpxchg() and this_cpu_xchg support\n  percpu,x86: relocate this_cpu_add_return() and friends\n  connector: Use this_cpu operations\n  xen: Use this_cpu_inc_return\n  taskstats: Use this_cpu_ops\n  random: Use this_cpu_inc_return\n  fs: Use this_cpu_inc_return in buffer.c\n  highmem: Use this_cpu_xx_return() operations\n  vmstat: Use this_cpu_inc_return for vm statistics\n  x86: Support for this_cpu_add, sub, dec, inc_return\n  percpu: Generic support for this_cpu_add, sub, dec, inc_return\n  ...\n\nFixed up conflicts: in arch/x86/kernel/{apic/nmi.c, apic/x2apic_uv_x.c, process.c}\nas per Tejun.\n"
    },
    {
      "commit": "4be2c95d1f7706ca0e74499f2bd118e1cee19669",
      "tree": "97e8e316b9072ea84cb0afa5a161b1d1b10640cd",
      "parents": [
        "4e06fd14d5fa78826397c891654a37e5a36ee827"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Tue Dec 21 17:24:30 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 22 19:43:34 2010 -0800"
      },
      "message": "taskstats: pad taskstats netlink response for aligment issues on ia64\n\nThe taskstats structure is internally aligned on 8 byte boundaries but the\nlayout of the aggregrate reply, with two NLA headers and the pid (each 4\nbytes), actually force the entire structure to be unaligned.  This causes\nthe kernel to issue unaligned access warnings on some architectures like\nia64.  Unfortunately, some software out there doesn\u0027t properly unroll the\nNLA packet and assumes that the start of the taskstats structure will\nalways be 20 bytes from the start of the netlink payload.  Aligning the\nstart of the taskstats structure breaks this software, which we don\u0027t\nwant.  So, for now the alignment only happens on architectures that\nrequire it and those users will have to update to fixed versions of those\npackages.  Space is reserved in the packet only when needed.  This ifdef\nshould be removed in several years e.g.  2012 once we can be confident\nthat fixed versions are installed on most systems.  We add the padding\nbefore the aggregate since the aggregate is already a defined type.\n\nCommit 85893120 (\"delayacct: align to 8 byte boundary on 64-bit systems\")\npreviously addressed the alignment issues by padding out the pid field.\nThis was supposed to be a compatible change but the circumstances\ndescribed above mean that it wasn\u0027t.  This patch backs out that change,\nsince it was a hack, and introduces a new NULL attribute type to provide\nthe padding.  Padding the response with 4 bytes avoids allocating an\naligned taskstats structure and copying it back.  Since the structure\nweighs in at 328 bytes, it\u0027s too big to do it on the stack.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nReported-by: Brian Rogers \u003cbrian@xyzw.org\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Guillaume Chazarain \u003cguichaz@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd85fc58cd71bf6b89612efafb9a84e655ed7d66",
      "tree": "263a03558fec644dfaa6b389106bb6f7d6bacfbd",
      "parents": [
        "b29c617af3b09d150d3889836c24d39564b39180"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Wed Dec 08 17:42:22 2010 +0100"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Dec 17 15:18:05 2010 +0100"
      },
      "message": "taskstats: Use this_cpu_ops\n\nUse this_cpu_inc_return in one place and avoid ugly __raw_get_cpu in\nanother.\n\nV3-\u003eV4:\n\t- Fix off by one.\n\nV4-V4f:\n\t- Use \u0026listener_array\n\nCc: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nAcked-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "3d9e0cf1fe007b88db55d43dfdb6839e1a029ca5",
      "tree": "508a9c06b48d5a232d669c6f95b4d3e8e4c2950c",
      "parents": [
        "9323312592cca636d7c2580dc85fa4846efa86a2"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Wed Oct 27 15:34:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:17 2010 -0700"
      },
      "message": "taskstats: split fill_pid function\n\nSeparate the finding of a task_struct by pid or tgid from filling the\ntaskstats data. This makes the code more readable.\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9323312592cca636d7c2580dc85fa4846efa86a2",
      "tree": "b73ce3e0a5302f7b30498460b13504517169eb3c",
      "parents": [
        "85893120699f8bae8caa12a8ee18ab5fceac978e"
      ],
      "author": {
        "name": "Michael Holzheu",
        "email": "holzheu@linux.vnet.ibm.com",
        "time": "Wed Oct 27 15:34:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:17 2010 -0700"
      },
      "message": "taskstats: separate taskstats commands\n\nMove each taskstats command into a single function.  This makes the code\nmore readable and makes it easier to add new commands.\n\nSigned-off-by: Michael Holzheu \u003cholzheu@linux.vnet.ibm.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85893120699f8bae8caa12a8ee18ab5fceac978e",
      "tree": "07fb62d6c8818e8feab72d4bd78b3e4a2bbbb829",
      "parents": [
        "db9e5679d6aecb17253f41bd06d98194800f9c01"
      ],
      "author": {
        "name": "Jeff Mahoney",
        "email": "jeffm@suse.com",
        "time": "Wed Oct 27 15:34:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:17 2010 -0700"
      },
      "message": "delayacct: align to 8 byte boundary on 64-bit systems\n\nprepare_reply() sets up an skb for the response.  The payload contains:\n\n +--------------------------------+\n | genlmsghdr - 4 bytes           |\n +--------------------------------+\n | NLA header - 4 bytes           | /* Aggregate header */\n +-+------------------------------+\n | | NLA header - 4 bytes         | /* PID header */\n | +------------------------------+\n | | pid/tgid   - 4 bytes         |\n | +------------------------------+\n | | NLA header - 4 bytes         | /* stats header */\n | + -----------------------------+ \u003c- oops. aligned on 4 byte boundary\n | | struct taskstats - 328 bytes |\n +-+------------------------------+\n\nThe start of the taskstats struct must be 8 byte aligned on IA64 (and\nother systems with 8 byte alignment rules for 64-bit types) or runtime\nalignment warnings will be issued.\n\nThis patch pads the pid/tgid field out to sizeof(long), which forces the\nalignment of taskstats.  The getdelays userspace code is ok with this\nsince it assumes 32-bit pid/tgid and then honors that header\u0027s length\nfield.\n\nAn array is used to avoid exposing kernel memory contents to userspace in\nthe response.\n\nSigned-off-by: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\n"
    },
    {
      "commit": "b54452b07a7b1b8cc1385edba3ef2ef6d4679d5a",
      "tree": "c8a7271b14c4cd9e0dc22a5d0a3bed9e79c88e36",
      "parents": [
        "3ffe533c87281b68d469b279ff3a5056f9c75862"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Feb 18 08:14:31 2010 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Feb 18 14:30:18 2010 -0800"
      },
      "message": "const: struct nla_policy\n\nMake remaining netlink policies as const.\nFixup coding style where needed.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "134e63756d5f3d0f7604dfcca847b09d1b14fd66",
      "tree": "d2b5eab085d90cde0a4c0136a118800ca72b76ad",
      "parents": [
        "11a28d373ed2539a110d56419457e2e7db221ac7"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes@sipsolutions.net",
        "time": "Fri Jul 10 09:51:34 2009 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Jul 12 14:03:27 2009 -0700"
      },
      "message": "genetlink: make netns aware\n\nThis makes generic netlink network namespace aware. No\ngeneric netlink families except for the controller family\nare made namespace aware, they need to be checked one by\none and then set the family-\u003enetnsok member to true.\n\nA new function genlmsg_multicast_netns() is introduced to\nallow sending a multicast message in a given namespace,\nfor example when it applies to an object that lives in\nthat namespace, a new function genlmsg_multicast_allns()\nto send a message to all network namespaces (for objects\nthat do not have an associated netns).\n\nThe function genlmsg_multicast() is changed to multicast\nthe message in just init_net, which is currently correct\nfor all generic netlink families since they only work in\ninit_net right now. Some will later want to work in all\nnet namespaces because they do not care about the netns\nat all -- those will have to be converted to use one of\nthe new functions genlmsg_multicast_allns() or\ngenlmsg_multicast_netns() whenever they are made netns\naware in some way.\n\nAfter this patch families can easily decide whether or\nnot they should be available in all net namespaces. Many\ngenl families us it for objects not related to networking\nand should therefore be available in all namespaces, but\nthat will have to be done on a per family basis.\n\nNote that this doesn\u0027t touch on the checkpoint/restart\nproblem where network namespaces could be used, genl\nfamilies and multicast groups are numbered globally and\nI see no easy way of changing that, especially since it\nmust be possible to multicast to all network namespaces\nfor those families that do not care about netns.\n\nSigned-off-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "41c7bb9588904eb060a95bcad47bd3804a1ece25",
      "tree": "ccae4bd3cb26be171fad9e26147ef8839405f298",
      "parents": [
        "e0b582ec56f1a1d8b30ebf340a7b91fb09f26c8c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:28 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:28 2009 +1030"
      },
      "message": "cpumask: convert rest of files in kernel/\n\nImpact: Reduce stack usage, use new cpumask API.\n\nMainly changing cpumask_t to \u0027struct cpumask\u0027 and similar simple API\nconversion.  Two conversions worth mentioning:\n\n1) we use cpumask_any_but to avoid a temporary in kernel/softlockup.c,\n2) Use cpumask_var_t in taskstats_user_cmd().\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\n"
    },
    {
      "commit": "29c0177e6a4ac094302bed54a1d4bbb6b740a9ef",
      "tree": "d8ee57c5b40baa3f53d607b719344dd20f8c85a0",
      "parents": [
        "98a79d6a50181ca1ecf7400eda01d5dc1bc0dbf0"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:20:25 2008 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Dec 13 21:20:25 2008 +1030"
      },
      "message": "cpumask: change cpumask_scnprintf, cpumask_parse_user, cpulist_parse, and cpulist_scnprintf to take pointers.\n\nImpact: change calling convention of existing cpumask APIs\n\nMost cpumask functions started with cpus_: these have been replaced by\ncpumask_ ones which take struct cpumask pointers as expected.\n\nThese four functions don\u0027t have good replacement names; fortunately\nthey\u0027re rarely used, so we just change them over.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: paulus@samba.org\nCc: mingo@redhat.com\nCc: tony.luck@intel.com\nCc: ralf@linux-mips.org\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: cl@linux-foundation.org\nCc: srostedt@redhat.com\n"
    },
    {
      "commit": "b81f3ea92ba1fa676775677679889dc2a7f03c8b",
      "tree": "ec2d6dc99c1b6f7372a5d9bd3d3e75b79b2a899b",
      "parents": [
        "9b0975a20af1ff2f367e3b6b7c150eb114c6b500"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Fri Jul 25 01:48:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "taskstats: remove initialization of static per-cpu variable\n\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "363ab6f1424cdea63e5d182312d60e19077b892a",
      "tree": "e200197412691015ca8de083155985e7e460ecfc",
      "parents": [
        "068b12772a64c2440ef2f64ac5d780688c06576f"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Mon May 12 21:21:13 2008 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 23 18:35:12 2008 +0200"
      },
      "message": "core: use performance variant for_each_cpu_mask_nr\n\nChange references from for_each_cpu_mask to for_each_cpu_mask_nr\nwhere appropriate\n\nReviewed-by: Paul Jackson \u003cpj@sgi.com\u003e\nReviewed-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "cb41d6d068716b2b3666925da34d3d7e658bf4f3",
      "tree": "75926ace2cf9793a6b3809da2d6fb5813b1c9068",
      "parents": [
        "b7127aa4547d8cc8a5b569631e2b6ef613af1bb7"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Apr 30 00:54:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:48 2008 -0700"
      },
      "message": "Use find_task_by_vpid in taskstats\n\nThe pid to lookup a task by is passed inside taskstats code via genetlink\nmessage.\n\nSince netlink packets are now processed in the context of the sending task,\nthis is correct to lookup the task with find_task_by_vpid() here.\n\nBesides, I fix the call to fill_pid() from taskstats_exit(), since the\ntsk-\u003epid is not required in fill_pid() in this case, and the pid field on\ntask_struct is going to be deprecated as well.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nCc: Jonathan Lim \u003cjlim@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f96159840bc5f605aca5113ab2d24308d3dc2eff",
      "tree": "91e877d755451415ea79fe9da4419b465a0575d0",
      "parents": [
        "4ae44c57748ad37dcd1d998525f6929d2fe39d02"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Nov 14 17:00:37 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Nov 14 18:45:44 2007 -0800"
      },
      "message": "kernel/taskstats.c: fix bogus nlmsg_free()\n\nWe\u0027d better not nlmsg_free on a pointer containing an undefined value\n(and without having anything allocated).\n\nSpotted by the Coverity checker.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3a4fa0a25da81600ea0bcd75692ae8ca6050d165",
      "tree": "a4de1662e645c029cf3cf58f0646cbb1959861dc",
      "parents": [
        "18735dd8d2d37031b97f9e9e106acbaed01eb896"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Oct 19 23:10:43 2007 +0200"
      },
      "message": "Fix misspellings of \"system\", \"controller\", \"interrupt\" and \"necessary\".\n\nFix the various misspellings of \"system\", controller\", \"interrupt\" and\n\"[un]necessary\".\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "846c7bb055747989891f5cd2bb6e8d56243ba1e7",
      "tree": "e044041366efa8298157c4ae86615d68d30dd6d2",
      "parents": [
        "c2e2c7fa1cb2cf2b114a6c9bc132b6601db5a7c8"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Oct 18 23:39:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Add cgroupstats\n\nThis patch is inspired by the discussion at\nhttp://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics\nas suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263.  The\npatch is on top of 2.6.21-mm1 with Paul\u0027s cgroups v9 patches (forward\nported)\n\nThis patch implements per cgroup statistics infrastructure and re-uses\ncode from the taskstats interface.  A new set of cgroup operations are\nregistered with commands and attributes.  It should be very easy to\n*extend* per cgroup statistics, by adding members to the cgroupstats\nstructure.\n\nThe current model for cgroupstats is a pull, a push model (to post\nstatistics on interesting events), should be very easy to add.  Currently\nuser space requests for statistics by passing the cgroup file\ndescriptor.  Statistics about the state of all the tasks in the cgroup\nis returned to user space.\n\nTODO\u0027s/NOTE:\n\nThis patch provides an infrastructure for implementing cgroup statistics.\nBased on the needs of each controller, we can incrementally add more statistics,\nevent based support for notification of statistics, accumulation of taskstats\ninto cgroup statistics in the future.\n\nSample output\n\n# ./cgroupstats -C /cgroup/a\nsleeping 2, blocked 0, running 1, stopped 0, uninterruptible 0\n\n# ./cgroupstats -C /cgroup/\nsleeping 154, blocked 0, running 0, stopped 0, uninterruptible 0\n\nIf the approach looks good, I\u0027ll enhance and post the user space utility for\nthe same\n\nFeedback, comments, test results are always welcome!\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9022e9cb9e919e31d5bc15fcef5c7186740645e",
      "tree": "48aea98aec8d9822155b2054bc60f9142f478769",
      "parents": [
        "ea0b7d5da0024df1c6f2c2139dbeb4fd260baac6"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Oct 16 23:26:23 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Oct 17 08:42:48 2007 -0700"
      },
      "message": "Clean up duplicate includes in kernel/\n\nThis patch cleans up duplicate includes in\n\tkernel/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Satyam Sharma \u003cssatyam@cse.iitk.ac.in\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b663a79c191508f27cd885224b592a878c0ba0f6",
      "tree": "270a0472bf1fb0c7323ecb60ec68e40d02dcb1b4",
      "parents": [
        "a6c15c2b0fbfd5c0a84f5f0e1e3f20f85d2b8692"
      ],
      "author": {
        "name": "Maxim Uvarov",
        "email": "muvarov@ru.mvista.com",
        "time": "Sun Jul 15 23:40:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:46 2007 -0700"
      },
      "message": "taskstats: add context-switch counters\n\nMake available to the user the following task and process performance\nstatistics:\n\n\t* Involuntary Context Switches (task_struct-\u003enivcsw)\n\t* Voluntary Context Switches (task_struct-\u003envcsw)\n\nStatistics information is available from:\n\t1. taskstats interface (Documentation/accounting/)\n\t2. /proc/PID/status (task only).\n\nThis data is useful for detecting hyperactivity patterns between processes.\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: Maxim Uvarov \u003cmuvarov@ru.mvista.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nCc: Jonathan Lim \u003cjlim@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a31bd5f2bbb6473ef9d24f0063ca91cfa678b64",
      "tree": "a945e829bf6bf7a93bf844b2ee9f2a3a2fa17c5d",
      "parents": [
        "5af60839909b8e3b28ca7cd7912fa0b23475617f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:55 2007 -0700"
      },
      "message": "KMEM_CACHE(): simplify slab cache creation\n\nThis patch provides a new macro\n\nKMEM_CACHE(\u003cstruct\u003e, \u003cflags\u003e)\n\nto simplify slab creation. KMEM_CACHE creates a slab with the name of the\nstruct, with the size of the struct and with the alignment of the struct.\nAdditional slab flags may be specified if necessary.\n\nExample\n\nstruct test_slab {\n\tint a,b,c;\n\tstruct list_head;\n} __cacheline_aligned_in_smp;\n\ntest_slab_cache \u003d KMEM_CACHE(test_slab, SLAB_PANIC)\n\nwill create a new slab named \"test_slab\" of the size sizeof(struct\ntest_slab) and aligned to the alignment of test slab.  If it fails then we\npanic.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b529ccf2799c14346d1518e9bdf1f88f03643e99",
      "tree": "f899a5a5d66d2ca21724c1871ee3afeda6c4a670",
      "parents": [
        "965ffea43d4ebe8cd7b9fee78d651268dd7d23c5"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Wed Apr 25 19:08:35 2007 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@sunset.davemloft.net",
        "time": "Wed Apr 25 22:26:34 2007 -0700"
      },
      "message": "[NETLINK]: Introduce nlmsg_hdr() helper\n\nFor the common \"(struct nlmsghdr *)skb-\u003edata\" sequence, so that we reduce the\nnumber of direct accesses to skb-\u003edata and for consistency with all the other\ncast skb member helpers.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "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"
    }
  ]
}
