)]}'
{
  "log": [
    {
      "commit": "67acd8b4b7a3f1b183ae358e1dfdb8a80e170736",
      "tree": "4418034f6e83f954337a17bc6a872fa5ae3c4b5e",
      "parents": [
        "b13d3720ecd29d5044334fdbbae3432f26802bae",
        "ad160d23198193135cb2bcc75222e0816b5838c0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 15:35:47 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 15:35:47 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/arjan/linux-2.6-async:\n  async: don\u0027t do the initcall stuff post boot\n  bootchart: improve output based on Dave Jones\u0027 feedback\n  async: make the final inode deletion an asynchronous event\n  fastboot: Make libata initialization even more async\n  fastboot: make the libata port scan asynchronous\n  fastboot: make scsi probes asynchronous\n  async: Asynchronous function calls to speed up kernel boot\n"
    },
    {
      "commit": "57c44c5f6fb0a8002feb258c1af58e1a744b1fcb",
      "tree": "978bd46ca765a88e9c101cb705bbb0bf46015643",
      "parents": [
        "76052749143d03006271cc0ce8205ad756917062",
        "5a9e67b1a19e08a82387709f325d26e07b891d27"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 11:31:52 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 07 11:31:52 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (24 commits)\n  trivial: chack -\u003e check typo fix in main Makefile\n  trivial: Add a space (and a comma) to a printk in 8250 driver\n  trivial: Fix misspelling of \"firmware\" in docs for ncr53c8xx/sym53c8xx\n  trivial: Fix misspelling of \"firmware\" in powerpc Makefile\n  trivial: Fix misspelling of \"firmware\" in usb.c\n  trivial: Fix misspelling of \"firmware\" in qla1280.c\n  trivial: Fix misspelling of \"firmware\" in a100u2w.c\n  trivial: Fix misspelling of \"firmware\" in megaraid.c\n  trivial: Fix misspelling of \"firmware\" in ql4_mbx.c\n  trivial: Fix misspelling of \"firmware\" in acpi_memhotplug.c\n  trivial: Fix misspelling of \"firmware\" in ipw2100.c\n  trivial: Fix misspelling of \"firmware\" in atmel.c\n  trivial: Fix misspelled firmware in Kconfig\n  trivial: fix an -\u003e a typos in documentation and comments\n  trivial: fix then -\u003e than typos in comments and documentation\n  trivial: update Jesper Juhl CREDITS entry with new email\n  trivial: fix singal -\u003e signal typo\n  trivial: Fix incorrect use of \"loose\" in event.c\n  trivial: printk: fix indentation of new_text_line declaration\n  trivial: rtc-stk17ta8: fix sparse warning\n  ...\n"
    },
    {
      "commit": "22a9d645677feefd402befd02edd59b122289ef1",
      "tree": "9f1215cc8f7f0e1c36b03882b2926cc26ccfa5ff",
      "parents": [
        "ede6f5aea054d3fb67c78857f7abdee602302043"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jan 07 08:45:46 2009 -0800"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jan 07 08:45:46 2009 -0800"
      },
      "message": "async: Asynchronous function calls to speed up kernel boot\n\nRight now, most of the kernel boot is strictly synchronous, such that\nvarious hardware delays are done sequentially.\n\nIn order to make the kernel boot faster, this patch introduces\ninfrastructure to allow doing some of the initialization steps\nasynchronously, which will hide significant portions of the hardware delays\nin practice.\n\nIn order to not change device order and other similar observables, this\npatch does NOT do full parallel initialization.\n\nRather, it operates more in the way an out of order CPU does; the work may\nbe done out of order and asynchronous, but the observable effects\n(instruction retiring for the CPU) are still done in the original sequence.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "d2e3192b6e372a441c18bc8cb32f89ef38f105b7",
      "tree": "0ce1dd9500635be23c86be2334ad4a902f427177",
      "parents": [
        "ca8a5bd28226d62c045e0e55b42b9d10b146c205"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Tue Jan 06 14:41:10 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:14 2009 -0800"
      },
      "message": "init/main.c: mark late_time_init as __initdata\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1883f86dea84fe47a71a39fc1afccc005915ed8",
      "tree": "357c50d2eb44e9e62c39c0c1025bae7b2b6eba67",
      "parents": [
        "eaccbfa564e48c87626594511f42dc8c0ad2daae"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Jan 06 14:40:45 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:11 2009 -0800"
      },
      "message": "Remove remaining unwinder code\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Gabor Gombas \u003cgombasg@sztaki.hu\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e,\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f99ebf0a86de13f77bc4ee349de96db9f2f67f2e",
      "tree": "1f286cd9cd4d69638b4b3cc5d2ed48a6e566ce98",
      "parents": [
        "91f47662dfaa5b459aebe13284c6c38db27350dc"
      ],
      "author": {
        "name": "Rakib Mullick",
        "email": "rakib.mullick@gmail.com",
        "time": "Tue Jan 06 14:40:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "init: properly placing noinline keyword\n\ncheckpatch warns about \u0027static void noinline\u0027.  It wants `static noinline\nvoid\u0027.\n\nBoth are permissible, but the kernel consistently uses `static inline\u0027 and\n`static noinline\u0027, and consistency is good.  Hence let\u0027s keep the\ncheckpatch warning and fix up this code site.\n\n[akpm@linux-foundation.org: rewrote changelog]\nSigned-off-by: Md.Rakib H. Mullick \u003crakib.mullick@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": "24d431d06aeeda2b12cc925c6e1693c45ae5088b",
      "tree": "1144662af5da9b7355c88fa98350960366b3f88f",
      "parents": [
        "8e6bdb7f8b478323525444ecee7a1477ff5b6639"
      ],
      "author": {
        "name": "Ron Lee",
        "email": "ron@debian.org",
        "time": "Thu Nov 27 02:31:57 2008 +1030"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Jan 06 11:28:05 2009 +0100"
      },
      "message": "trivial: add missing printk loglevel in start_kernel\n\nAdd missing printk loglevel in start_kernel\n\nSigned-off-by: Ron Lee \u003cron@debian.org\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7d3b56ba37a95f1f370f50258ed3954c304c524b",
      "tree": "86102527b92f02450aa245f084ffb491c18d2e0a",
      "parents": [
        "269b012321f2f1f8e4648c43a93bf432b42c6668",
        "ab14398abd195af91a744c320a52a1bce814dd1e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:04:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 03 12:04:39 2009 -0800"
      },
      "message": "Merge branch \u0027cpus4096-for-linus-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027cpus4096-for-linus-3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (77 commits)\n  x86: setup_per_cpu_areas() cleanup\n  cpumask: fix compile error when CONFIG_NR_CPUS is not defined\n  cpumask: use alloc_cpumask_var_node where appropriate\n  cpumask: convert shared_cpu_map in acpi_processor* structs to cpumask_var_t\n  x86: use cpumask_var_t in acpi/boot.c\n  x86: cleanup some remaining usages of NR_CPUS where s/b nr_cpu_ids\n  sched: put back some stack hog changes that were undone in kernel/sched.c\n  x86: enable cpus display of kernel_max and offlined cpus\n  ia64: cpumask fix for is_affinity_mask_valid()\n  cpumask: convert RCU implementations, fix\n  xtensa: define __fls\n  mn10300: define __fls\n  m32r: define __fls\n  h8300: define __fls\n  frv: define __fls\n  cris: define __fls\n  cpumask: CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS\n  cpumask: zero extra bits in alloc_cpumask_var_node\n  cpumask: replace for_each_cpu_mask_nr with for_each_cpu in kernel/time/\n  cpumask: convert mm/\n  ...\n"
    },
    {
      "commit": "609e5b71d0eca163df017ecfcf917b149875e744",
      "tree": "0ebfe5f2dd06722f63136b30e29b2d39d768c84f",
      "parents": [
        "f9d14250071eda9972e4c9cea745a11185952114"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 02 16:16:16 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 02 10:09:27 2009 -0800"
      },
      "message": "kbuild: Remove gcc 4.1.0 quirk from init/main.c\n\nImpact: cleanup\n\nWe now have a cleaner check for gcc 4.1.0/4.1.1 trouble in\ninclude/linux/compiler-gcc4.h, so remove the 4.1.0 quirk from\ninit/main.c.\n\nReported-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0c0ba736547e81c4f986ce192307c549d214167",
      "tree": "6e602e15ca491ddb14d68d9116a1503efb618ac6",
      "parents": [
        "ab53d472e785e51fdfc08fc1d66252c1153e6c0f"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:19 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:19 2009 +1030"
      },
      "message": "cpumask: Use find_last_bit()\n\nImpact: cleanup\n\nThere\u0027s one obvious place to use it: to find the highest possible cpu.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "915441b601e6662e79f6c958e7be307967a96977",
      "tree": "633f7cc711d210671f526f297e48bb79f8dce4de",
      "parents": [
        "4f4b6c1a94a8735bbdc030a2911cf395495645b6"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:15 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Thu Jan 01 10:12:15 2009 +1030"
      },
      "message": "cpumask: Use accessors code in core\n\nImpact: use new API\n\ncpu_*_map are going away in favour of cpu_*_mask, but const pointers.\nSo we have accessors where we really do want to frob them.  Archs\nwill also need the (trivial) conversion before we can finally remove\ncpu_*_map.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "db200df0b3530f673d8e9f5bd535e9e10305842a",
      "tree": "9a94039b8813452c51a50fcb45e95c32a9f0e537",
      "parents": [
        "ec270e59a74eee972006a87c8e12514a20588369",
        "43a256322ac1fc105c181b3cade3b9bfc0b63ca1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 31 09:00:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 31 09:00:59 2008 -0800"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus-4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus-4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sparseirq: move __weak symbols into separate compilation unit\n  sparseirq: work around __weak alias bug\n  sparseirq: fix hang with !SPARSE_IRQ\n  sparseirq: set lock_class for legacy irq when sparse_irq is selected\n  sparseirq: work around compiler optimizing away __weak functions\n  sparseirq: fix desc-\u003elock init\n  sparseirq: do not printk when migrating IRQ descriptors\n  sparseirq: remove duplicated arch_early_irq_init()\n  irq: simplify for_each_irq_desc() usage\n  proc: remove ifdef CONFIG_SPARSE_IRQ from stat.c\n  irq: for_each_irq_desc() move to irqnr.h\n  hrtimer: remove #include \u003clinux/irq.h\u003e\n"
    },
    {
      "commit": "179475a3b46f86e2d06f83e2312218ac3f0cf3a7",
      "tree": "d4755f722ae606e21ac87baa262041e2580b2568",
      "parents": [
        "bb758e9637e5ddcff84a97177415499ae1fed498",
        "860cf8894b326e4b89720f520540604834337b72"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 30 16:20:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 30 16:20:19 2008 -0800"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, sparseirq: clean up Kconfig entry\n  x86: turn CONFIG_SPARSE_IRQ off by default\n  sparseirq: fix numa_migrate_irq_desc dependency and comments\n  sparseirq: add kernel-doc notation for new member in irq_desc, -v2\n  locking, irq: enclose irq_desc_lock_class in CONFIG_LOCKDEP\n  sparseirq, xen: make sure irq_desc is allocated for interrupts\n  sparseirq: fix !SMP building, #2\n  x86, sparseirq: move irq_desc according to smp_affinity, v7\n  proc: enclose desc variable of show_stat() in CONFIG_SPARSE_IRQ\n  sparse irqs: add irqnr.h to the user headers list\n  sparse irqs: handle !GENIRQ platforms\n  sparseirq: fix !SMP \u0026\u0026 !PCI_MSI \u0026\u0026 !HT_IRQ build\n  sparseirq: fix Alpha build failure\n  sparseirq: fix typo in !CONFIG_IO_APIC case\n  x86, MSI: pass irq_cfg and irq_desc\n  x86: MSI start irq numbering from nr_irqs_gsi\n  x86: use NR_IRQS_LEGACY\n  sparse irq_desc[] array: core kernel and x86 changes\n  genirq: record IRQ_LEVEL in irq_desc[]\n  irq.h: remove padding from irq_desc on 64bits\n"
    },
    {
      "commit": "43a256322ac1fc105c181b3cade3b9bfc0b63ca1",
      "tree": "6f4b6fc286451598d20222af8b511fe0a3fcdcfc",
      "parents": [
        "b2e2fe99628c4f944c3075258e536197b5a4f3f8"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yhlu.kernel@gmail.com",
        "time": "Sun Dec 28 16:01:13 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 29 12:15:49 2008 +0100"
      },
      "message": "sparseirq: move __weak symbols into separate compilation unit\n\nGCC has a bug with __weak alias functions: if the functions are in\nthe same compilation unit as their call site, GCC can decide to\ninline them - and thus rob the linker of the opportunity to override\nthe weak alias with the real thing.\n\nSo move all the IRQ handling related __weak symbols to kernel/irq/chip.c.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0f4b285d7ed174804658539129a834270f4829a",
      "tree": "be7f8dca58075aba2c6a137fcfd4d44c5c333efc",
      "parents": [
        "be9c5ae4eeec2e85527e95647348b8ea4eb25128",
        "5250d329e38cdf7580faeb9c53c17d3588d7d19c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:21:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:21:10 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (241 commits)\n  sched, trace: update trace_sched_wakeup()\n  tracing/ftrace: don\u0027t trace on early stage of a secondary cpu boot, v3\n  Revert \"x86: disable X86_PTRACE_BTS\"\n  ring-buffer: prevent false positive warning\n  ring-buffer: fix dangling commit race\n  ftrace: enable format arguments checking\n  x86, bts: memory accounting\n  x86, bts: add fork and exit handling\n  ftrace: introduce tracing_reset_online_cpus() helper\n  tracing: fix warnings in kernel/trace/trace_sched_switch.c\n  tracing: fix warning in kernel/trace/trace.c\n  tracing/ring-buffer: remove unused ring_buffer size\n  trace: fix task state printout\n  ftrace: add not to regex on filtering functions\n  trace: better use of stack_trace_enabled for boot up code\n  trace: add a way to enable or disable the stack tracer\n  x86: entry_64 - introduce FTRACE_ frame macro v2\n  tracing/ftrace: add the printk-msg-only option\n  tracing/ftrace: use preempt_enable_no_resched_notrace in ring_buffer_time_stamp()\n  x86, bts: correctly report invalid bts records\n  ...\n\nFixed up trivial conflict in scripts/recordmcount.pl due to SH bits\nbeing already partly merged by the SH merge.\n"
    },
    {
      "commit": "13a0c3c269b223f60abfac8a9811d77111a8b4ba",
      "tree": "b57a92eb9eb7c8c1de30bbe29b6a461289e75c62",
      "parents": [
        "793f7b12a0c95e7bfec1badf9628043fb78fd440"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri Dec 26 02:05:47 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Dec 27 13:24:00 2008 +0100"
      },
      "message": "sparseirq: work around compiler optimizing away __weak functions\n\nImpact: fix panic on null pointer with sparseirq\n\nSome GCC versions seem to inline the weak global function,\nwhen that function is empty.\n\nWork it around, by making the functions return a (dummy) integer.\n\nSigned-off-by: Yinghai \u003cyinghai@kernel.org\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": "1d926f2756392c6909f60e0c9fe2a09d5462e376",
      "tree": "32e6cafbdf007b7d9872846a705aa772de68d43b",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Will Newton",
        "email": "will.newton@gmail.com",
        "time": "Fri Nov 21 14:08:59 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:10:15 2008 +0100"
      },
      "message": "init/main.c: use ktime accessor function in initcall_debug code\n\nImpact: fix initcall debug output on non-scalar ktime platforms (32-bit embedded)\n\nThe initcall_debug code access the tv64 member of ktime.  This won\u0027t work\ncorrectly for large deltas on platforms that don\u0027t use the scalar ktime\nimplementation.\n\nSigned-off-by: Will Newton \u003cwill.newton@gmail.com\u003e\nAcked-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d84f4f992cbd76e8f39c488cf0c5d123843923b1",
      "tree": "fc4a0349c42995715b93d0f7a3c78e9ea9b3f36e",
      "parents": [
        "745ca2475a6ac596e3d8d37c2759c0fbe2586227"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Nov 14 10:39:23 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Nov 14 10:39:23 2008 +1100"
      },
      "message": "CRED: Inaugurate COW credentials\n\nInaugurate copy-on-write credentials management.  This uses RCU to manage the\ncredentials pointer in the task_struct with respect to accesses by other tasks.\nA process may only modify its own credentials, and so does not need locking to\naccess or modify its own credentials.\n\nA mutex (cred_replace_mutex) is added to the task_struct to control the effect\nof PTRACE_ATTACHED on credential calculations, particularly with respect to\nexecve().\n\nWith this patch, the contents of an active credentials struct may not be\nchanged directly; rather a new set of credentials must be prepared, modified\nand committed using something like the following sequence of events:\n\n\tstruct cred *new \u003d prepare_creds();\n\tint ret \u003d blah(new);\n\tif (ret \u003c 0) {\n\t\tabort_creds(new);\n\t\treturn ret;\n\t}\n\treturn commit_creds(new);\n\nThere are some exceptions to this rule: the keyrings pointed to by the active\ncredentials may be instantiated - keyrings violate the COW rule as managing\nCOW keyrings is tricky, given that it is possible for a task to directly alter\nthe keys in a keyring in use by another task.\n\nTo help enforce this, various pointers to sets of credentials, such as those in\nthe task_struct, are declared const.  The purpose of this is compile-time\ndiscouragement of altering credentials through those pointers.  Once a set of\ncredentials has been made public through one of these pointers, it may not be\nmodified, except under special circumstances:\n\n  (1) Its reference count may incremented and decremented.\n\n  (2) The keyrings to which it points may be modified, but not replaced.\n\nThe only safe way to modify anything else is to create a replacement and commit\nusing the functions described in Documentation/credentials.txt (which will be\nadded by a later patch).\n\nThis patch and the preceding patches have been tested with the LTP SELinux\ntestsuite.\n\nThis patch makes several logical sets of alteration:\n\n (1) execve().\n\n     This now prepares and commits credentials in various places in the\n     security code rather than altering the current creds directly.\n\n (2) Temporary credential overrides.\n\n     do_coredump() and sys_faccessat() now prepare their own credentials and\n     temporarily override the ones currently on the acting thread, whilst\n     preventing interference from other threads by holding cred_replace_mutex\n     on the thread being dumped.\n\n     This will be replaced in a future patch by something that hands down the\n     credentials directly to the functions being called, rather than altering\n     the task\u0027s objective credentials.\n\n (3) LSM interface.\n\n     A number of functions have been changed, added or removed:\n\n     (*) security_capset_check(), -\u003ecapset_check()\n     (*) security_capset_set(), -\u003ecapset_set()\n\n     \t Removed in favour of security_capset().\n\n     (*) security_capset(), -\u003ecapset()\n\n     \t New.  This is passed a pointer to the new creds, a pointer to the old\n     \t creds and the proposed capability sets.  It should fill in the new\n     \t creds or return an error.  All pointers, barring the pointer to the\n     \t new creds, are now const.\n\n     (*) security_bprm_apply_creds(), -\u003ebprm_apply_creds()\n\n     \t Changed; now returns a value, which will cause the process to be\n     \t killed if it\u0027s an error.\n\n     (*) security_task_alloc(), -\u003etask_alloc_security()\n\n     \t Removed in favour of security_prepare_creds().\n\n     (*) security_cred_free(), -\u003ecred_free()\n\n     \t New.  Free security data attached to cred-\u003esecurity.\n\n     (*) security_prepare_creds(), -\u003ecred_prepare()\n\n     \t New. Duplicate any security data attached to cred-\u003esecurity.\n\n     (*) security_commit_creds(), -\u003ecred_commit()\n\n     \t New. Apply any security effects for the upcoming installation of new\n     \t security by commit_creds().\n\n     (*) security_task_post_setuid(), -\u003etask_post_setuid()\n\n     \t Removed in favour of security_task_fix_setuid().\n\n     (*) security_task_fix_setuid(), -\u003etask_fix_setuid()\n\n     \t Fix up the proposed new credentials for setuid().  This is used by\n     \t cap_set_fix_setuid() to implicitly adjust capabilities in line with\n     \t setuid() changes.  Changes are made to the new credentials, rather\n     \t than the task itself as in security_task_post_setuid().\n\n     (*) security_task_reparent_to_init(), -\u003etask_reparent_to_init()\n\n     \t Removed.  Instead the task being reparented to init is referred\n     \t directly to init\u0027s credentials.\n\n\t NOTE!  This results in the loss of some state: SELinux\u0027s osid no\n\t longer records the sid of the thread that forked it.\n\n     (*) security_key_alloc(), -\u003ekey_alloc()\n     (*) security_key_permission(), -\u003ekey_permission()\n\n     \t Changed.  These now take cred pointers rather than task pointers to\n     \t refer to the security context.\n\n (4) sys_capset().\n\n     This has been simplified and uses less locking.  The LSM functions it\n     calls have been merged.\n\n (5) reparent_to_kthreadd().\n\n     This gives the current thread the same credentials as init by simply using\n     commit_thread() to point that way.\n\n (6) __sigqueue_alloc() and switch_uid()\n\n     __sigqueue_alloc() can\u0027t stop the target task from changing its creds\n     beneath it, so this function gets a reference to the currently applicable\n     user_struct which it then passes into the sigqueue struct it returns if\n     successful.\n\n     switch_uid() is now called from commit_creds(), and possibly should be\n     folded into that.  commit_creds() should take care of protecting\n     __sigqueue_alloc().\n\n (7) [sg]et[ug]id() and co and [sg]et_current_groups.\n\n     The set functions now all use prepare_creds(), commit_creds() and\n     abort_creds() to build and check a new set of credentials before applying\n     it.\n\n     security_task_set[ug]id() is called inside the prepared section.  This\n     guarantees that nothing else will affect the creds until we\u0027ve finished.\n\n     The calling of set_dumpable() has been moved into commit_creds().\n\n     Much of the functionality of set_user() has been moved into\n     commit_creds().\n\n     The get functions all simply access the data directly.\n\n (8) security_task_prctl() and cap_task_prctl().\n\n     security_task_prctl() has been modified to return -ENOSYS if it doesn\u0027t\n     want to handle a function, or otherwise return the return value directly\n     rather than through an argument.\n\n     Additionally, cap_task_prctl() now prepares a new set of credentials, even\n     if it doesn\u0027t end up using it.\n\n (9) Keyrings.\n\n     A number of changes have been made to the keyrings code:\n\n     (a) switch_uid_keyring(), copy_keys(), exit_keys() and suid_keys() have\n     \t all been dropped and built in to the credentials functions directly.\n     \t They may want separating out again later.\n\n     (b) key_alloc() and search_process_keyrings() now take a cred pointer\n     \t rather than a task pointer to specify the security context.\n\n     (c) copy_creds() gives a new thread within the same thread group a new\n     \t thread keyring if its parent had one, otherwise it discards the thread\n     \t keyring.\n\n     (d) The authorisation key now points directly to the credentials to extend\n     \t the search into rather pointing to the task that carries them.\n\n     (e) Installing thread, process or session keyrings causes a new set of\n     \t credentials to be created, even though it\u0027s not strictly necessary for\n     \t process or session keyrings (they\u0027re shared).\n\n(10) Usermode helper.\n\n     The usermode helper code now carries a cred struct pointer in its\n     subprocess_info struct instead of a new session keyring pointer.  This set\n     of credentials is derived from init_cred and installed on the new process\n     after it has been cloned.\n\n     call_usermodehelper_setup() allocates the new credentials and\n     call_usermodehelper_freeinfo() discards them if they haven\u0027t been used.  A\n     special cred function (prepare_usermodeinfo_creds()) is provided\n     specifically for call_usermodehelper_setup() to call.\n\n     call_usermodehelper_setkeys() adjusts the credentials to sport the\n     supplied keyring as the new session keyring.\n\n(11) SELinux.\n\n     SELinux has a number of changes, in addition to those to support the LSM\n     interface changes mentioned above:\n\n     (a) selinux_setprocattr() no longer does its check for whether the\n     \t current ptracer can access processes with the new SID inside the lock\n     \t that covers getting the ptracer\u0027s SID.  Whilst this lock ensures that\n     \t the check is done with the ptracer pinned, the result is only valid\n     \t until the lock is released, so there\u0027s no point doing it inside the\n     \t lock.\n\n(12) is_single_threaded().\n\n     This function has been extracted from selinux_setprocattr() and put into\n     a file of its own in the lib/ directory as join_session_keyring() now\n     wants to use it too.\n\n     The code in SELinux just checked to see whether a task shared mm_structs\n     with other tasks (CLONE_VM), but that isn\u0027t good enough.  We really want\n     to know if they\u0027re part of the same thread group (CLONE_THREAD).\n\n(13) nfsd.\n\n     The NFS server daemon now has to use the COW credentials to set the\n     credentials it is going to use.  It really needs to pass the credentials\n     down to the functions it calls, but it can\u0027t do that until other patches\n     in this series have been applied.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "74239072830ef3f1398edeb1bc1076fc330fd4a2",
      "tree": "60a244c6c88d9943760ded98a1a29ce018292107",
      "parents": [
        "3f5ec13696fd4a33bde42f385406cbb1d3cc96fd"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 23:24:42 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:19 2008 +0100"
      },
      "message": "tracing/fastboot: Use the ring-buffer timestamp for initcall entries\n\nImpact: Split the boot tracer entries in two parts: call and return\n\nNow that we are using the sched tracer from the boot tracer, we want\nto use the same timestamp than the ring-buffer to have consistent time\ncaptures between sched events and initcall events.\n\nSo we get rid of the old time capture by the boot tracer and split the\ninitcall events in two parts: call and return. This way we have the\nring buffer timestamp of both.\n\nAn example trace:\n\n[   27.904149584] calling  net_ns_init+0x0/0x1c0 @ 1\n[   27.904429624] initcall net_ns_init+0x0/0x1c0 returned 0 after 0 msecs\n[   27.904575926] calling  reboot_init+0x0/0x20 @ 1\n[   27.904655399] initcall reboot_init+0x0/0x20 returned 0 after 0 msecs\n[   27.904800228] calling  sysctl_init+0x0/0x30 @ 1\n[   27.905142914] initcall sysctl_init+0x0/0x30 returned 0 after 0 msecs\n[   27.905287211] calling  ksysfs_init+0x0/0xb0 @ 1\n ##### CPU 0 buffer started ####\n            init-1     [000]    27.905395:      1:120:R   + [001]    11:115:S\n ##### CPU 1 buffer started ####\n          \u003cidle\u003e-0     [001]    27.905425:      0:140:R \u003d\u003d\u003e [001]    11:115:R\n            init-1     [000]    27.905426:      1:120:D \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.905431:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905451:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.905456:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n           udevd-11    [001]    27.905458:     11:115:R   + [001]    14:115:R\n          \u003cidle\u003e-0     [000]    27.905459:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905462:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n           udevd-11    [001]    27.905462:     11:115:R \u003d\u003d\u003e [001]    14:115:R\n     ksoftirqd/0-4     [000]    27.905467:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.905470:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905473:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.905476:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.905479:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.905482:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.905486:      4:115:S \u003d\u003d\u003e [000]     0:140:R\n           udevd-14    [001]    27.905499:     14:120:X \u003d\u003d\u003e [001]    11:115:R\n           udevd-11    [001]    27.905506:     11:115:R   + [000]     1:120:D\n          \u003cidle\u003e-0     [000]    27.905515:      0:140:R \u003d\u003d\u003e [000]     1:120:R\n           udevd-11    [001]    27.905517:     11:115:S \u003d\u003d\u003e [001]     0:140:R\n[   27.905557107] initcall ksysfs_init+0x0/0xb0 returned 0 after 3906 msecs\n[   27.905705736] calling  init_jiffies_clocksource+0x0/0x10 @ 1\n[   27.905779239] initcall init_jiffies_clocksource+0x0/0x10 returned 0 after 0 msecs\n[   27.906769814] calling  pm_init+0x0/0x30 @ 1\n[   27.906853627] initcall pm_init+0x0/0x30 returned 0 after 0 msecs\n[   27.906997803] calling  pm_disk_init+0x0/0x20 @ 1\n[   27.907076946] initcall pm_disk_init+0x0/0x20 returned 0 after 0 msecs\n[   27.907222556] calling  swsusp_header_init+0x0/0x30 @ 1\n[   27.907294325] initcall swsusp_header_init+0x0/0x30 returned 0 after 0 msecs\n[   27.907439620] calling  stop_machine_init+0x0/0x50 @ 1\n            init-1     [000]    27.907485:      1:120:R   + [000]     2:115:S\n            init-1     [000]    27.907490:      1:120:D \u003d\u003d\u003e [000]     2:115:R\n        kthreadd-2     [000]    27.907507:      2:115:R   + [001]    15:115:R\n          \u003cidle\u003e-0     [001]    27.907517:      0:140:R \u003d\u003d\u003e [001]    15:115:R\n        kthreadd-2     [000]    27.907517:      2:115:D \u003d\u003d\u003e [000]     0:140:R\n          \u003cidle\u003e-0     [000]    27.907521:      0:140:R   + [000]     4:115:S\n          \u003cidle\u003e-0     [000]    27.907524:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n           udevd-15    [001]    27.907527:     15:115:D   + [000]     2:115:D\n     ksoftirqd/0-4     [000]    27.907537:      4:115:S \u003d\u003d\u003e [000]     2:115:R\n           udevd-15    [001]    27.907537:     15:115:D \u003d\u003d\u003e [001]     0:140:R\n        kthreadd-2     [000]    27.907546:      2:115:R   + [000]     1:120:D\n        kthreadd-2     [000]    27.907550:      2:115:S \u003d\u003d\u003e [000]     1:120:R\n            init-1     [000]    27.907584:      1:120:R   + [000]    15:  0:D\n            init-1     [000]    27.907589:      1:120:R   + [000]     2:115:S\n            init-1     [000]    27.907593:      1:120:D \u003d\u003d\u003e [000]    15:  0:R\n           udevd-15    [000]    27.907601:     15:  0:S \u003d\u003d\u003e [000]     2:115:R\n ##### CPU 0 buffer started ####\n        kthreadd-2     [000]    27.907616:      2:115:R   + [001]    16:115:R\n ##### CPU 1 buffer started ####\n          \u003cidle\u003e-0     [001]    27.907620:      0:140:R \u003d\u003d\u003e [001]    16:115:R\n        kthreadd-2     [000]    27.907621:      2:115:D \u003d\u003d\u003e [000]     0:140:R\n           udevd-16    [001]    27.907625:     16:115:D   + [000]     2:115:D\n          \u003cidle\u003e-0     [000]    27.907628:      0:140:R   + [000]     4:115:S\n           udevd-16    [001]    27.907629:     16:115:D \u003d\u003d\u003e [001]     0:140:R\n          \u003cidle\u003e-0     [000]    27.907631:      0:140:R \u003d\u003d\u003e [000]     4:115:R\n     ksoftirqd/0-4     [000]    27.907636:      4:115:S \u003d\u003d\u003e [000]     2:115:R\n        kthreadd-2     [000]    27.907644:      2:115:R   + [000]     1:120:D\n        kthreadd-2     [000]    27.907647:      2:115:S \u003d\u003d\u003e [000]     1:120:R\n            init-1     [000]    27.907657:      1:120:R   + [001]    16:  0:D\n          \u003cidle\u003e-0     [001]    27.907666:      0:140:R \u003d\u003d\u003e [001]    16:  0:R\n[   27.907703862] initcall stop_machine_init+0x0/0x50 returned 0 after 0 msecs\n[   27.907850704] calling  filelock_init+0x0/0x30 @ 1\n[   27.907926573] initcall filelock_init+0x0/0x30 returned 0 after 0 msecs\n[   27.908071327] calling  init_script_binfmt+0x0/0x10 @ 1\n[   27.908165195] initcall init_script_binfmt+0x0/0x10 returned 0 after 0 msecs\n[   27.908309461] calling  init_elf_binfmt+0x0/0x10 @ 1\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3f5ec13696fd4a33bde42f385406cbb1d3cc96fd",
      "tree": "3c705c5991fcf0f4968ff790bb2e2ce65c8cbf18",
      "parents": [
        "60a011c736e7dd09a0b01ca6a051a416f3f52ffb"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 11 23:21:31 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 12 10:17:18 2008 +0100"
      },
      "message": "tracing/fastboot: move boot tracer structs and funcs into their own header.\n\nImpact: Cleanups on the boot tracer and ftrace\n\nThis patch bring some cleanups about the boot tracer headers. The\nfunctions and structures of this tracer have nothing related to ftrace\nand should have so their own header file.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "71566a0d161edec70361b7f90f6e54af6a6d5d05",
      "tree": "78d2d790ed4e20c179d2f61f2ed50ecbb6d5a451",
      "parents": [
        "7a895f53cda9d9362c30144e42c124a1ae996b9e"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 31 12:57:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 04 17:14:02 2008 +0100"
      },
      "message": "tracing/fastboot: Enable boot tracing only during initcalls\n\nImpact: modify boot tracer\n\nWe used to disable the initcall tracing at a specified time (IE: end\nof builtin initcalls). But we don\u0027t need it anymore. It will be\nstopped when initcalls are finished.\n\nHowever we want two things:\n\n_Start this tracing only after pre-smp initcalls are finished.\n\n_Since we are planning to trace sched_switches at the same time, we\nwant to enable them only during the initcall execution.\n\nFor this purpose, this patch introduce two functions to enable/disable\nthe sched_switch tracing during boot.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4403b406d4369a275d483ece6ddee0088cc0d592",
      "tree": "caefd6b7aabc1c517942be1abf25d841b181f323",
      "parents": [
        "e013e13bf605b9e6b702adffbe2853cfc60e7806"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 25 19:53:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 25 19:53:38 2008 -0700"
      },
      "message": "Revert \"Call init_workqueues before pre smp initcalls.\"\n\nThis reverts commit a802dd0eb5fc97a50cf1abb1f788a8f6cc5db635 by moving\nthe call to init_workqueues() back where it belongs - after SMP has been\ninitialized.\n\nIt also moves stop_machine_init() - which needs workqueues - to a later\nphase using a core_initcall() instead of early_initcall().  That should\nsatisfy all ordering requirements, and was apparently the reason why\ninit_workqueues() was moved to be too early.\n\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ed487bc2c44ca4e9668ef9cb54c830e2a9fac47",
      "tree": "af19ed28db83e8f52690872ac99336da1cf2fd3b",
      "parents": [
        "5b34653963de7a6d0d8c783527457d68fddc60fb",
        "fd217f4d70172c526478f2bc76859e909fdfa674"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:22:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:22:40 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (46 commits)\n  [PATCH] fs: add a sanity check in d_free\n  [PATCH] i_version: remount support\n  [patch] vfs: make security_inode_setattr() calling consistent\n  [patch 1/3] FS_MBCACHE: don\u0027t needlessly make it built-in\n  [PATCH] move executable checking into -\u003epermission()\n  [PATCH] fs/dcache.c: update comment of d_validate()\n  [RFC PATCH] touch_mnt_namespace when the mount flags change\n  [PATCH] reiserfs: add missing llseek method\n  [PATCH] fix -\u003ellseek for more directories\n  [PATCH vfs-2.6 6/6] vfs: add LOOKUP_RENAME_TARGET intent\n  [PATCH vfs-2.6 5/6] vfs: remove LOOKUP_PARENT from non LOOKUP_PARENT lookup\n  [PATCH vfs-2.6 4/6] vfs: remove unnecessary fsnotify_d_instantiate()\n  [PATCH vfs-2.6 3/6] vfs: add __d_instantiate() helper\n  [PATCH vfs-2.6 2/6] vfs: add d_ancestor()\n  [PATCH vfs-2.6 1/6] vfs: replace parent \u003d\u003d dentry-\u003ed_parent by IS_ROOT()\n  [PATCH] get rid of on-stack dentry in udf\n  [PATCH 2/2] anondev: switch to IDA\n  [PATCH 1/2] anondev: init IDR statically\n  [JFFS2] Use d_splice_alias() not d_add() in jffs2_lookup()\n  [PATCH] Optimise NFS readdir hack slightly.\n  ...\n"
    },
    {
      "commit": "a5344876065e047d507800d0801a637d68d3b129",
      "tree": "240173ed2f588a1c61aff9bb513255f99b0cd6a2",
      "parents": [
        "296e1ce0dc36bb106c139e25482d02da43c70e71",
        "8163bcac779f62c6bf847caed9bce905db0693fb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:00:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 10:00:14 2008 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  stop_machine: fix error code handling on multiple cpus\n  stop_machine: use workqueues instead of kernel threads\n  workqueue: introduce create_rt_workqueue\n  Call init_workqueues before pre smp initcalls.\n  Make panic\u003d and panic_on_oops into core_params\n  Make initcall_debug a core_param\n  core_param() for genuinely core kernel parameters\n  param: Fix duplicate module prefixes\n  module: check kernel param length at compile time, not runtime\n  Remove stop_machine during module load v2\n  module: simplify load_module.\n"
    },
    {
      "commit": "94b6da5ab8293b04a300ba35c72eddfa94db8b02",
      "tree": "8ca1c8abb7934ab51657fffeb26a5f5aabd34743",
      "parents": [
        "be07c4ed4043ab8c26f222348136141335e47a2f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Oct 22 14:15:05 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 23 08:55:02 2008 -0700"
      },
      "message": "memcg: fix page_cgroup allocation\n\npage_cgroup_init() is called from mem_cgroup_init(). But at this\npoint, we cannot call alloc_bootmem().\n(and this caused panic at boot.)\n\nThis patch moves page_cgroup_init() to init/main.c.\n\nTime table is following:\n\u003d\u003d\n  parse_args(). # we can trust mem_cgroup_subsys.disabled bit after this.\n  ....\n  cgroup_init_early()  # \"early\" init of cgroup.\n  ....\n  setup_arch()         # memmap is allocated.\n  ...\n  page_cgroup_init();\n  mem_init();   # we cannot call alloc_bootmem after this.\n  ....\n  cgroup_init() # mem_cgroup is initialized.\n\u003d\u003d\n\nBefore page_cgroup_init(), mem_map must be initialized. So,\nI added page_cgroup_init() to init/main.c directly.\n\n(*) maybe this is not very clean but\n    - cgroup_init_early() is too early\n    - in cgroup_init(), we have to use vmalloc instead of alloc_bootmem().\n    use of vmalloc area in x86-32 is important and we should avoid very large\n    vmalloc() in x86-32. So, we want to use alloc_bootmem() and added page_cgroup_init()\n    directly to init/main.c\n\n[akpm@linux-foundation.org: remove unneeded/bad mem_cgroup_subsys declaration]\n[akpm@linux-foundation.org: fix build]\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nTested-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@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": "6de24f0ed08054b2a202902e4d63beff27654db8",
      "tree": "91f378a0335b5b9756020d37e1c54bba4a2d6434",
      "parents": [
        "8966c5e0fc867f5a7da5756b4cd1b8bbbed3d5dd"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Aug 28 06:25:49 2008 +0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:13:13 2008 -0400"
      },
      "message": "[PATCH 1/2] anondev: init IDR statically\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "a802dd0eb5fc97a50cf1abb1f788a8f6cc5db635",
      "tree": "103d3ee6fe2367e40f78e10838653b1f588f0677",
      "parents": [
        "f44dd164f37336f7e17fabf5740698fd10635172"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Oct 13 23:50:08 2008 +0200"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:25 2008 +1100"
      },
      "message": "Call init_workqueues before pre smp initcalls.\n\nThis allows to create workqueues from within the context of\na pre smp initcall (aka early_initcall).\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "d0ea3d7d286aeda2a9216d76424abc285b87b7b4",
      "tree": "b0e12906ab0ec66e36e51bee78b5d199edb887c4",
      "parents": [
        "67e67ceaac5bf55dbdceb704ff2d763d438b5373"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:23 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Wed Oct 22 10:00:24 2008 +1100"
      },
      "message": "Make initcall_debug a core_param\n\nThis is the one I really wanted: now it effects module loading, it\nmakes sense to be able to flip it after boot.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "92b29b86fe2e183d44eb467e5e74a5f718ef2e43",
      "tree": "1bac8a1aa11d47322b66d10ec3a370016d843d06",
      "parents": [
        "b9d7ccf56be1ac77b71a284a1c0e6337f9a7aff0",
        "98d9c66ab07471006fd7910cb16453581c41a3e7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 13:35:07 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-v28-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (131 commits)\n  tracing/fastboot: improve help text\n  tracing/stacktrace: improve help text\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix bootgraph.pl initcall name regexp\n  tracing/fastboot: fix issues and improve output of bootgraph.pl\n  tracepoints: synchronize unregister static inline\n  tracepoints: tracepoint_synchronize_unregister()\n  ftrace: make ftrace_test_p6nop disassembler-friendly\n  markers: fix synchronize marker unregister static inline\n  tracing/fastboot: add better resolution to initcall debug/tracing\n  trace: add build-time check to avoid overrunning hex buffer\n  ftrace: fix hex output mode of ftrace\n  tracing/fastboot: fix initcalls disposition in bootgraph.pl\n  tracing/fastboot: fix printk format typo in boot tracer\n  ftrace: return an error when setting a nonexistent tracer\n  ftrace: make some tracers reentrant\n  ring-buffer: make reentrant\n  ring-buffer: move page indexes into page headers\n  tracing/fastboot: only trace non-module initcalls\n  ftrace: move pc counter in irqtrace\n  ...\n\nManually fix conflicts:\n - init/main.c: initcall tracing\n - kernel/module.c: verbose level vs tracepoints\n - scripts/bootgraph.pl: fallout from cherry-picking commits.\n"
    },
    {
      "commit": "db64fe02258f1507e13fe5212a989922323685ce",
      "tree": "ed24c8d4e3b0bcadfce3a8c3916a6b35d6c891cb",
      "parents": [
        "cb8f488c33539f096580e202f5438a809195008f"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:27:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:32 2008 -0700"
      },
      "message": "mm: rewrite vmap layer\n\nRewrite the vmap allocator to use rbtrees and lazy tlb flushing, and\nprovide a fast, scalable percpu frontend for small vmaps (requires a\nslightly different API, though).\n\nThe biggest problem with vmap is actually vunmap.  Presently this requires\na global kernel TLB flush, which on most architectures is a broadcast IPI\nto all CPUs to flush the cache.  This is all done under a global lock.  As\nthe number of CPUs increases, so will the number of vunmaps a scaled\nworkload will want to perform, and so will the cost of a global TLB flush.\n This gives terrible quadratic scalability characteristics.\n\nAnother problem is that the entire vmap subsystem works under a single\nlock.  It is a rwlock, but it is actually taken for write in all the fast\npaths, and the read locking would likely never be run concurrently anyway,\nso it\u0027s just pointless.\n\nThis is a rewrite of vmap subsystem to solve those problems.  The existing\nvmalloc API is implemented on top of the rewritten subsystem.\n\nThe TLB flushing problem is solved by using lazy TLB unmapping.  vmap\naddresses do not have to be flushed immediately when they are vunmapped,\nbecause the kernel will not reuse them again (would be a use-after-free)\nuntil they are reallocated.  So the addresses aren\u0027t allocated again until\na subsequent TLB flush.  A single TLB flush then can flush multiple\nvunmaps from each CPU.\n\nXEN and PAT and such do not like deferred TLB flushing because they can\u0027t\nalways handle multiple aliasing virtual addresses to a physical address.\nThey now call vm_unmap_aliases() in order to flush any deferred mappings.\nThat call is very expensive (well, actually not a lot more expensive than\na single vunmap under the old scheme), however it should be OK if not\ncalled too often.\n\nThe virtual memory extent information is stored in an rbtree rather than a\nlinked list to improve the algorithmic scalability.\n\nThere is a per-CPU allocator for small vmaps, which amortizes or avoids\nglobal locking.\n\nTo use the per-CPU interface, the vm_map_ram / vm_unmap_ram interfaces\nmust be used in place of vmap and vunmap.  Vmalloc does not use these\ninterfaces at the moment, so it will not be quite so scalable (although it\nwill use lazy TLB flushing).\n\nAs a quick test of performance, I ran a test that loops in the kernel,\nlinearly mapping then touching then unmapping 4 pages.  Different numbers\nof tests were run in parallel on an 4 core, 2 socket opteron.  Results are\nin nanoseconds per map+touch+unmap.\n\nthreads           vanilla         vmap rewrite\n1                 14700           2900\n2                 33600           3000\n4                 49500           2800\n8                 70631           2900\n\nSo with a 8 cores, the rewritten version is already 25x faster.\n\nIn a slightly more realistic test (although with an older and less\nscalable version of the patch), I ripped the not-very-good vunmap batching\ncode out of XFS, and implemented the large buffer mapping with vm_map_ram\nand vm_unmap_ram...  along with a couple of other tricks, I was able to\nspeed up a large directory workload by 20x on a 64 CPU system.  I believe\nvmap/vunmap is actually sped up a lot more than 20x on such a system, but\nI\u0027m running into other locks now.  vmap is pretty well blown off the\nprofiles.\n\nBefore:\n1352059 total                                      0.1401\n798784 _write_lock                              8320.6667 \u003c- vmlist_lock\n529313 default_idle                             1181.5022\n 15242 smp_call_function                         15.8771  \u003c- vmap tlb flushing\n  2472 __get_vm_area_node                         1.9312  \u003c- vmap\n  1762 remove_vm_area                             4.5885  \u003c- vunmap\n   316 map_vm_area                                0.2297  \u003c- vmap\n   312 kfree                                      0.1950\n   300 _spin_lock                                 3.1250\n   252 sn_send_IPI_phys                           0.4375  \u003c- tlb flushing\n   238 vmap                                       0.8264  \u003c- vmap\n   216 find_lock_page                             0.5192\n   196 find_next_bit                              0.3603\n   136 sn2_send_IPI                               0.2024\n   130 pio_phys_write_mmr                         2.0312\n   118 unmap_kernel_range                         0.1229\n\nAfter:\n 78406 total                                      0.0081\n 40053 default_idle                              89.4040\n 33576 ia64_spinlock_contention                 349.7500\n  1650 _spin_lock                                17.1875\n   319 __reg_op                                   0.5538\n   281 _atomic_dec_and_lock                       1.0977\n   153 mutex_unlock                               1.5938\n   123 iget_locked                                0.1671\n   117 xfs_dir_lookup                             0.1662\n   117 dput                                       0.1406\n   114 xfs_iget_core                              0.0268\n    92 xfs_da_hashname                            0.1917\n    75 d_alloc                                    0.0670\n    68 vmap_page_range                            0.0462 \u003c- vmap\n    58 kmem_cache_alloc                           0.0604\n    57 memset                                     0.0540\n    52 rb_next                                    0.1625\n    50 __copy_user                                0.0208\n    49 bitmap_find_free_region                    0.2188 \u003c- vmap\n    46 ia64_sn_udelay                             0.1106\n    45 find_inode_fast                            0.1406\n    42 memcmp                                     0.2188\n    42 finish_task_switch                         0.1094\n    42 __d_lookup                                 0.0410\n    40 radix_tree_lookup_slot                     0.1250\n    37 _spin_unlock_irqrestore                    0.3854\n    36 xfs_bmapi                                  0.0050\n    36 kmem_cache_free                            0.0256\n    35 xfs_vn_getattr                             0.0322\n    34 radix_tree_lookup                          0.1062\n    33 __link_path_walk                           0.0035\n    31 xfs_da_do_buf                              0.0091\n    30 _xfs_buf_find                              0.0204\n    28 find_get_page                              0.0875\n    27 xfs_iread                                  0.0241\n    27 __strncpy_from_user                        0.2812\n    26 _xfs_buf_initialize                        0.0406\n    24 _xfs_buf_lookup_pages                      0.0179\n    24 vunmap_page_range                          0.0250 \u003c- vunmap\n    23 find_lock_page                             0.0799\n    22 vm_map_ram                                 0.0087 \u003c- vmap\n    20 kfree                                      0.0125\n    19 put_page                                   0.0330\n    18 __kmalloc                                  0.0176\n    17 xfs_da_node_lookup_int                     0.0086\n    17 _read_lock                                 0.0885\n    17 page_waitqueue                             0.0664\n\nvmap has gone from being the top 5 on the profiles and flushing the crap\nout of all TLBs, to using less than 1% of kernel time.\n\n[akpm@linux-foundation.org: cleanups, section fix]\n[akpm@linux-foundation.org: fix build on alpha]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Krzysztof Helt \u003ckrzysztof.h1@poczta.fm\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca538f6bbe583406f941f3041d40c41f9a13d1de",
      "tree": "460e3cf96472e327b48befbb4836c2d40e46f937",
      "parents": [
        "ad0a3b68114e8f3c25ac0045b45a2838f23e3b3a"
      ],
      "author": {
        "name": "Tim Bird",
        "email": "tim.bird@am.sony.com",
        "time": "Thu Oct 09 15:23:05 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:27 2008 +0200"
      },
      "message": "tracing/fastboot: add better resolution to initcall debug/tracing\n\nChange the time resolution for initcall_debug to microseconds, from\nmilliseconds.  This is handy to determine which initcalls you want to work\non for faster booting.\n\nOne one of my test machines, over 90% of the initcalls are less than a\nmillisecond and (without this patch) these are all reported as 0 msecs.\nWorking on the 900 us ones is more important than the 4 us ones.\n\nWith \u0027quiet\u0027 on the kernel command line, this adds no significant overhead\nto kernel boot time.\n\nSigned-off-by: Tim Bird \u003ctim.bird@am.sony.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "097d036a2f25eecc42435c57e010aaf4a2eed2d9",
      "tree": "ee5e40b940475e8a047e02093688072ff3e330d3",
      "parents": [
        "6450c1d3213e27b0dcbf34cce7ad1ae74244c520"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 03 15:39:21 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:17 2008 +0200"
      },
      "message": "tracing/fastboot: only trace non-module initcalls\n\nAt this time, only built-in initcalls interest us.\nWe can\u0027t really produce a relevant graph if we include\nthe modules initcall too.\n\nI had good results after this patch (see svg in attachment).\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5601020feb0c3010e9e3e0131e9697ac6a06777b",
      "tree": "99d1a70dbf3bba2b5ae1007c4828c28e6480214a",
      "parents": [
        "cb5ab74204a6e2579d1119bf1348eb806526b12b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Oct 02 13:26:05 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:12 2008 +0200"
      },
      "message": "tracing/fastboot: get the initcall name before it disappears\n\nAfter some initcall traces, some initcall names may be inconsistent.\nThat\u0027s because these functions will disappear from the .init section\nand also their name from the symbols table.\n\nSo we have to copy the name of the function in a buffer large enough\nduring the trace appending. It is not costly for the ring_buffer because\nthe number of initcall entries is commonly not really large.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cb5ab74204a6e2579d1119bf1348eb806526b12b",
      "tree": "4810258d42e0370ec15cf424d5e3c6487fbd1781",
      "parents": [
        "77ae11f63befb7fc41ec256f1fcb72ca7e4160d5"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Oct 02 12:59:20 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:39:11 2008 +0200"
      },
      "message": "tracing/fastboot: change the printing of boot tracer according to bootgraph.pl\n\nChange the boot tracer printing to make it parsable for\nthe scripts/bootgraph.pl script.\n\nWe have now to output two lines for each initcall, according to the\nprintk in do_one_initcall() in init/main.c\nWe need now the call\u0027s time and the return\u0027s time.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3bf77af6e1fef1124bf71d81f9f84885f0ee0dea",
      "tree": "e16ac5f19fdcef2634a4ee5d5c10e9f31ee6df78",
      "parents": [
        "1f5c2abbdeb2bb07b20c6a66bfecefe6c867b1ee"
      ],
      "author": {
        "name": "Frédéric Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Sep 23 11:38:18 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:50 2008 +0200"
      },
      "message": "tracing/ftrace: launch boot tracing after pre-smp initcalls\n\nLaunch the boot tracing inside the initcall_debug area. Old printk\nhave not been removed to keep the old way of initcall tracing for\nbackward compatibility.\n\n[ mingo@elte.hu: resolved conflicts ]\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "aa5d9151f745b6ee6a236a1f109118034277eb92",
      "tree": "3b0660685ba60cf2401e70eba4572ed2691c817d",
      "parents": [
        "1b7ae37c030a9fbbb5ebbf5d7bbfd7208cf805b7"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Sep 13 09:36:06 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:38:46 2008 +0200"
      },
      "message": "tracing/fastboot: add a script to visualize the kernel boot process / time\n\nWhen optimizing the kernel boot time, it\u0027s very valuable to visualize\nwhat is going on at which time. In addition, with the fastboot asynchronous\ninitcall level, it\u0027s very valuable to see which initcall gets run where\nand when.\n\nThis patch adds a script to turn a dmesg into a SVG graph (that can be\nshown with tools such as InkScape, Gimp or Firefox) and a small change\nto the initcall code to print the PID of the thread calling the initcall\n(so that the script can work out the parallelism).\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "68bf21aa15c85d2e9b623dcda2b1ed8893275fa1",
      "tree": "54d4d4f7e8311b77f3166a8807a635347d479081",
      "parents": [
        "8da3821ba5634497da63d58a69e24a97697c4a2b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Aug 14 15:45:08 2008 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Oct 14 10:34:44 2008 +0200"
      },
      "message": "ftrace: mcount call site on boot nops core\n\nThis is the infrastructure to the converting the mcount call sites\nrecorded by the __mcount_loc section into nops on boot. It also allows\nfor using these sites to enable tracing as normal. When the __mcount_loc\nsection is used, the \"ftraced\" kernel thread is disabled.\n\nThis uses the current infrastructure to record the mcount call sites\nas well as convert them to nops. The mcount function is kept as a stub\non boot up and not converted to the ftrace_record_ip function. We use the\nftrace_record_ip to only record from the table.\n\nThis patch does not handle modules. That comes with a later patch.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f9b9796ade7609cd62571d38f064e20c77d31281",
      "tree": "ab108882f8bb940a4a3c2cc483223fb6791bb473",
      "parents": [
        "7cc4e87f912bbefa440a51856b8d076e5d1f554a"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sat Sep 13 09:36:06 2008 -0700"
      },
      "committer": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Sun Oct 12 08:07:20 2008 -0700"
      },
      "message": "Add a script to visualize the kernel boot process / time\n\nWhen optimizing the kernel boot time, it\u0027s very valuable to visualize\nwhat is going on at which time. In addition, with some of the initializing\ngoing asynchronous soon, it\u0027s valuable to track/print which worker thread\nis executing the initialization.\n\nThis patch adds a script to turn a dmesg into a SVG graph (that can be\nshown with tools such as InkScape, Gimp or Firefox) and a small change\nto the initcall code to print the PID of the thread calling the initcall\n(so that the script can work out the parallelism).\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\n"
    },
    {
      "commit": "96d746c68fae9a1e3167caab04c22fd0f677f62d",
      "tree": "a2e1d1be86ae7660e00986159987ee3bd1e8f2a3",
      "parents": [
        "95b866d5afcafee00fc9ad70665e48c86d8c4e0f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 03 13:38:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 03 13:38:07 2008 -0700"
      },
      "message": "Fix init/main.c to use regular printk with \u0027%pF\u0027 for initcall fn\n\n.. small detail, but the silly e1000e initcall warning debugging caused\nme to look at this code.  Rather than gouge my eyes out with a spoon, I\njust fixed it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59f9415ffb9759e950d775f4c400f747b332cc02",
      "tree": "354544b8cad8ae77a5f960fe601b2a3613a2523a",
      "parents": [
        "4bceba417a795b78a5146e3f85291cb7bb2402ef"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Wed Jul 30 12:49:02 2008 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Aug 12 17:52:54 2008 +1000"
      },
      "message": "modules: extend initcall_debug functionality to the module loader\n\nThe kernel has this really nice facility where if you put \"initcall_debug\"\non the kernel commandline, it\u0027ll print which function it\u0027s going to\nexecute just before calling an initcall, and then after the call completes\nit will\n\n1) print if it had an error code\n\n2) checks for a few simple bugs (like leaving irqs off)\nand\n\n3) print how long the init call took in milliseconds.\n\nWhile trying to optimize the boot speed of my laptop, I have been loving\nnumber 3 to figure out what to optimize...  ...  and then I wished that\nthe same thing was done for module loading.\n\nThis patch makes the module loader use this exact same functionality; it\u0027s\na logical extension in my view (since modules are just sort of late\nbinding initcalls anyway) and so far I\u0027ve found it quite useful in finding\nwhere things are too slow in my boot.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "b5b9309d3415480b3e66314a1d6c89db58bff9de",
      "tree": "2afca0cb09bded726fa06b967c4cfa23e5283adf",
      "parents": [
        "39b986a6c73434d122967dc86efb295ab9a28437"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Aug 05 18:16:58 2008 +0200"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Aug 05 18:16:58 2008 +0200"
      },
      "message": "remove unnecessary \u003clinux/hdreg.h\u003e includes\n\nFollowing files don\u0027t need \u003clinux/hdreg.h\u003e at all:\n\n- arch/mips/jazz/setup.c\n- arch/sh/boards/mach-systemh/irq.c\n- drivers/macintosh/mediabay.c\n- drivers/scsi/hptiop.c\n- drivers/usb/storage/freecom.c\n- arch/powerpc/include/asm/ide.h\n- init/main.c\n\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "bd673c7c3b1681dbfabab0062e67398dadf806af",
      "tree": "b2334952d5e070042fab29715a4ef228d0cd96a2",
      "parents": [
        "06ac667903ebea8191d4f7e7fa4e0936161e25fe"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Tue Jul 29 22:33:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:45 2008 -0700"
      },
      "message": "initrd: cast `initrd_start\u0027 to `void *\u0027\n\ncommit fb6624ebd912e3d6907ca6490248e73368223da9 (initrd: Fix virtual/physical\nmix-up in overwrite test) introduced the compiler warning below on mips,\nas its virt_to_page() doesn\u0027t cast the passed address to unsigned long\ninternally, unlike on most other architectures:\n\ninit/main.c: In function `start_kernel\u0027:\ninit/main.c:633: warning: passing argument 1 of `virt_to_phys\u0027 makes pointer from integer without a cast\ninit/main.c:636: warning: passing argument 1 of `virt_to_phys\u0027 makes pointer from integer without a cast\n\nFor now, kill the warning by explicitly casting initrd_start to `void *\u0027, as\nthat\u0027s the type it should really be.\n\nReported-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7babe8db99d305340cf4828ce1f5a1481d5622ef",
      "tree": "fdac7a084646bb6d125ebc62b0b75806e45d1025",
      "parents": [
        "c2147a5092cfe13dbf3210e54e8a622015edeecc"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Fri Jul 25 19:45:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "Full conversion to early_initcall() interface, remove old interface\n\nA previous patch added the early_initcall(), to allow a cleaner hooking of\npre-SMP initcalls.  Now we remove the older interface, converting all\nexisting users to the new one.\n\n[akpm@linux-foundation.org: cleanups]\n[akpm@linux-foundation.org: build fix]\n[kosaki.motohiro@jp.fujitsu.com: warning fix]\n[kosaki.motohiro@jp.fujitsu.com: warning fix]\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Tom Zanussi \u003ctzanussi@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": "c2147a5092cfe13dbf3210e54e8a622015edeecc",
      "tree": "e34e0daee3cc0b19914a27d6f7f284b1fc22aa93",
      "parents": [
        "89081d17f7bb81d89fa1aa9b70f821c5cf4d39e9"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Fri Jul 25 19:45:11 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "Better interface for hooking early initcalls\n\nAdded early initcall (pre-SMP) support, using an identical interface to\nthat of regular initcalls.  Functions called from do_pre_smp_initcalls()\ncould be converted to use this cleaner interface.\n\nThis is required by CPU hotplug, because early users have to register\nnotifiers before going SMP.  One such CPU hotplug user is the relay\ninterface with buffer-only channels, which needs to register such a\nnotifier, to be usable in early code.  This in turn is used by kmemtrace.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: Tom Zanussi \u003ctzanussi@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": "3ae4eed34be0177a8e003411a84e4ee212adbced",
      "tree": "dc73a9e0b884c35d996cd66dca0fc8a7a06d43df",
      "parents": [
        "4ecb90090c84210a8bd2a9d7a5906e616735873c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 01:48:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:45 2008 -0700"
      },
      "message": "proper pid{hash,map}_init() prototypes\n\nThis patch adds proper prototypes for pid{hash,map}_init() in\ninclude/linux/pid_namespace.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "7f9dce38378f0a4a298e885553d6bb7121376376",
      "tree": "5bfd688c9f356f7216bbc3cef3b4c10153de334b",
      "parents": [
        "26dcce0fabbef75ae426461edf21b5030bad60f3",
        "ba42059fbd0aa1ac91b582412b5fedb1258f241f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 23 19:36:53 2008 -0700"
      },
      "message": "Merge branch \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched/for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: hrtick_enabled() should use cpu_active()\n  sched, x86: clean up hrtick implementation\n  sched: fix build error, provide partition_sched_domains() unconditionally\n  sched: fix warning in inc_rt_tasks() to not declare variable \u0027rq\u0027 if it\u0027s not needed\n  cpu hotplug: Make cpu_active_map synchronization dependency clear\n  cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n  sched: rework of \"prioritize non-migratable tasks over migratable ones\"\n  sched: reduce stack size in isolated_cpu_setup()\n  Revert parts of \"ftrace: do not trace scheduler functions\"\n\nFixed up conflicts in include/asm-x86/thread_info.h (due to the\nTIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and\nkernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()\nintroduction).\n"
    },
    {
      "commit": "fb6624ebd912e3d6907ca6490248e73368223da9",
      "tree": "5b65886c761a444fe115e96d7db04fd611816477",
      "parents": [
        "18c993629a5a5938a032f04a698d15122550593d"
      ],
      "author": {
        "name": "Geert Uytterhoeven",
        "email": "geert@linux-m68k.org",
        "time": "Thu Jul 17 21:16:36 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 20 17:24:40 2008 -0700"
      },
      "message": "initrd: Fix virtual/physical mix-up in overwrite test\n\nOn recent kernels, I get the following error when using an initrd:\n\n| initrd overwritten (0x00b78000 \u003c 0x07668000) - disabling it.\n\nMy Amiga 4000 has 12 MiB of RAM at physical address 0x07400000 (virtual\n0x00000000).\nThe initrd is located at the end of RAM: 0x00b78000 - 0x00c00000 (virtual).\nThe overwrite test compares the (virtual) initrd location to the (physical)\nfirst available memory location, which fails.\n\nThis patch converts initrd_start to a page frame number, so it can safely be\ncompared with min_low_pfn.\n\nBefore the introduction of discontiguous memory support on m68k\n(12d810c1b8c2b913d48e629e2b5c01d105029839), min_low_pfn was just left\nuntouched by the m68k-specific code (zero, I guess), and everything worked\nfine.\n\nSigned-off-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e761b7725234276a802322549cee5255305a0930",
      "tree": "27b351a7d5fc9a93590e0effce1c5adb1bfcebc0",
      "parents": [
        "7ebefa8ceefed44cc321be70afc54a585a68ac0b"
      ],
      "author": {
        "name": "Max Krasnyansky",
        "email": "maxk@qualcomm.com",
        "time": "Tue Jul 15 04:43:49 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 18 13:22:25 2008 +0200"
      },
      "message": "cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)\n\nThis is based on Linus\u0027 idea of creating cpu_active_map that prevents\nscheduler load balancer from migrating tasks to the cpu that is going\ndown.\n\nIt allows us to simplify domain management code and avoid unecessary\ndomain rebuilds during cpu hotplug event handling.\n\nPlease ignore the cpusets part for now. It needs some more work in order\nto avoid crazy lock nesting. Although I did simplfy and unify domain\nreinitialization logic. We now simply call partition_sched_domains() in\nall the cases. This means that we\u0027re using exact same code paths as in\ncpusets case and hence the test below cover cpusets too.\nCpuset changes to make rebuild_sched_domains() callable from various\ncontexts are in the separate patch (right next after this one).\n\nThis not only boots but also easily handles\n\twhile true; do make clean; make -j 8; done\nand\n\twhile true; do on-off-cpu 1; done\nat the same time.\n(on-off-cpu 1 simple does echo 0/1 \u003e /sys/.../cpu1/online thing).\n\nSuprisingly the box (dual-core Core2) is quite usable. In fact I\u0027m typing\nthis on right now in gnome-terminal and things are moving just fine.\n\nAlso this is running with most of the debug features enabled (lockdep,\nmutex, etc) no BUG_ONs or lockdep complaints so far.\n\nI believe I addressed all of the Dmitry\u0027s comments for original Linus\u0027\nversion. I changed both fair and rt balancer to mask out non-active cpus.\nAnd replaced cpu_is_offline() with !cpu_active() in the main scheduler\ncode where it made sense (to me).\n\nSigned-off-by: Max Krasnyanskiy \u003cmaxk@qualcomm.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Gregory Haskins \u003cghaskins@novell.com\u003e\nCc: dmitry.adamushko@gmail.com\nCc: pj@sgi.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "59190f4213462f191fc0d22d39b1cf18ea39ca39",
      "tree": "8f30fa62ae7d8948e7974dfecede3d6a41ae3ec3",
      "parents": [
        "64fd52a52077d3cd5a778ca031c0aaecf885eaa6",
        "f6f88e9bfb6ced9871ed65ebe85c371de3c9e4be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 14:02:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 15 14:12:03 2008 -0700"
      },
      "message": "Merge branch \u0027generic-ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027generic-ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (22 commits)\n  generic-ipi: more merge fallout\n  generic-ipi: merge fix\n  x86, visws: use mach-default/entry_arch.h\n  x86, visws: fix generic-ipi build\n  generic-ipi: fixlet\n  generic-ipi: fix s390 build bug\n  generic-ipi: fix linux-next tree build failure\n  fix: \"smp_call_function: get rid of the unused nonatomic/retry argument\"\n  fix: \"smp_call_function: get rid of the unused nonatomic/retry argument\"\n  fix \"smp_call_function: get rid of the unused nonatomic/retry argument\"\n  on_each_cpu(): kill unused \u0027retry\u0027 parameter\n  smp_call_function: get rid of the unused nonatomic/retry argument\n  sh: convert to generic helpers for IPI function calls\n  parisc: convert to generic helpers for IPI function calls\n  mips: convert to generic helpers for IPI function calls\n  m32r: convert to generic helpers for IPI function calls\n  arm: convert to generic helpers for IPI function calls\n  alpha: convert to generic helpers for IPI function calls\n  ia64: convert to generic helpers for IPI function calls\n  powerpc: convert to generic helpers for IPI function calls\n  ...\n\nFix trivial conflicts due to rcu updates in kernel/rcupdate.c manually\n"
    },
    {
      "commit": "3d4422332711ef48ef0f132f1fcbfcbd56c7f3d1",
      "tree": "9fd3cfa9825e8cb0b7e08dfae85cc9a722442849",
      "parents": [
        "543cf4cb3fe6f6cae3651ba918b9c56200b257d0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 26 11:21:34 2008 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jun 26 11:21:34 2008 +0200"
      },
      "message": "Add generic helpers for arch IPI function calls\n\nThis adds kernel/smp.c which contains helpers for IPI function calls. In\naddition to supporting the existing smp_call_function() in a more efficient\nmanner, it also adds a more scalable variant called smp_call_function_single()\nfor calling a given function on a single CPU only.\n\nThe core of this is based on the x86-64 patch from Nick Piggin, lots of\nchanges since then. \"Alan D. Brunelle\" \u003cAlan.Brunelle@hp.com\u003e has\ncontributed lots of fixes and suggestions as well. Also thanks to\nPaul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e for reviewing RCU usage\nand getting rid of the data allocation fallback deadlock.\n\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "4446a36ff8c74ac3b32feb009b651048e129c6af",
      "tree": "4ae726073e02281c2de51ed394ba2a812fd55c9b",
      "parents": [
        "8b09dee67f484e9b42114b1a1f068e080fd7aa56"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Mon May 12 21:21:05 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 19 10:01:36 2008 +0200"
      },
      "message": "rcu: add call_rcu_sched()\n\nFourth cut of patch to provide the call_rcu_sched().  This is again to\nsynchronize_sched() as call_rcu() is to synchronize_rcu().\n\nShould be fine for experimental and -rt use, but not ready for inclusion.\nWith some luck, I will be able to tell Andrew to come out of hiding on\nthe next round.\n\nPasses multi-day rcutorture sessions with concurrent CPU hotplugging.\n\nFixes since the first version include a bug that could result in\nindefinite blocking (spotted by Gautham Shenoy), better resiliency\nagainst CPU-hotplug operations, and other minor fixes.\n\nFixes since the second version include reworking grace-period detection\nto avoid deadlocks that could happen when running concurrently with\nCPU hotplug, adding Mathieu\u0027s fix to avoid the softlockup messages,\nas well as Mathieu\u0027s fix to allow use earlier in boot.\n\nFixes since the third version include a wrong-CPU bug spotted by\nAndrew, getting rid of the obsolete synchronize_kernel API that somehow\nsnuck back in, merging spin_unlock() and local_irq_restore() in a\nfew places, commenting the code that checks for quiescent states based\non interrupting from user-mode execution or the idle loop, removing\nsome inline attributes, and some code-style changes.\n\nKnown/suspected shortcomings:\n\no\tI still do not entirely trust the sleep/wakeup logic.  Next step\n\twill be to use a private snapshot of the CPU online mask in\n\trcu_sched_grace_period() -- if the CPU wasn\u0027t there at the start\n\tof the grace period, we don\u0027t need to hear from it.  And the\n\tbit about accounting for changes in online CPUs inside of\n\trcu_sched_grace_period() is ugly anyway.\n\no\tIt might be good for rcu_sched_grace_period() to invoke\n\tresched_cpu() when a given CPU wasn\u0027t responding quickly,\n\tbut resched_cpu() is declared static...\n\nThis patch also fixes a long-standing bug in the earlier preemptable-RCU\nimplementation of synchronize_rcu() that could result in loss of\nconcurrent external changes to a task\u0027s CPU affinity mask.  I still cannot\nremember who reported this...\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a76bfd0da2321ed0a978ccbef192856ce7ed687a",
      "tree": "eb9e9b10f8b500bdf55831e780a2658a2486b715",
      "parents": [
        "e0df154f45e40677781e971daec6c430cb34716b"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Thu May 15 13:52:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 15 18:20:06 2008 -0700"
      },
      "message": "initcalls: Fix m68k build and possible buffer overflow\n\nThis patch fixes a build bug on m68k - gcc decides to emit a call to the\nstrlen library function, which we don\u0027t implement.\n\nMore importantly - my previous patch \"init: don\u0027t lose initcall return\nvalues\" (commit e662e1cfd434aa234b72fbc781f1d70211cb785b) had introduced\npotential buffer overflow by wrong calculation of string accumulator\nsize.\n\nUse strlcat() instead, fixing both bugs.\n\nMany thanks Andreas Schwab and Geert Uytterhoeven for helping\nto catch and fix the bug.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e0df154f45e40677781e971daec6c430cb34716b",
      "tree": "079e0dad9f21a780f50aaa9c5878721a9a7ed0e0",
      "parents": [
        "a442ac512f36981182e66a427ad05f449ff6593b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 15 18:14:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 15 18:14:01 2008 -0700"
      },
      "message": "Split up \u0027do_initcalls()\u0027 into two simpler functions\n\nOne function to just loop over the entries, one function to actually do\nthe call and the associated debugging code.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a442ac512f36981182e66a427ad05f449ff6593b",
      "tree": "8a99f2f4cb7f66e816163068c0c2c709c1852ac6",
      "parents": [
        "7371fd11a6e2aed99895db4f100940fa5022f7fe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 15 17:50:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 15 17:50:37 2008 -0700"
      },
      "message": "Clean up \u0027print_fn_descriptor_symbol()\u0027 types\n\nEverybody wants to pass it a function pointer, and in fact, that is what\nyou _must_ pass it for it to make sense (since it knows that ia64 and\nppc64 use descriptors for function pointers and fetches the actual\naddress from there).\n\nSo don\u0027t make the argument be a \u0027unsigned long\u0027 and force everybody to\nadd a cast.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e662e1cfd434aa234b72fbc781f1d70211cb785b",
      "tree": "f733af13c469b185ba4b4eb192f2834936200e9b",
      "parents": [
        "67d7671036e6cae24ded112e079926d55ffe9580"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Mon May 12 14:02:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 13 08:02:25 2008 -0700"
      },
      "message": "init: don\u0027t lose initcall return values\n\nThere is an ability to lose an initcall return value if it happened with irq\ndisabled or imbalanced preemption (and if we debug initcall).\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@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": "3e51f33fcc7f55e6df25d15b55ed10c8b4da84cd",
      "tree": "3752f9ea8e014ec40e95a1b197b0a3d18e1056a8",
      "parents": [
        "a5574cf65b5f03ce9ade3918764fe22e5e2371e3"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Sat May 03 18:29:28 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 05 23:56:18 2008 +0200"
      },
      "message": "sched: add optional support for CONFIG_HAVE_UNSTABLE_SCHED_CLOCK\n\nthis replaces the rq-\u003eclock stuff (and possibly cpu_clock()).\n\n - architectures that have an \u0027imperfect\u0027 hardware clock can set\n   CONFIG_HAVE_UNSTABLE_SCHED_CLOCK\n\n - the \u0027jiffie\u0027 window might be superfulous when we update tick_gtod\n   before the __update_sched_clock() call in sched_clock_tick()\n\n - cpu_clock() might be implemented as:\n\n     sched_clock_cpu(smp_processor_id())\n\n   if the accuracy proves good enough - how far can TSC drift in a\n   single jiffie when considering the filtering and idle hooks?\n\n[ mingo@elte.hu: various fixes and cleanups ]\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3ac7fe5a4aab409bd5674d0b070bce97f9d20872",
      "tree": "5e12e8864bb8737695e4eb9c63970602d5f69e73",
      "parents": [
        "30327acf7846c5eb97c8e31c78317a2918d3e515"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Apr 30 00:55:01 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:53 2008 -0700"
      },
      "message": "infrastructure to debug (dynamic) objects\n\nWe can see an ever repeating problem pattern with objects of any kind in the\nkernel:\n\n1) freeing of active objects\n2) reinitialization of active objects\n\nBoth problems can be hard to debug because the crash happens at a point where\nwe have no chance to decode the root cause anymore.  One problem spot are\nkernel timers, where the detection of the problem often happens in interrupt\ncontext and usually causes the machine to panic.\n\nWhile working on a timer related bug report I had to hack specialized code\ninto the timer subsystem to get a reasonable hint for the root cause.  This\ndebug hack was fine for temporary use, but far from a mergeable solution due\nto the intrusiveness into the timer code.\n\nThe code further lacked the ability to detect and report the root cause\ninstantly and keep the system operational.\n\nKeeping the system operational is important to get hold of the debug\ninformation without special debugging aids like serial consoles and special\nknowledge of the bug reporter.\n\nThe problems described above are not restricted to timers, but timers tend to\nexpose it usually in a full system crash.  Other objects are less explosive,\nbut the symptoms caused by such mistakes can be even harder to debug.\n\nInstead of creating specialized debugging code for the timer subsystem a\ngeneric infrastructure is created which allows developers to verify their code\nand provides an easy to enable debug facility for users in case of trouble.\n\nThe debugobjects core code keeps track of operations on static and dynamic\nobjects by inserting them into a hashed list and sanity checking them on\nobject operations and provides additional checks whenever kernel memory is\nfreed.\n\nThe tracked object operations are:\n- initializing an object\n- adding an object to a subsystem list\n- deleting an object from a subsystem list\n\nEach operation is sanity checked before the operation is executed and the\nsubsystem specific code can provide a fixup function which allows to prevent\nthe damage of the operation.  When the sanity check triggers a warning message\nand a stack trace is printed.\n\nThe list of operations can be extended if the need arises.  For now it\u0027s\nlimited to the requirements of the first user (timers).\n\nThe core code enqueues the objects into hash buckets.  The hash index is\ngenerated from the address of the object to simplify the lookup for the check\non kfree/vfree.  Each bucket has it\u0027s own spinlock to avoid contention on a\nglobal lock.\n\nThe debug code can be compiled in without being active.  The runtime overhead\nis minimal and could be optimized by asm alternatives.  A kernel command line\noption enables the debugging code.\n\nThanks to Ingo Molnar for review, suggestions and cleanup patches.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5cd204550b1a006f2b0c986b0e0f53220ebfd391",
      "tree": "ee0f5e042072d4d2f4a3c6cd6e3a8b60676868ae",
      "parents": [
        "cb41d6d068716b2b3666925da34d3d7e658bf4f3"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Apr 30 00:54:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:48 2008 -0700"
      },
      "message": "Deprecate find_task_by_pid()\n\nThere are some places that are known to operate on tasks\u0027\nglobal pids only:\n\n* the rest_init() call (called on boot)\n* the kgdb\u0027s getthread\n* the create_kthread() (since the kthread is run in init ns)\n\nSo use the find_task_by_pid_ns(..., \u0026init_pid_ns) there\nand schedule the find_task_by_pid for removal.\n\n[sukadev@us.ibm.com: Fix warning in kernel/pid.c]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.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": "fae5fa44f1fd079ffbed8e0add929dd7bbd1347f",
      "tree": "8990ac958d29733cb61733ae69265472f5e1d13c",
      "parents": [
        "193191035ad6268db9f561e81e3474b8be89a5ba"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Apr 30 00:53:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 30 08:29:37 2008 -0700"
      },
      "message": "signals: fix /sbin/init protection from unwanted signals\n\nThe global init has a lot of long standing problems with the unhandled fatal\nsignals.\n\n\t- The \"is_global_init(current)\" check in get_signal_to_deliver()\n\t  protects only the main thread. Sub-thread can dequee the fatal\n\t  signal and shutdown the whole thread group except the main thread.\n\t  If it dequeues SIGSTOP /sbin/init will be stopped, this is not\n\t  right too. Note that we can\u0027t use is_global_init(-\u003egroup_leader),\n\t  this breaks exec and this can\u0027t solve other problems we have.\n\n\t- Even if afterwards ignored, the fatal signals sets SIGNAL_GROUP_EXIT\n\t  on delivery. This breaks exec, has other bad implications, and this\n\t  is just wrong.\n\nIntroduce the new SIGNAL_UNKILLABLE flag to fix these problems.  It also helps\nto solve some other problems addressed by the subsequent patches.\n\nCurrently we use this flag for the global init only, but it could also be used\nby kthreads and (perhaps) by the sub-namespace inits.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Roland McGrath \u003croland@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": "199f0ca514f9c17668eec4f935c4ba24cd789f85",
      "tree": "54406e3eb5be58e3350d8f60a64ac78ec3990f97",
      "parents": [
        "801678c5a3b4c79236970bcca27c733f5559e0d1"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Apr 29 01:03:13 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:25 2008 -0700"
      },
      "message": "idr: create idr_layer_cache at boot time\n\nAvoid a possible kmem_cache_create() failure by creating idr_layer_cache\nunconditionary at boot time rather than creating it on-demand when idr_init()\nis called the first time.\n\nThis change also enables us to eliminate the check every time idr_init() is\ncalled.\n\n[akpm@linux-foundation.org: rename init_id_cache() to idr_init_cache()]\n[akpm@linux-foundation.org: fix alpha build]\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@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": "cf475ad28ac35cc9ba612d67158f29b73b38b05d",
      "tree": "2c7cd568d00357bd42643ea602884e731cc24f26",
      "parents": [
        "29486df325e1fe6e1764afcb19e3370804c2b002"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Apr 29 01:00:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: add an owner to the mm_struct\n\nRemove the mem_cgroup member from mm_struct and instead adds an owner.\n\nThis approach was suggested by Paul Menage.  The advantage of this approach\nis that, once the mm-\u003eowner is known, using the subsystem id, the cgroup\ncan be determined.  It also allows several control groups that are\nvirtually grouped by mm_struct, to exist independent of the memory\ncontroller i.e., without adding mem_cgroup\u0027s for each controller, to\nmm_struct.\n\nA new config option CONFIG_MM_OWNER is added and the memory resource\ncontroller selects this config option.\n\nThis patch also adds cgroup callbacks to notify subsystems when mm-\u003eowner\nchanges.  The mm_cgroup_changed callback is called with the task_lock() of\nthe new task held and is called just prior to changing the mm-\u003eowner.\n\nI am indebted to Paul Menage for the several reviews of this patchset and\nhelping me make it lighter and simpler.\n\nThis patch was tested on a powerpc box, it was compiled with both the\nMM_OWNER config turned on and off.\n\nAfter the thread group leader exits, it\u0027s moved to init_css_state by\ncgroup_exit(), thus all future charges from runnings threads would be\nredirected to the init_css_set\u0027s subsystem.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e,\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "626adeb6675fdf60e9d8c6212776b0b0acf0e376",
      "tree": "e526309273a2ee93c9e1546ce69c8c2cd5100606",
      "parents": [
        "22caa0417db3b1d3dfafc9b7c0bf31baf8d667e7"
      ],
      "author": {
        "name": "Bjorn Helgaas",
        "email": "bjorn.helgaas@hp.com",
        "time": "Tue Apr 29 00:59:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:02 2008 -0700"
      },
      "message": "Simplify initcall_debug output\n\nprint_fn_descriptor_symbol() prints the address if we don\u0027t have a symbol, so\nno need to print both.\n\nAlso, combine printing return value with elapsed time.  Changes this:\n\n  Calling initcall 0xc05b7a70: pci_mmcfg_late_insert_resources+0x0/0x50()\n  initcall 0xc05b7a70: pci_mmcfg_late_insert_resources+0x0/0x50() returned 1.\n  initcall 0xc05b7a70 ran for 0 msecs: pci_mmcfg_late_insert_resources+0x0/0x50()\n  initcall at 0xc05b7a70: pci_mmcfg_late_insert_resources+0x0/0x50(): returned with error code 1\n\nto this:\n\n  calling  pci_mmcfg_late_insert_resources+0x0/0x50()\n  initcall pci_mmcfg_late_insert_resources+0x0/0x50() returned 1 after 0 msecs\n  initcall pci_mmcfg_late_insert_resources+0x0/0x50() returned with error code 1\n\nSigned-off-by: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "839ad62e75ee1968438d1b72261304cd47fc961e",
      "tree": "5494458c9a17910488701dce3ff5a8647b49ea63",
      "parents": [
        "f6a616800e68b61807d0f7bb0d5dc70665ef8046"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Apr 18 16:56:18 2008 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Apr 24 20:57:33 2008 +1000"
      },
      "message": "[POWERPC] Use __weak macro for smp_setup_processor_id\n\nUse the __weak macro instead of the longer __attribute__ ((weak)) form\nin one place in init/main.c.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n--\n\n init/main.c |    2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "8c9843e57a7d9d7a090d6467a0f1f3afb8031527",
      "tree": "5efdab577853bc92e3c980fc97aba74be58c1efb",
      "parents": [
        "1d32e21889b96e594e8b63b193bf7d2a51ab93ec"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Fri Apr 18 16:56:15 2008 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Apr 24 20:57:33 2008 +1000"
      },
      "message": "[POWERPC] Add thread_info_cache_init() weak hook\n\nSome architectures need to maintain a kmem cache for thread info\nstructures.  The next commit adds that to powerpc to fix an alignment\nproblem.\n\nThere is no good arch callback to use to initialize that cache\nthat I can find, so this adds a new one in the form of a weak\nfunction whose default is empty.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "e0982e90cd1ecf59818b137386b7f63debded9cc",
      "tree": "3cdbfa8a69dca4a9c9596d61bffa32f1b676f09d",
      "parents": [
        "4bdbaad33d0f4d0e9818a38a825f5b75c0296a28"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Mar 26 14:23:48 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "init: move setup of nr_cpu_ids to as early as possible\n\nMove the setting of nr_cpu_ids from sched_init() to start_kernel()\nso that it\u0027s available as early as possible.\n\nNote that an arch has the option of setting it even earlier if need be,\nbut it should not result in a different value than the setup_nr_cpu_ids()\nfunction.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "321a8e9dcb714f3c350ba55e41ed447bf3f05fac",
      "tree": "e75ca8ebcee0954dc6e313864ebba9f72e984fc8",
      "parents": [
        "7c16ec585c558960a508ccf9a08fcb9ed49b3754"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Fri Apr 04 18:11:02 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Apr 19 19:44:59 2008 +0200"
      },
      "message": "cpumask: add CPU_MASK_ALL_PTR macro\n\n  * Add a static cpumask_t variable \"CPU_MASK_ALL_PTR\" to use as\n    a pointer reference to CPU_MASK_ALL.  This reduces where possible\n    the instances where CPU_MASK_ALL allocates and fills a large\n    array on the stack.  Used only if NR_CPUS \u003e BITS_PER_LONG.\n\n  * Change init/main.c to use new set_cpus_allowed_ptr().\n\nDepends on:\n\t[sched-devel]: sched: add new set_cpus_allowed_ptr function\n\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a9e0d685553af76cb6ae2af93cca4913e7fcd47",
      "tree": "c4f041b0f7fa28db46841336135d493d587435ea",
      "parents": [
        "ce636452343af0522d2666157dab9c2096f4f996"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 15 11:53:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 15 11:58:04 2008 -0700"
      },
      "message": "ACPI: Remove ACPI_CUSTOM_DSDT_INITRD option\n\nThis essentially reverts commit 71fc47a9adf8ee89e5c96a47222915c5485ac437\n(\"ACPI: basic initramfs DSDT override support\"), because the code simply\nisn\u0027t ready.\n\nIt did ugly things to the init sequence to populate the rootfs image\nearly, but that just ended up showing other problems with the whole\napproach.  The fact is, the VFS layer simply isn\u0027t initialized this\nearly, and the relevant ACPI code should either run much later, or this\nshouldn\u0027t be done at all.\n\nFor 2.6.25, we\u0027ll just pick the latter option.  We can revisit this\nconcept later if necessary.\n\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Tilman Schmidt \u003ctilman@imap.cc\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Markus Gaugusch \u003cdsdt@gaugusch.at\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9d4fcfe515d7cece1b26decd75f5d41544a287b",
      "tree": "d5c7b437198584d389a481f150f5335db0c4c09c",
      "parents": [
        "d31472b6d4f799a68d877f69b2f843eec5875472"
      ],
      "author": {
        "name": "Alex Riesen",
        "email": "raa.lkml@gmail.com",
        "time": "Tue Mar 04 14:28:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:10 2008 -0800"
      },
      "message": "Fix \"Malformed early option \u0027loglevel\u0027\"\n\nKeith Mannthey said:\n\n  The parameter hotadd_percent is setup right but there is a \"Malformed\n  early option \u0027numa\u0027\" message.\n\nRusty Russell said:\n\n  This happens when the function registered with early_param() returns\n  non-zero.  __setup() functions return 1 if OK, module_param() and\n  early_param() return 0 or a -ve error code.\n\nFor instance:\n\nLinux version 2.6.25-rc3-t (raa@steel) (gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)) #22 SMP PREEMPT Tue Feb 26\nBIOS-provided physical RAM map:\n BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)\n BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)\n BIOS-e820: 0000000000100000 - 000000003fff0000 (usable)\n BIOS-e820: 000000003fff0000 - 000000003fff3000 (ACPI NVS)\n BIOS-e820: 000000003fff3000 - 0000000040000000 (ACPI data)\n BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)\nMalformed early option \u0027loglevel\u0027\n127MB HIGHMEM available.\n896MB LOWMEM available.\n\nCommand line:\n\nBOOT_IMAGE\u003d2.6.25-t ro root\u003d809 ro console\u003dttyS0,57600n8 console\u003dtty0 loglevel\u003d5\n\nAcked-by: Yinghai Lu \u003cyhlu.kernel@gmai.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Keith Mannthey \u003ckmannth@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": "a03c2a48e02aacaaea211c94691b729be357e047",
      "tree": "733e1b071c55900a2a88bdf2841a8cd8ee28d19f",
      "parents": [
        "166124fde978b5a6c4412fb295c7f39711beb1b0"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 09 23:24:09 2008 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Feb 09 23:24:09 2008 +0100"
      },
      "message": "x86: DEBUG_PAGEALLOC: enable after mem_init()\n\nDEBUG_PAGEALLOC must not be enabled before mem_init(). Before this\npoint there is nothing to allocate.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f6f21c81464ce52dbeec921bdc2e8b288c491920",
      "tree": "926a0fdcf513218bcbfc6f021e03edc36cff58fa",
      "parents": [
        "06b2a76d25d3cfbd14680021c1d356c91be6904e"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "Yinghai.Lu@Sun.COM",
        "time": "Fri Feb 08 04:21:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:42 2008 -0800"
      },
      "message": "Convert loglevel-related kernel boot parameters to early_param\n\nSo we can use them for the early console like console\u003duart8250 or\nearlycon\u003duart8250 or early_printk\n\nSigned-off-by: Yinghai Lu \u003cyinghai.lu@sun.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "430c623121ea88ca80595c99fdc63b7f8a803ae5",
      "tree": "8ada2d8287d07cabd64cc3614a6a643623046e5c",
      "parents": [
        "297bd42b15daed02453ff59ce6d31216a58b0398"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "start the global /sbin/init with 0,0 special pids\n\nAs Eric pointed out, there is no problem with init starting with sid \u003d\u003d pgid\n\u003d\u003d 0, and this was historical linux behavior changed in 2.6.18.\n\nRemove kernel_init()-\u003e__set_special_pids(), this is unneeded and complicates\nthe rules for sys_setsid().\n\nThis change and the previous change in daemonize() mean that /sbin/init does\nnot need the special \"session !\u003d 1\" hack in sys_setsid() any longer. We can\u0027t\nremove this check yet, we should cleanup copy_process(CLONE_NEWPID) first, so\nupdate the comment only.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8520d7c7f8611216e3b270becec95bb35b6899d4",
      "tree": "77001e6830bb415590067e9d4be24cd8bdd36219",
      "parents": [
        "e4cc0a9c876d4d4eadaef97a2bff4a199946d202"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Feb 08 04:19:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Feb 08 09:22:27 2008 -0800"
      },
      "message": "teach set_special_pids() to use struct pid\n\nChange set_special_pids() to work with struct pid, not pid_t from global name\nspace. This again speedups and imho cleanups the code, also a preparation for\nthe next patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71fc47a9adf8ee89e5c96a47222915c5485ac437",
      "tree": "a2eaefbb703dde933a9726eae7e6399761d40136",
      "parents": [
        "488b5ec871191359b9b79262a3d48456dae7ea5f"
      ],
      "author": {
        "name": "Markus Gaugusch",
        "email": "dsdt@gaugusch.at",
        "time": "Tue Feb 05 00:04:06 2008 +0100"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Feb 06 22:07:41 2008 -0500"
      },
      "message": "ACPI: basic initramfs DSDT override support\n\nThe basics of DSDT from initramfs. In case this option is selected,\npopulate_rootfs() is called a bit earlier to have the initramfs content\navailable during ACPI initialization.\n\nThis is a very similar path to the one available at\nhttp://gaugusch.at/kernel.shtml but with some update in the\ndocumentation, default set to No and the change of populate_rootfs() the\n\"Jeff Mahony way\" (which avoids reading the initramfs twice).\n\nSigned-off-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nSigned-off-by: Eric Piel \u003ceric.piel@tremplin-utc.net\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a1c9eea9e56a7196c6891f6426b799c4598b38e2",
      "tree": "30beda8a7c7f45e77f96d0a49008e84e227a7ae6",
      "parents": [
        "ce88cc5ed80de746f5bd2d8242291c87e7b87f63"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Wed Feb 06 01:36:44 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Feb 06 10:41:02 2008 -0800"
      },
      "message": "proper prototype for signals_init()\n\nAdd a proper prototype for signals_init() in include/linux/signal.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@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": "12d6f21eacc21d84a809829543f2fe45c7e37319",
      "tree": "6985f2370ad238fb2a568547a5049751d7c95a69",
      "parents": [
        "9a3dc7804e9856668caef41efc54179e61ffccc0"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:58 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:58 2008 +0100"
      },
      "message": "x86: do not PSE on CONFIG_DEBUG_PAGEALLOC\u003dy\n\nget more testing of the c_p_a() code done by not turning off\nPSE on DEBUG_PAGEALLOC.\n\nthis simplifies the early pagetable setup code, and tests\nthe largepage-splitup code quite heavily.\n\nIn the end, all the largepages will be split up pretty quickly,\nso there\u0027s no difference to how DEBUG_PAGEALLOC worked before.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "dd5af90a7f3d79e04b7eace9a98644dbf2038f4d",
      "tree": "22327ba385c830b7be391c76821dc5ec26863f2e",
      "parents": [
        "3212bff370c2f22e4987c6679ba485654cefb178"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:32 2008 +0100"
      },
      "message": "x86/non-x86: percpu, node ids, apic ids x86.git fixup\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "ca74a6f84e68b44867022f4a4f3ec17c087c864e",
      "tree": "a5e84b251b1574b09288fb2636b4e4ea088ae70e",
      "parents": [
        "751752789162fde69474edfa15935d0a77c0bc17"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jan 30 13:33:17 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:33:17 2008 +0100"
      },
      "message": "x86: optimize lock prefix switching to run less frequently\n\nOn VMs implemented using JITs that cache translated code changing the lock\nprefixes is a quite costly operation that forces the JIT to throw away and\nretranslate a lot of code.\n\nPreviously a SMP kernel would rewrite the locks once for each CPU which\nis quite unnecessary. This patch changes the code to never switch at boot in\n the normal case (SMP kernel booting with \u003e1 CPU) or only once for SMP kernel\non UP.\n\nThis makes a significant difference in boot up performance on AMD SimNow!\nAlso I expect it to be a little faster on native systems too because a smp\nswitch does a lot of text_poke()s which each synchronize the pipeline.\n\nv1-\u003ev2: Rename max_cpus\nv1-\u003ev2: Fix off by one in UP check (Thomas Gleixner)\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b32ef636a59aad12f9f9b5dc34c93222842c58ba",
      "tree": "6857cac9a741be756608793ab1b481bfa32d2c2e",
      "parents": [
        "cf8fa920cb4271f17e0265c863d64bea1b31941a"
      ],
      "author": {
        "name": "travis@sgi.com",
        "email": "travis@sgi.com",
        "time": "Wed Jan 30 13:32:51 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jan 30 13:32:51 2008 +0100"
      },
      "message": "percpu: use a kconfig variable to signal arch specific percpu setup\n\nThe use of the __GENERIC_PERCPU is a bit problematic since arches\nmay want to run their own percpu setup while using the generic\npercpu definitions. Replace it through a kconfig variable.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d221938c049f4845da13c8593132595a6b9222a8",
      "tree": "8eae6c7095a3d7d31d7435befc30019540a4d13e",
      "parents": [
        "6b2d7700266b9402e12824e11e0099ae6a4a6a79"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Fri Jan 25 21:08:01 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jan 25 21:08:01 2008 +0100"
      },
      "message": "cpu-hotplug: refcount based cpu hotplug\n\nThis patch implements a Refcount + Waitqueue based model for\ncpu-hotplug.\n\nNow, a thread which wants to prevent cpu-hotplug, will bump up a global\nrefcount and the thread which wants to perform a cpu-hotplug operation\nwill block till the global refcount goes to zero.\n\nThe readers, if any, during an ongoing cpu-hotplug operation are blocked\nuntil the cpu-hotplug operation is over.\n\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e [For !CONFIG_HOTPLUG_CPU ]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e6fe6649b4ec11aa3075e394b4d8743eebe1f64c",
      "tree": "e04e8b2206dfad58e784ea6e4550f98f318aff0b",
      "parents": [
        "b82d9fdd848abfbe7263a4ecd9bbb55e575100a6"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 09 22:39:39 2007 +0100"
      },
      "message": "sched: proper prototype for kernel/sched.c:migration_init()\n\nThis patch adds a proper prototype for migration_init() in\ninclude/linux/sched.h\n\nSince there\u0027s no point in always returning 0 to a caller that doesn\u0027t check\nthe return value it also changes the function to return void.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "211fee8a82893062f45a7f2e4e50b245bc577c0c",
      "tree": "8eb8b75e6a6996080efea5b6ac6c11e30dada6d8",
      "parents": [
        "183ff22bb6bd8188c904ebfb479656ae52230b72"
      ],
      "author": {
        "name": "Simon Arlott",
        "email": "simon@fire.lp0.eu",
        "time": "Sat Oct 20 01:28:29 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Sat Oct 20 01:28:29 2007 +0200"
      },
      "message": "spelling fixes: init/\n\nSpelling fix in init/.\n\nSigned-off-by: Simon Arlott \u003csimon@fire.lp0.eu\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "d8af7c6ab0bc4e2404f290801982b40223a97408",
      "tree": "2d46f901123bb0b6585d662ee482f1592325df80",
      "parents": [
        "b7076156af7a87799c0e425db5aec8378be1c3ea"
      ],
      "author": {
        "name": "Robert P. J. Day",
        "email": "rpjday@mindspring.com",
        "time": "Fri Oct 19 23:13:32 2007 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Oct 19 23:13:32 2007 +0200"
      },
      "message": "Drop the superfluous test for an old version of gcc.\n\nThe header file \u003clinux/compiler.h\u003e already enforces a suitably recent\nversion of gcc, so there\u0027s no point checking for that again.\n\nSigned-off-by: Robert P. J. Day \u003crpjday@mindspring.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\n"
    },
    {
      "commit": "ddbcc7e8e50aefe467c01cac3dec71f118cd8ac2",
      "tree": "0881a031e669582f819d572339e955b04abfc3d2",
      "parents": [
        "55a230aae650157720becc09cadb7d10efbf5013"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Oct 18 23:39:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Oct 19 11:53:36 2007 -0700"
      },
      "message": "Task Control Groups: basic task cgroup framework\n\nGeneric Process Control Groups\n--------------------------\n\nThere have recently been various proposals floating around for\nresource management/accounting and other task grouping subsystems in\nthe kernel, including ResGroups, User BeanCounters, NSProxy\ncgroups, and others.  These all need the basic abstraction of being\nable to group together multiple processes in an aggregate, in order to\ntrack/limit the resources permitted to those processes, or control\nother behaviour of the processes, and all implement this grouping in\ndifferent ways.\n\nThis patchset provides a framework for tracking and grouping processes\ninto arbitrary \"cgroups\" and assigning arbitrary state to those\ngroupings, in order to control the behaviour of the cgroup as an\naggregate.\n\nThe intention is that the various resource management and\nvirtualization/cgroup efforts can also become task cgroup\nclients, with the result that:\n\n- the userspace APIs are (somewhat) normalised\n\n- it\u0027s easier to test e.g. the ResGroups CPU controller in\n conjunction with the BeanCounters memory controller, or use either of\nthem as the resource-control portion of a virtual server system.\n\n- the additional kernel footprint of any of the competing resource\n management systems is substantially reduced, since it doesn\u0027t need\n to provide process grouping/containment, hence improving their\n chances of getting into the kernel\n\nThis patch:\n\nAdd the main task cgroups framework - the cgroup filesystem, and the\nbasic structures for tracking membership and associating subsystem state\nobjects to tasks.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.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": "62e6f1e8bb7c48c02b8bdb3085c5f6365682149b",
      "tree": "975277fdd906c173bf48bfbe0226b80bb0e14529",
      "parents": [
        "a1c582d0720f2eff61043e90711767decf37b917"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Fri Aug 31 04:26:50 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Aug 30 21:54:31 2007 -0700"
      },
      "message": "fix maxcpus\u003d1 oops in show_stat()\n\nAlexey Dobriyan reports that maxcpus\u003d1 is still broken in 2.6.23-rc4:\nif CONFIG_HOTPLUG_CPU is not set, x86_64 bootup oopses in show_stat() -\nfor_each_possible_cpu accesses a per-cpu area which was never set up.\n\nAlexey identified commit 61ec7567db103d537329b0db9a887db570431ff4\n(ACPI: boot correctly with \"nosmp\" or \"maxcpus\u003d0\") as the origin;\nbut it\u0027s not really to blame, just exposes a bug in 2.6.23-rc1\u0027s commit\n8b3b295502444340dd0701855ac422fbf32e161d (Especially when !CONFIG_HOTPLUG_CPU,\navoid needlessy allocating resources for CPUs that can never become available).\n\nrc1\u0027s test for max_cpus \u003c 2 in start_kernel() wasn\u0027t working because\nmax_cpus was still NR_CPUS at that point: until rc4 moved the maxcpus\nparsing earlier.  Now it sets cpu_possible_map to 1 before allocating\nall possible per-cpu areas; then smp_init() expands cpu_possible_map\nto cpu_present_map (0xf in my case) later on.\n\nrc1\u0027s commit has good intentions, but expects cpu_present_map to be\nlimited by maxcpus, which is only the case on i386.  cpus_and(possible,\npossible,present) might be good, but needs an audit of cpu_present_map\nuses - there may well be assumptions that any cpu present is possible.\n\nSo stay safe for now and just revert those #ifndef CONFIG_HOTPLUG_CPU\noptimizations in rc1\u0027s commit.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@sw.ru\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "813409771731d80e6fa94199adf99f2269a4afc0",
      "tree": "d417127b47e1d1f7e8ebe1b09a11a4fa5c36fba1",
      "parents": [
        "88ede8209efd01b4a557ddd588875544954e170a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Aug 27 16:02:12 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Aug 27 10:27:48 2007 -0700"
      },
      "message": "fix maxcpus\u003dN parsing\n\nCommit 61ec7567db103d537329b0db9a887db570431ff4 (\u0027ACPI: boot correctly\nwith \"nosmp\" or \"maxcpus\u003d0\"\u0027) broke \u0027maxcpus\u003d\u0027 handling on x86[-64].\n\nmaxcpus\u003dN is now having no effect on x86_64, and freezing bootup on i386\n(because of inconsistency with the separate maxcpus parsing down in\narch/i386, I guess).  That\u0027s because early_param parsing is a little\ndifferent from __setup parsing, and needs the \"\u003d\" omitted: then it seems\nto work as the original commit intended (no mention of IO-APIC in\n/proc/interrupts when maxcpus\u003d0).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "61ec7567db103d537329b0db9a887db570431ff4",
      "tree": "7287eb4bd00c09434fc2dd0babadfd0eb7ddc832",
      "parents": [
        "28e8351ac22de25034e048c680014ad824323c65"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Aug 16 03:34:22 2007 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Tue Aug 21 00:33:35 2007 -0400"
      },
      "message": "ACPI: boot correctly with \"nosmp\" or \"maxcpus\u003d0\"\n\nIn MPS mode, \"nosmp\" and \"maxcpus\u003d0\" boot a UP kernel with IOAPIC disabled.\nHowever, in ACPI mode, these parameters didn\u0027t completely disable\nthe IO APIC initialization code and boot failed.\n\ninit/main.c:\n\tDisable the IO_APIC if \"nosmp\" or \"maxcpus\u003d0\"\n\tundefine disable_ioapic_setup() when it doesn\u0027t apply.\n\ni386:\n\tdelete ioapic_setup(), it was a duplicate of parse_noapic()\n\tdelete undefinition of disable_ioapic_setup()\n\nx86_64:\n\trename disable_ioapic_setup() to parse_noapic() to match i386\n\tdefine disable_ioapic_setup() in header to match i386\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d1641\n\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "8b3b295502444340dd0701855ac422fbf32e161d",
      "tree": "949accf30a7b8bf6a0ccd074a5a4b9f6115c1f7b",
      "parents": [
        "98c0d07cbf2a8582a0341b05ad564247e608f6f9"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Sun Jul 15 23:41:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:47 2007 -0700"
      },
      "message": "adjust nosmp handling\n\nEspecially when !CONFIG_HOTPLUG_CPU, avoid needlessy allocating resources for\nCPUs that can never become available.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97842216b8400fe9d1a20468959e2989180f8f79",
      "tree": "63d0d731e0e93d5ef9ac1a23734c60cd0f0664f2",
      "parents": [
        "ea5a3dcfda1c9140228f2842ea9b01e1713c559a"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Sun Jul 15 23:41:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:47 2007 -0700"
      },
      "message": "Allow softlockup to be runtime disabled\n\nIt\u0027s useful sometimes to disable the softlockup checker at boottime.\nEspecially if it triggers during a distro install.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18a8bd949d6adb311ea816125ff65050df1f3f6e",
      "tree": "4365db908430747a5c08cacdb4354577b7bfead7",
      "parents": [
        "b1c931e39327ef121797927d4b3198d370e75b9b"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "Yinghai.Lu@Sun.COM",
        "time": "Sun Jul 15 23:37:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:35 2007 -0700"
      },
      "message": "serial: convert early_uart to earlycon for 8250\n\nBeacuse SERIAL_PORT_DFNS is removed from include/asm-i386/serial.h and\ninclude/asm-x86_64/serial.h.  the serial8250_ports need to be probed late in\nserial initializing stage.  the console_init\u003d\u003eserial8250_console_init\u003d\u003e\nregister_console\u003d\u003eserial8250_console_setup will return -ENDEV, and console\nttyS0 can not be enabled at that time.  need to wait till uart_add_one_port in\ndrivers/serial/serial_core.c to call register_console to get console ttyS0.\nthat is too late.\n\nMake early_uart to use early_param, so uart console can be used earlier.  Make\nit to be bootconsole with CON_BOOT flag, so can use console handover feature.\nand it will switch to corresponding normal serial console automatically.\n\nnew command line will be:\n\tconsole\u003duart8250,io,0x3f8,9600n8\n\tconsole\u003duart8250,mmio,0xff5e0000,115200n8\nor\n\tearlycon\u003duart8250,io,0x3f8,9600n8\n\tearlycon\u003duart8250,mmio,0xff5e0000,115200n8\n\nit will print in very early stage:\n\tEarly serial console at I/O port 0x3f8 (options \u00279600n8\u0027)\n\tconsole [uart0] enabled\nlater for console it will print:\n\tconsole handover: boot [uart0] -\u003e real [ttyS0]\n\nSigned-off-by: \u003cyinghai.lu@sun.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Gerd Hoffmann \u003ckraxel@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1df21055e34b6a68d62cf0c524b9e52deebd7ead",
      "tree": "b3611a364b289340d6b5016eba9f53a37b6b1de2",
      "parents": [
        "4da1ce6d9c7e2a6d9236bf4dcfd33cf506082794"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:58 2007 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 09 18:51:58 2007 +0200"
      },
      "message": "sched: add init_idle_bootup_task()\n\nadd the init_idle_bootup_task() callback to the bootup thread,\nunused at the moment. (CFS will use it to switch the scheduling\nclass of the boot thread to the idle class)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "92080309df1975729a9f8b45fd56528817e34db8",
      "tree": "f82ec2fb2b1d5fa68af807b6acb1b033c7a34e17",
      "parents": [
        "0e0d314e6a01bb14d303e35e6f7ba24b17020044"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Thu May 17 20:43:54 2007 +0200"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Sat May 19 09:11:58 2007 +0200"
      },
      "message": "init/main: use __init_refok to fix section mismatch\n\nKill a special case in modpost by introducing the\n__init_refok marker.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "0e29b24aa6b3eb6c161cbb9e42fc20b47e67a7c6",
      "tree": "1278ef6ce9da5c3437624d4c02449c4662485f38",
      "parents": [
        "820e45db2380eb1545fa2bc5d34b8b2f2933faeb"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@us.ibm.com",
        "time": "Thu May 10 22:23:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri May 11 08:29:35 2007 -0700"
      },
      "message": "Explicitly set pgid and sid of init process\n\nExplicitly set pgid and sid of init process to 1.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: \u003ccontainers@lists.osdl.org\u003e\nAcked-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73c279927f89561ecb45b2dfdf9314bafcfd9f67",
      "tree": "2186e28c92c6f8229ea20eb9856714186bf77a4c",
      "parents": [
        "c93465181fed0f8f5942a41108943dadea0aa345"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed May 09 02:34:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:53 2007 -0700"
      },
      "message": "kthread: don\u0027t depend on work queues\n\nCurrently there is a circular reference between work queue initialization\nand kthread initialization.  This prevents the kthread infrastructure from\ninitializing until after work queues have been initialized.\n\nWe want the properties of tasks created with kthread_create to be as close\nas possible to the init_task and to not be contaminated by user processes.\nThe later we start our kthreadd that creates these tasks the harder it is\nto avoid contamination from user processes and the more of a mess we have\nto clean up because the defaults have changed on us.\n\nSo this patch modifies the kthread support to not use work queues but to\ninstead use a simple list of structures, and to have kthreadd start from\ninit_task immediately after our kernel thread that execs /sbin/init.\n\nBy being a true child of init_task we only have to change those process\nsettings that we want to have different from init_task, such as our process\nname, the cpus that are allowed, blocking all signals and setting SIGCHLD\nto SIG_IGN so that all of our children are reaped automatically.\n\nBy being a true child of init_task we also naturally get our ppid set to 0\nand do not wind up as a child of PID \u003d\u003d 1.  Ensuring that tasks generated\nby kthread_create will not slow down the functioning of the wait family of\nfunctions.\n\n[akpm@linux-foundation.org: use interruptible sleeps]\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8f0c45cdf87dc9141e87b0ad2fc6fff216a95f79",
      "tree": "1940c1f08b9bc6e2429559ba19b71b725ad9524c",
      "parents": [
        "b73a7e76c1eeaa770a41554698917c3c45686a07"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue May 08 00:28:26 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:07 2007 -0700"
      },
      "message": "enhance initcall_debug, measure latency\n\nenhance the initcall_debug boot option:\n\n - measure the time the initcall took to execute and report\n   it in units of milliseconds.\n\n - show the return code of initcalls (useful to see failures and\n   to make sure that an initcall hung)\n\n[akpm@linux-foundation.org: fix printk warning]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46595390e97b3ab2741a36f5ff69e8f6033fa9c0",
      "tree": "911fb1bd59ecf260999eca19fad4534f719894da",
      "parents": [
        "b2ead6e012e2b2ab31851c288e0dd7872884a8a3"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue May 08 00:24:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue May 08 11:15:00 2007 -0700"
      },
      "message": "init/do_mounts.c: proper prepare_namespace() prototype\n\nAdd a proper protype for prepare_namespace() in include/linux/init.h.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "476f35348eb8d2a827765992899fea78b7dcc46f",
      "tree": "81dbace9de3d4ffa3ecc67bffe265134962117bd",
      "parents": [
        "aee16b3cee2746880e40945a9b5bff4f309cfbc4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun May 06 14:48:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:51 2007 -0700"
      },
      "message": "Safer nr_node_ids and nr_node_ids determination and initial values\n\nThe nr_cpu_ids value is currently only calculated in smp_init.  However, it\nmay be needed before (SLUB needs it on kmem_cache_init!) and other kernel\ncomponents may also want to allocate dynamically sized per cpu array before\nsmp_init.  So move the determination of possible cpus into sched_init()\nwhere we already loop over all possible cpus early in boot.\n\nAlso initialize both nr_node_ids and nr_cpu_ids with the highest value they\ncould take.  If we have accidental users before these values are determined\nthen the current valud of 0 may cause too small per cpu and per node arrays\nto be allocated.  If it is set to the maximum possible then we only waste\nsome memory for early boot users.\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": "15700770ef7c5d12e2f1659d2ddbeb3f658d9f37",
      "tree": "7fa2f81c33c9efcb1a1568385beead75c5892cfb",
      "parents": [
        "6de410c2b0cc055ae9ee640c84331f6a70878d9b",
        "11de39e2fbbc592018e0a231d0ee773653dcc8d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun May 06 13:21:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun May 06 13:21:57 2007 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild: (38 commits)\n  kconfig: fix mconf segmentation fault\n  kbuild: enable use of code from a different dir\n  kconfig: error out if recursive dependencies are found\n  kbuild: scripts/basic/fixdep segfault on pathological string-o-death\n  kconfig: correct minor typo in Kconfig warning message.\n  kconfig: fix path to modules.txt in Kconfig help\n  usr/Kconfig: fix typo\n  kernel-doc: alphabetically-sorted entries in index.html of \u0027htmldocs\u0027\n  kbuild: be more explicit on missing .config file\n  kbuild: clarify the creation of the LOCALVERSION_AUTO string.\n  kbuild: propagate errors from find in scripts/gen_initramfs_list.sh\n  kconfig: refer to qt3 if we cannot find qt libraries\n  kbuild: handle compressed cpio initramfs-es\n  kbuild: ignore section mismatch warning for references from .paravirtprobe to .init.text\n  kbuild: remove stale comment in modpost.c\n  kbuild/mkuboot.sh: allow spaces in CROSS_COMPILE\n  kbuild: fix make mrproper for Documentation/DocBook/man\n  kbuild: remove kconfig binaries during make mrproper\n  kconfig/menuconfig: do not hardcode \u0027.config\u0027\n  kbuild: override build timestamp \u0026 version\n  ...\n"
    },
    {
      "commit": "aae5f662a32c35b1a962627535acb588d48ff5f9",
      "tree": "6e300ed8557e850e350c95dffb57ff9d5d5b182d",
      "parents": [
        "85bd2fddd68e757da8e1af98f857f61a3c9ce647"
      ],
      "author": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Mon Feb 26 16:45:41 2007 +0100"
      },
      "committer": {
        "name": "Sam Ravnborg",
        "email": "sam@ravnborg.org",
        "time": "Wed May 02 20:58:07 2007 +0200"
      },
      "message": "kbuild: whitelist section mismatch in init/main.c\n\nIn init/main.c we have a reference from rest_init() to .init.text\nwhich is intentional.\nRename the function \u0027init\u0027 to \u0027kernel_init\u0027 to make it a\nkernel wide unique symbol and whitelist the reference.\n\nSigned-off-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\n"
    },
    {
      "commit": "b6e3590f8145c77b8fcef3247e2412335221412f",
      "tree": "47fb1a28e41fd9f4e1aef45b5482b69b8d7c154e",
      "parents": [
        "de90c5ce832b1218042316260ff9268b00fdcba3"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "andi@basil.nowhere.org",
        "time": "Wed May 02 19:27:12 2007 +0200"
      },
      "message": "[PATCH] x86: Allow percpu variables to be page-aligned\n\nLet\u0027s allow page-alignment in general for per-cpu data (wanted by Xen, and\nIngo suggested KVM as well).\n\nBecause larger alignments can use more room, we increase the max per-cpu\nmemory to 64k rather than 32k: it\u0027s getting a little tight.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy@xensource.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    }
  ],
  "next": "53b8a315b76a3f3c70a5644976c0095460eb13d8"
}
