)]}'
{
  "log": [
    {
      "commit": "9d6de12f70d2fb1487c4f482a21fed25fe74e0fd",
      "tree": "a5bc7cb77c710418c44e2b1c009e80d79e12e3ab",
      "parents": [
        "a2ade7b6ca37c808128810687cd56e8a44443e65"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jan 12 17:00:32 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 08:03:16 2011 -0800"
      },
      "message": "proc: use seq_puts()/seq_putc() where possible\n\nFor string without format specifiers, use seq_puts().\nFor seq_printf(\"\\n\"), use seq_putc(\u0027\\n\u0027).\n\n   text\t   data\t    bss\t    dec\t    hex\tfilename\n  61866\t    488\t    112\t  62466\t   f402\tfs/proc/proc.o\n  61729\t    488\t    112\t  62329\t   f379\tfs/proc/proc.o\n  ----------------------------------------------------\n  \t\t\t   -139\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@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": "478735e38887077ac77a9756121b6ce0cb956e2f",
      "tree": "7b42110f71b1711f56cbbc0a01f00894b221337d",
      "parents": [
        "f2c66cd8eeddedb440f33bc0f5cec1ed7ae376cb"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Oct 27 15:34:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:13 2010 -0700"
      },
      "message": "/proc/stat: fix scalability of irq sum of all cpu\n\nIn /proc/stat, the number of per-IRQ event is shown by making a sum each\nirq\u0027s events on all cpus.  But we can make use of kstat_irqs().\n\nkstat_irqs() do the same calculation, If !CONFIG_GENERIC_HARDIRQ,\nit\u0027s not a big cost. (Both of the number of cpus and irqs are small.)\n\nIf a system is very big and CONFIG_GENERIC_HARDIRQ, it does\n\n\tfor_each_irq()\n\t\tfor_each_cpu()\n\t\t\t- look up a radix tree\n\t\t\t- read desc-\u003eirq_stat[cpu]\nThis seems not efficient. This patch adds kstat_irqs() for\nCONFIG_GENRIC_HARDIRQ and change the calculation as\n\n\tfor_each_irq()\n\t\tlook up radix tree\n\t\tfor_each_cpu()\n\t\t\t- read desc-\u003eirq_stat[cpu]\n\nThis reduces cost.\n\nA test on (4096cpusp, 256 nodes, 4592 irqs) host (by Jack Steiner)\n\n%time cat /proc/stat \u003e /dev/null\n\nBefore Patch:\t 2.459 sec\nAfter Patch :\t  .561 sec\n\n[akpm@linux-foundation.org: unexport kstat_irqs, coding-style tweaks]\n[akpm@linux-foundation.org: fix unused variable \u0027per_irq_sum\u0027]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Jack Steiner \u003csteiner@sgi.com\u003e\nAcked-by: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2c66cd8eeddedb440f33bc0f5cec1ed7ae376cb",
      "tree": "4b8cfcd2a76652839121707fc2a49b70489ec055",
      "parents": [
        "19cd56c48da58bebc3a638e036bcab69469acd27"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Oct 27 15:34:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 27 18:03:13 2010 -0700"
      },
      "message": "/proc/stat: scalability of irq num per cpu\n\n/proc/stat shows the total number of all interrupts to each cpu.  But when\nthe number of IRQs are very large, it take very long time and \u0027cat\n/proc/stat\u0027 takes more than 10 secs.  This is because sum of all irq\nevents are counted when /proc/stat is read.  This patch adds \"sum of all\nirq\" counter percpu and reduce read costs.\n\nThe cost of reading /proc/stat is important because it\u0027s used by major\napplications as \u0027top\u0027, \u0027ps\u0027, \u0027w\u0027, etc....\n\nA test on a mechin (4096cpu, 256 nodes, 4592 irqs) shows\n\n %time cat /proc/stat \u003e /dev/null\n Before Patch:  12.627 sec\n After  Patch:  2.459 sec\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Jack Steiner \u003csteiner@sgi.com\u003e\nAcked-by: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\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": "ce0e7b28fb75cb003cfc8d0238613aaf1c55e797",
      "tree": "e70bec2040045b68876d85036756bc046b5d2742",
      "parents": [
        "0b9e31e9264f1bad89856afb96da1688292f13b4"
      ],
      "author": {
        "name": "Ryota Ozaki",
        "email": "ozaki.ryota@gmail.com",
        "time": "Sat Oct 24 01:20:10 2009 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Oct 25 17:31:30 2009 +0100"
      },
      "message": "sched, cpuacct: Fix niced guest time accounting\n\nCPU time of a guest is always accounted in \u0027user\u0027 time\nwithout concern for the nice value of its counterpart\nprocess although the guest is scheduled under the nice\nvalue.\n\nThis patch fixes the defect and accounts cpu time of\na niced guest in \u0027nice\u0027 time as same as a niced process.\n\nAnd also the patch adds \u0027guest_nice\u0027 to cpuacct. The\nvalue provides niced guest cpu time which is like \u0027nice\u0027\nto \u0027user\u0027.\n\nThe original discussions can be found here:\n\n  http://www.mail-archive.com/kvm@vger.kernel.org/msg23982.html\n  http://www.mail-archive.com/kvm@vger.kernel.org/msg23860.html\n\nSigned-off-by: Ryota Ozaki \u003cozaki.ryota@gmail.com\u003e\nAcked-by: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1256314810-7897-1-git-send-email-ozaki.ryota@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d3d64df21d3d0de675a0d3ffa7c10514f3644b30",
      "tree": "7ea3c79d8adb2c0282327f9ce63208978857eb07",
      "parents": [
        "9d9b8fb0e5ebf4b0398e579f6061d4451fea3242"
      ],
      "author": {
        "name": "Keika Kobayashi",
        "email": "kobayashi.kk@ncos.nec.co.jp",
        "time": "Wed Jun 17 16:25:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 18 13:03:41 2009 -0700"
      },
      "message": "proc: export statistics for softirq to /proc\n\nExport statistics for softirq in /proc/softirqs and /proc/stat.\n\n1. /proc/softirqs\nImplement /proc/softirqs which shows the number of softirq\nfor each CPU like /proc/interrupts.\n\n2. /proc/stat\nAdd the \"softirq\" line to /proc/stat.\nThis line shows the number of softirq for all cpu.\nThe first column is the total of all softirqs and\neach subsequent column is the total for particular softirq.\n\n[kosaki.motohiro@jp.fujitsu.com: remove redundant for_each_possible_cpu() loop]\nSigned-off-by: Keika Kobayashi \u003ckobayashi.kk@ncos.nec.co.jp\u003e\nReviewed-by: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1c805309d19c69d4ebeac38724076fa86feacdf",
      "tree": "73886783aac7c489a29f3e5eec56cbc2371a12dd",
      "parents": [
        "b1ad171efa089ae26aba750d747d8149a4f860d5"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Apr 23 13:58:08 2009 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Apr 23 13:58:17 2009 +0200"
      },
      "message": "[S390] /proc/stat idle field for idle cpus\n\nThe cpu idle field in the output of /proc/stat is too small for cpus\nthat have been idle for more than a tick. Add the architecture hook\narch_idle_time that allows to add the not accounted idle time of a\nsleeping cpu without waking the cpu.\n\nThe s390 implementation of arch_idle_time uses the already existing\ns390_idle_data per_cpu variable to find the sleep time of a neighboring\nidle cpu.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "26ddd8d5cac8a563953d5febe8c6e40909f7bce1",
      "tree": "1e13087c68aeb1fc7da6126a4452869c368e2a93",
      "parents": [
        "f9af0e70911e9d6cc9a68f784dca86415486084d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Dec 26 14:24:10 2008 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 26 09:48:18 2008 +0100"
      },
      "message": "proc: remove ifdef CONFIG_SPARSE_IRQ from stat.c\n\nImpact: cleanup\n\nirq_desc can be NULL when CONFIG_SPARSE_IRQ\u003dy only.\ntherefore, NULL checking can move into kstat_irqs_cpu() of SPARSE_IRQ version.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: \"Yinghai Lu\" \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "13bd41bc227a48d6cf8992a3286bf6eba3c71a0c",
      "tree": "c817813280a7fec083edc0b74989f057f17c28be",
      "parents": [
        "30cb367ea2be76bf71dbd275f38d0fd3b6f4142b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Dec 16 00:23:34 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 11:24:14 2008 +0100"
      },
      "message": "proc: enclose desc variable of show_stat() in CONFIG_SPARSE_IRQ\n\nImpact: restructure code to fix compiler warning\n\ncommit 240d367b4e6c6e3c5075e034db14dba60a6f5fa7 moved desc usage point\ninto #ifdef CONFIG_SPARSE_IRQ.\n\nEliminate the desc variable, otherwise following warning happens:\n\n fs/proc/stat.c: In function \u0027show_stat\u0027:\n fs/proc/stat.c:31: warning: unused variable \u0027desc\u0027\n\n[ akpm: cleaned up the patch to remove #ifdef ]\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "240d367b4e6c6e3c5075e034db14dba60a6f5fa7",
      "tree": "9750876ae9afcfa265fc15185134d5aea13eb530",
      "parents": [
        "50dd94e017ec39f85c26b6c10ed9fb2d7a7d8042"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Dec 08 14:06:17 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 09 04:16:54 2008 +0100"
      },
      "message": "sparseirq: fix Alpha build failure\n\nImpact: build fix on Alpha\n\n-tip testing found this build failure on the Alpha defconfig:\n\n/home/mingo/tip/fs/proc/stat.c: In function \u0027show_stat\u0027:\n/home/mingo/tip/fs/proc/stat.c:48: error: implicit declaration of function \u0027for_each_irq_desc\u0027\n/home/mingo/tip/fs/proc/stat.c:48: error: expected \u0027;\u0027 before \u0027{\u0027 token\n\ncan not use irq_desc() in stat.c on older architectures.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.orgg\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0b8f1efad30bd58f89961b82dfe68b9edf8fd2ac",
      "tree": "239251bad791fd60af8c0f2ba365b7188395c83f",
      "parents": [
        "218d11a8b071b23b76c484fd5f72a4fe3306801e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri Dec 05 18:58:31 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 14:31:51 2008 +0100"
      },
      "message": "sparse irq_desc[] array: core kernel and x86 changes\n\nImpact: new feature\n\nProblem on distro kernels: irq_desc[NR_IRQS] takes megabytes of RAM with\nNR_CPUS set to large values. The goal is to be able to scale up to much\nlarger NR_IRQS value without impacting the (important) common case.\n\nTo solve this, we generalize irq_desc[NR_IRQS] to an (optional) array of\nirq_desc pointers.\n\nWhen CONFIG_SPARSE_IRQ\u003dy is used, we use kzalloc_node to get irq_desc,\nthis also makes the IRQ descriptors NUMA-local (to the site that calls\nrequest_irq()).\n\nThis gets rid of the irq_cfg[] static array on x86 as well: irq_cfg now\nuses desc-\u003echip_data for x86 to store irq_cfg.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "df8106dbb59a8c167ea16631059ecb5f7d77da13",
      "tree": "05b4eab6428a93b66dc48dda4e8124af2f93c1fe",
      "parents": [
        "f500975a3f3ecf3611d79f1d933906753460b9f2"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Oct 05 00:01:56 2008 +0400"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Oct 23 15:14:05 2008 +0400"
      },
      "message": "proc: move /proc/stat to fs/proc/stat.c\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    }
  ]
}
