)]}'
{
  "log": [
    {
      "commit": "1d9b9f6a53d77ed801ba875f937d6dabbfc381ce",
      "tree": "36ea93b80a444c3b37111e352790ebc07f29379f",
      "parents": [
        "a3ad7f128c637b7612ebeacb1f85fec933bb1195",
        "12c0b20fa4afb5c8a377d6987fb2dcf353e1dce1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 18:14:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 18:14:24 2008 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (21 commits)\n  x86/PCI: use dev_printk when possible\n  PCI: add D3 power state avoidance quirk\n  PCI: fix bogus \"\u0027device\u0027 may be used uninitialized\" warning in pci_slot\n  PCI: add an option to allow ASPM enabled forcibly\n  PCI: disable ASPM on pre-1.1 PCIe devices\n  PCI: disable ASPM per ACPI FADT setting\n  PCI MSI: Don\u0027t disable MSIs if the mask bit isn\u0027t supported\n  PCI: handle 64-bit resources better on 32-bit machines\n  PCI: rewrite PCI BAR reading code\n  PCI: document pci_target_state\n  PCI hotplug: fix typo in pcie hotplug output\n  x86 gart: replace to_pages macro with iommu_num_pages\n  x86, AMD IOMMU: replace to_pages macro with iommu_num_pages\n  iommu: add iommu_num_pages helper function\n  dma-coherent: add documentation to new interfaces\n  Cris: convert to using generic dma-coherent mem allocator\n  Sh: use generic per-device coherent dma allocator\n  ARM: support generic per-device coherent dma mem\n  Generic dma-coherent: fix DMA_MEMORY_EXCLUSIVE\n  x86: use generic per-device dma coherent allocator\n  ...\n"
    },
    {
      "commit": "cddb8a5c14aa89810b40495d94d3d2a0faee6619",
      "tree": "d0b47b071f7d2dd1d6f9c36084aa8cfcef90d1da",
      "parents": [
        "7906d00cd1f687268f0a3599442d113767795ae6"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@qumranet.com",
        "time": "Mon Jul 28 15:46:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 16:30:21 2008 -0700"
      },
      "message": "mmu-notifiers: core\n\nWith KVM/GFP/XPMEM there isn\u0027t just the primary CPU MMU pointing to pages.\n There are secondary MMUs (with secondary sptes and secondary tlbs) too.\nsptes in the kvm case are shadow pagetables, but when I say spte in\nmmu-notifier context, I mean \"secondary pte\".  In GRU case there\u0027s no\nactual secondary pte and there\u0027s only a secondary tlb because the GRU\nsecondary MMU has no knowledge about sptes and every secondary tlb miss\nevent in the MMU always generates a page fault that has to be resolved by\nthe CPU (this is not the case of KVM where the a secondary tlb miss will\nwalk sptes in hardware and it will refill the secondary tlb transparently\nto software if the corresponding spte is present).  The same way\nzap_page_range has to invalidate the pte before freeing the page, the spte\n(and secondary tlb) must also be invalidated before any page is freed and\nreused.\n\nCurrently we take a page_count pin on every page mapped by sptes, but that\nmeans the pages can\u0027t be swapped whenever they\u0027re mapped by any spte\nbecause they\u0027re part of the guest working set.  Furthermore a spte unmap\nevent can immediately lead to a page to be freed when the pin is released\n(so requiring the same complex and relatively slow tlb_gather smp safe\nlogic we have in zap_page_range and that can be avoided completely if the\nspte unmap event doesn\u0027t require an unpin of the page previously mapped in\nthe secondary MMU).\n\nThe mmu notifiers allow kvm/GRU/XPMEM to attach to the tsk-\u003emm and know\nwhen the VM is swapping or freeing or doing anything on the primary MMU so\nthat the secondary MMU code can drop sptes before the pages are freed,\navoiding all page pinning and allowing 100% reliable swapping of guest\nphysical address space.  Furthermore it avoids the code that teardown the\nmappings of the secondary MMU, to implement a logic like tlb_gather in\nzap_page_range that would require many IPI to flush other cpu tlbs, for\neach fixed number of spte unmapped.\n\nTo make an example: if what happens on the primary MMU is a protection\ndowngrade (from writeable to wrprotect) the secondary MMU mappings will be\ninvalidated, and the next secondary-mmu-page-fault will call\nget_user_pages and trigger a do_wp_page through get_user_pages if it\ncalled get_user_pages with write\u003d1, and it\u0027ll re-establishing an updated\nspte or secondary-tlb-mapping on the copied page.  Or it will setup a\nreadonly spte or readonly tlb mapping if it\u0027s a guest-read, if it calls\nget_user_pages with write\u003d0.  This is just an example.\n\nThis allows to map any page pointed by any pte (and in turn visible in the\nprimary CPU MMU), into a secondary MMU (be it a pure tlb like GRU, or an\nfull MMU with both sptes and secondary-tlb like the shadow-pagetable layer\nwith kvm), or a remote DMA in software like XPMEM (hence needing of\nschedule in XPMEM code to send the invalidate to the remote node, while no\nneed to schedule in kvm/gru as it\u0027s an immediate event like invalidating\nprimary-mmu pte).\n\nAt least for KVM without this patch it\u0027s impossible to swap guests\nreliably.  And having this feature and removing the page pin allows\nseveral other optimizations that simplify life considerably.\n\nDependencies:\n\n1) mm_take_all_locks() to register the mmu notifier when the whole VM\n   isn\u0027t doing anything with \"mm\".  This allows mmu notifier users to keep\n   track if the VM is in the middle of the invalidate_range_begin/end\n   critical section with an atomic counter incraese in range_begin and\n   decreased in range_end.  No secondary MMU page fault is allowed to map\n   any spte or secondary tlb reference, while the VM is in the middle of\n   range_begin/end as any page returned by get_user_pages in that critical\n   section could later immediately be freed without any further\n   -\u003einvalidate_page notification (invalidate_range_begin/end works on\n   ranges and -\u003einvalidate_page isn\u0027t called immediately before freeing\n   the page).  To stop all page freeing and pagetable overwrites the\n   mmap_sem must be taken in write mode and all other anon_vma/i_mmap\n   locks must be taken too.\n\n2) It\u0027d be a waste to add branches in the VM if nobody could possibly\n   run KVM/GRU/XPMEM on the kernel, so mmu notifiers will only enabled if\n   CONFIG_KVM\u003dm/y.  In the current kernel kvm won\u0027t yet take advantage of\n   mmu notifiers, but this already allows to compile a KVM external module\n   against a kernel with mmu notifiers enabled and from the next pull from\n   kvm.git we\u0027ll start using them.  And GRU/XPMEM will also be able to\n   continue the development by enabling KVM\u003dm in their config, until they\n   submit all GRU/XPMEM GPLv2 code to the mainline kernel.  Then they can\n   also enable MMU_NOTIFIERS in the same way KVM does it (even if KVM\u003dn).\n   This guarantees nobody selects MMU_NOTIFIER\u003dy if KVM and GRU and XPMEM\n   are all \u003dn.\n\nThe mmu_notifier_register call can fail because mm_take_all_locks may be\ninterrupted by a signal and return -EINTR.  Because mmu_notifier_reigster\nis used when a driver startup, a failure can be gracefully handled.  Here\nan example of the change applied to kvm to register the mmu notifiers.\nUsually when a driver startups other allocations are required anyway and\n-ENOMEM failure paths exists already.\n\n struct  kvm *kvm_arch_create_vm(void)\n {\n        struct kvm *kvm \u003d kzalloc(sizeof(struct kvm), GFP_KERNEL);\n+       int err;\n\n        if (!kvm)\n                return ERR_PTR(-ENOMEM);\n\n        INIT_LIST_HEAD(\u0026kvm-\u003earch.active_mmu_pages);\n\n+       kvm-\u003earch.mmu_notifier.ops \u003d \u0026kvm_mmu_notifier_ops;\n+       err \u003d mmu_notifier_register(\u0026kvm-\u003earch.mmu_notifier, current-\u003emm);\n+       if (err) {\n+               kfree(kvm);\n+               return ERR_PTR(err);\n+       }\n+\n        return kvm;\n }\n\nmmu_notifier_unregister returns void and it\u0027s reliable.\n\nThe patch also adds a few needed but missing includes that would prevent\nkernel to compile after these changes on non-x86 archs (x86 didn\u0027t need\nthem by luck).\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix mm/filemap_xip.c build]\n[akpm@linux-foundation.org: fix mm/mmu_notifier.c build]\nSigned-off-by: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Robin Holt \u003cholt@sgi.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Kanoj Sarcar \u003ckanojsarcar@yahoo.com\u003e\nCc: Roland Dreier \u003crdreier@cisco.com\u003e\nCc: Steve Wise \u003cswise@opengridcomputing.com\u003e\nCc: Avi Kivity \u003cavi@qumranet.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Chris Wright \u003cchrisw@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmarcelo@kvack.org\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: Izik Eidus \u003cizike@qumranet.com\u003e\nCc: Anthony Liguori \u003caliguori@us.ibm.com\u003e\nCc: Rik van Riel \u003criel@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": "cb28a1bbdb4790378e7366d6c9ee1d2340b84f92",
      "tree": "316436f77dac75335fd2c3ef5f109e71606c50d3",
      "parents": [
        "b6d4f7e3ef25beb8c658c97867d98883e69dc544",
        "f934fb19ef34730263e6afc01e8ec27a8a71470f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 29 00:07:55 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jul 29 00:07:55 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/generic-dma-coherent\n\nConflicts:\n\n\tarch/x86/Kconfig\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9e3ee1c39c0cc71222f9980ccbf87fe072897eef",
      "tree": "99462000e6f0d4f907cb2fc690f19d4d441ba0f3",
      "parents": [
        "e56b3bc7942982ac2589c942fb345e38bc7a341a",
        "f934fb19ef34730263e6afc01e8ec27a8a71470f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 23:32:00 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 23:32:00 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n\nConflicts:\n\n\tkernel/stop_machine.c\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e56b3bc7942982ac2589c942fb345e38bc7a341a",
      "tree": "8130492904f5bb9cff061f62ebb1c5d6eed3308b",
      "parents": [
        "414f746d232d41ed6ae8632c4495ae795373c44b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 11:32:33 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 22:20:41 2008 +0200"
      },
      "message": "cpu masks: optimize and clean up cpumask_of_cpu()\n\nClean up and optimize cpumask_of_cpu(), by sharing all the zero words.\n\nInstead of stupidly generating all possible i\u003d0...NR_CPUS 2^i patterns\ncreating a huge array of constant bitmasks, realize that the zero words\ncan be shared.\n\nIn other words, on a 64-bit architecture, we only ever need 64 of these\narrays - with a different bit set in one single world (with enough zero\nwords around it so that we can create any bitmask by just offsetting in\nthat big array). And then we just put enough zeroes around it that we\ncan point every single cpumask to be one of those things.\n\nSo when we have 4k CPU\u0027s, instead of having 4k arrays (of 4k bits each,\nwith one bit set in each array - 2MB memory total), we have exactly 64\narrays instead, each 8k bits in size (64kB total).\n\nAnd then we just point cpumask(n) to the right position (which we can\ncalculate dynamically). Once we have the right arrays, getting\n\"cpumask(n)\" ends up being:\n\n  static inline const cpumask_t *get_cpu_mask(unsigned int cpu)\n  {\n          const unsigned long *p \u003d cpu_bit_bitmap[1 + cpu % BITS_PER_LONG];\n          p -\u003d cpu / BITS_PER_LONG;\n          return (const cpumask_t *)p;\n  }\n\nThis brings other advantages and simplifications as well:\n\n - we are not wasting memory that is just filled with a single bit in\n   various different places\n\n - we don\u0027t need all those games to re-create the arrays in some dense\n   format, because they\u0027re already going to be dense enough.\n\nif we compile a kernel for up to 4k CPU\u0027s, \"wasting\" that 64kB of memory\nis a non-issue (especially since by doing this \"overlapping\" trick we\nprobably get better cache behaviour anyway).\n\n[ mingo@elte.hu:\n\n  Converted Linus\u0027s mails into a commit. See:\n\n     http://lkml.org/lkml/2008/7/27/156\n     http://lkml.org/lkml/2008/7/28/320\n\n  Also applied a family filter - which also has the side-effect of leaving\n  out the bits where Linus calls me an idio... Oh, never mind ;-)\n]\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "414f746d232d41ed6ae8632c4495ae795373c44b",
      "tree": "167f9bc8f139c6e82e6732b38c7a938b8a9d31cd",
      "parents": [
        "5a7a201c51c324876d00a54e7208af6af12d1ca4",
        "c9272c4f9fbe2087beb3392f526dc5b19efaa56b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 21:14:43 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jul 28 21:14:43 2008 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpus4096\n"
    },
    {
      "commit": "37eaf8c7463e53cf1acf025fb566fb6c4573297f",
      "tree": "9df7e9e3e7722d9ddf257e19fd8551425d27a292",
      "parents": [
        "58f250714f2bfa3514798fde8b9d38a15e4a9836",
        "784e2d76007f90d69341b95967160c4fb7829299"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 08:37:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 28 08:37:46 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 up ftrace.c\n  stop_machine: Wean existing callers off stop_machine_run()\n  stop_machine(): stop_machine_run() changed to use cpu mask\n  Hotplug CPU: don\u0027t check cpu_online after take_cpu_down\n  Simplify stop_machine\n  stop_machine: add ALL_CPUS option\n  module: fix build warning with !CONFIG_KALLSYMS\n"
    },
    {
      "commit": "784e2d76007f90d69341b95967160c4fb7829299",
      "tree": "adf7f8a8a5470080efcc971559b79f10b44042e6",
      "parents": [
        "9b1a4d38373a5581a4e01032a3ccdd94cd93477b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:31 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:31 2008 +1000"
      },
      "message": "stop_machine: fix up ftrace.c\n\nSimple conversion.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Abhishek Sagar \u003csagar.abhishek@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "9b1a4d38373a5581a4e01032a3ccdd94cd93477b",
      "tree": "3d0f0ebd1ac4512551fc35e57d173870eb060c0c",
      "parents": [
        "eeec4fad963490821348a331cca6102ae1c4a7a3"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:30 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:31 2008 +1000"
      },
      "message": "stop_machine: Wean existing callers off stop_machine_run()\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "eeec4fad963490821348a331cca6102ae1c4a7a3",
      "tree": "163a7d9414d719fccac096d1ba822416f705b397",
      "parents": [
        "04321587584272f4e8b9818f319f40caf8eeee13"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:30 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:30 2008 +1000"
      },
      "message": "stop_machine(): stop_machine_run() changed to use cpu mask\n\nInstead of a \"cpu\" arg with magic values NR_CPUS (any cpu) and ~0 (all\ncpus), pass a cpumask_t.  Allow NULL for the common case (where we\ndon\u0027t care which CPU the function is run on): temporary cpumask_t\u0027s\nare usually considered bad for stack space.\n\nThis deprecates stop_machine_run, to be removed soon when all the\ncallers are dead.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "04321587584272f4e8b9818f319f40caf8eeee13",
      "tree": "5bf00c36a182644cc2c4fe2577b14e050a49418b",
      "parents": [
        "ffdb5976c47609c862917d4c186ecbb5706d2dda"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:29 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:29 2008 +1000"
      },
      "message": "Hotplug CPU: don\u0027t check cpu_online after take_cpu_down\n\nAkinobu points out that if take_cpu_down() succeeds, the cpu must be offline.\nRemove the cpu_online() check, and put a BUG_ON().\n\nQuoting Akinobu Mita:\n   Actually the cpu_online() check was necessary before appling this\n   stop_machine: simplify patch.\n\n   With old __stop_machine_run(), __stop_machine_run() could succeed\n   (return !IS_ERR(p) value) even if take_cpu_down() returned non-zero value.\n   The return value of take_cpu_down() was obtained through kthread_stop()..\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Akinobu Mita\" \u003cakinobu.mita@gmail.com\u003e\n"
    },
    {
      "commit": "ffdb5976c47609c862917d4c186ecbb5706d2dda",
      "tree": "7a8485260922290080094adc25f3cbebd4ad506b",
      "parents": [
        "5c2aed622571ac7c3c6ec182d6d3c318e4b45c8b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:28 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:29 2008 +1000"
      },
      "message": "Simplify stop_machine\n\nstop_machine creates a kthread which creates kernel threads.  We can\ncreate those threads directly and simplify things a little.  Some care\nmust be taken with CPU hotunplug, which has special needs, but that code\nseems more robust than it was in the past.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Christian Borntraeger \u003cborntraeger@de.ibm.com\u003e\n"
    },
    {
      "commit": "5c2aed622571ac7c3c6ec182d6d3c318e4b45c8b",
      "tree": "0a3b422b16cd0725eebbe5047fd5482583279d8a",
      "parents": [
        "15bba37d62351749c3915add81f673b256952ee1"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Thu Feb 28 11:33:03 2008 -0500"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:28 2008 +1000"
      },
      "message": "stop_machine: add ALL_CPUS option\n\n-allow stop_mahcine_run() to call a function on all cpus. Calling\n stop_machine_run() with a \u0027ALL_CPUS\u0027 invokes this new behavior.\n stop_machine_run() proceeds as normal until the calling cpu has\n invoked \u0027fn\u0027. Then, we tell all the other cpus to call \u0027fn\u0027.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCC: Adrian Bunk \u003cbunk@stusta.de\u003e\nCC: Andi Kleen \u003candi@firstfloor.org\u003e\nCC: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCC: Christoph Hellwig \u003chch@infradead.org\u003e\nCC: mingo@elte.hu\nCC: akpm@osdl.org\n"
    },
    {
      "commit": "15bba37d62351749c3915add81f673b256952ee1",
      "tree": "4696ad74ea04df9f3b7091859225ecc123be7197",
      "parents": [
        "837b41b5de356aa67abb2cadb5eef3efc7776f91"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Thu Jul 24 15:41:48 2008 +0100"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Jul 28 12:16:28 2008 +1000"
      },
      "message": "module: fix build warning with !CONFIG_KALLSYMS\n\nThis patch fixed the warning:\n\n  CC      kernel/module.o\n  /home/wangcong/Projects/linux-2.6/kernel/module.c:332: warning:\n‘lookup_symbol’ defined but not used\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "940389b8afad6495211614c13eb91ef7001773ec",
      "tree": "92c581cc9dc7a067899a6a28e382e4099dfe8ead",
      "parents": [
        "837b41b5de356aa67abb2cadb5eef3efc7776f91"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Mon Jul 28 00:48:12 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 16:12:28 2008 -0700"
      },
      "message": "task IO accounting: move all IO statistics in struct task_io_accounting\n\nSimplify the code of include/linux/task_io_accounting.h.\n\nIt is also more reasonable to have all the task i/o-related statistics in a\nsingle struct (task_io_accounting).\n\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5995477ab7f3522c497c9c4a1c55373e9d655574",
      "tree": "a147fb61642a7ac5441855964eb97a2ff1e37202",
      "parents": [
        "605ccb73f6a1c891a16268b3a2923208fc637958"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Sun Jul 27 17:29:15 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 09:58:20 2008 -0700"
      },
      "message": "task IO accounting: improve code readability\n\nPut all i/o statistics in struct proc_io_accounting and use inline functions to\ninitialize and increment statistics, removing a lot of single variable\nassignments.\n\nThis also reduces the kernel size as following (with CONFIG_TASK_XACCT\u003dy and\nCONFIG_TASK_IO_ACCOUNTING\u003dy).\n\n    text    data     bss     dec     hex filename\n   11651       0       0   11651    2d83 kernel/exit.o.before\n   11619       0       0   11619    2d63 kernel/exit.o.after\n   10886     132     136   11154    2b92 kernel/fork.o.before\n   10758     132     136   11026    2b12 kernel/fork.o.after\n\n 3082029  807968 4818600 8708597  84e1f5 vmlinux.o.before\n 3081869  807968 4818600 8708437  84e155 vmlinux.o.after\n\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "605ccb73f6a1c891a16268b3a2923208fc637958",
      "tree": "598c26eeb3e911cc2effc203c89fe414241532f2",
      "parents": [
        "375614422509c98a1f3dbef410206bf81775169b"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Sun Jul 27 13:39:03 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 09:58:20 2008 -0700"
      },
      "message": "tracing: remove unused variable\n\nRemove the following warning with CONFIG_TRACING\u003dy:\n\n\tkernel/trace/trace.c: In function ‘s_next’:\n\tkernel/trace/trace.c:1186: warning: unused variable ‘last_ent’\n\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfbcf034798b2ca45338cee5049b5694b7ddc865",
      "tree": "51ca2687c318033b7a41533ecdfd2801a7241327",
      "parents": [
        "8be1a6d6c77ab4532e4476fdb8177030ef48b52c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sun Jul 27 06:31:22 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 27 09:45:34 2008 -0700"
      },
      "message": "lost sysctl fix\n\ntry_attach() should walk into the matching subdirectory, not the first one...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Valdis.Kletnieks@vt.edu\nTested-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f8206d496e9e9495afb1d4e70d29712b4d403c9",
      "tree": "5bedea1aff8b5e584fbf8497c80fcaccf9242d69",
      "parents": [
        "964bd183624c03680796b63b4ab97ee3905a806a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 03:46:43 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:42 2008 -0400"
      },
      "message": "[PATCH] get rid of indirect users of namei.h\n\nfs.h needs path.h, not namei.h; nfs_fs.h doesn\u0027t need it at all.\nSeveral places in the tree needed direct include.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7f2da1e7d0330395e5e9e350b879b98a1ea495df",
      "tree": "adc01ced45bb1de10fe58511e7143bbbd138a192",
      "parents": [
        "8bb79224b87aab92071e94d46e70bd160d89bf34"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat May 10 20:44:54 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:20 2008 -0400"
      },
      "message": "[PATCH] kill altroot\n\nlong overdue...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e6305c43eda10ebfd2ad9e35d6e172ccc7bb3695",
      "tree": "8a95bd0e27fb3ce895cca9ef91af2e1605e4cdab",
      "parents": [
        "1bd5191d9f5d1928c4efdf604c4164b04bb88dbe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 21:03:57 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:14 2008 -0400"
      },
      "message": "[PATCH] sanitize -\u003epermission() prototype\n\n* kill nameidata * argument; map the 3 bits in -\u003eflags anybody cares\n  about to new MAY_... ones and pass with the mask.\n* kill redundant gfs2_iop_permission()\n* sanitize ecryptfs_permission()\n* fix remaining places where -\u003epermission() instances might barf on new\n  MAY_... found in mask.\n\nThe obvious next target in that direction is permission(9)\n\nfolded fix for nfs_permission() breakage from Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9043476f726802f4b00c96d0c4f418dde48d1304",
      "tree": "9ead0294bc75e219c12b44fc7eb8996248400f2a",
      "parents": [
        "ae7edecc9b8810770a8e5cb9a466ea4bdcfa8401"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 08:54:06 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:12 2008 -0400"
      },
      "message": "[PATCH] sanitize proc_sysctl\n\n* keep references to ctl_table_head and ctl_table in /proc/sys inodes\n* grab the former during operations, use the latter for access to\n  entry if that succeeds\n* have -\u003ed_compare() check if table should be seen for one who does lookup;\n  that allows us to avoid flipping inodes - if we have the same name resolve\n  to different things, we\u0027ll just keep several dentries and -\u003ed_compare()\n  will reject the wrong ones.\n* have -\u003elookup() and -\u003ereaddir() scan the table of our inode first, then\n  walk all ctl_table_header and scan -\u003eattached_by for those that are\n  attached to our directory.\n* implement -\u003egetattr().\n* get rid of insane amounts of tree-walking\n* get rid of the need to know dentry in -\u003epermission() and of the contortions\n  induced by that.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ae7edecc9b8810770a8e5cb9a466ea4bdcfa8401",
      "tree": "8c0a244f4aea3eca5d8edf45665266b007eb046e",
      "parents": [
        "bd7b1533cd6a68c734062aa69394bec7e2b1718e"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 06:33:31 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:11 2008 -0400"
      },
      "message": "[PATCH] sysctl: keep track of tree relationships\n\nIn a sense, that\u0027s the heart of the series.  It\u0027s based on the following\nproperty of the trees we are actually asked to add: they can be split into\nstem that is already covered by registered trees and crown that is entirely\nnew.  IOW, if a/b and a/c/d are introduced by our tree, then a/c is also\nintroduced by it.\n\nThat allows to associate tree and table entry with each node in the union;\nwhile directory nodes might be covered by many trees, only one will cover\nthe node by its crown.  And that will allow much saner logics for /proc/sys\nin the next patches.  This patch introduces the data structures needed to\nkeep track of that.\n\nWhen adding a sysctl table, we find a \"parent\" one.  Which is to say,\nfind the deepest node on its stem that already is present in one of the\ntables from our table set or its ancestor sets.  That table will be our\nparent and that node in it - attachment point.  Add our table to list\nanchored in parent, have it refer the parent and contents of attachment\npoint.  Also remember where its crown lives.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f7e6ced4061da509f737541ca4dbd44d83a6e82f",
      "tree": "065a6907a085854da1eb176da1314c472e69a364",
      "parents": [
        "734550921e9b7ab924a43aa3d0bd4239dac4fbf1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 01:44:23 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:09 2008 -0400"
      },
      "message": "[PATCH] allow delayed freeing of ctl_table_header\n\nRefcount the sucker; instead of freeing it by the end of unregistration\njust drop the refcount and free only when it hits zero.  Make sure that\nwe _always_ make -\u003eunregistering non-NULL in start_unregistering().\n\nThat allows anybody to get a reference to such puppy, preventing its\nfreeing and reuse.  It does *not* block unregistration.  Anybody who\nholds such a reference can\n\t* try to grab a \"use\" reference (ctl_head_grab()); that will\nsucceeds if and only if it hadn\u0027t entered unregistration yet.  If it\nsucceeds, we can use it in all normal ways until we release the \"use\"\nreference (with ctl_head_finish()).  Note that this relies on having\n-\u003eunregistering become non-NULL in all cases when one starts to unregister\nthe sucker.\n\t* keep pointers to ctl_table entries; they *can* be freed if\nthe entire thing is unregistered.  However, if ctl_head_grab() succeeds,\nwe know that unregistration had not happened (and will not happen until\nctl_head_finish()) and such pointers can be used safely.\n\nIOW, now we can have inodes under /proc/sys keep references to ctl_table\nentries, protecting them with references to ctl_table_header and\ngrabbing the latter for the duration of operations that require access\nto ctl_table.  That won\u0027t cause deadlocks, since unregistration will not\nbe stopped by mere keeping a reference to ctl_table_header.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "734550921e9b7ab924a43aa3d0bd4239dac4fbf1",
      "tree": "7be4b0808ba9860f1d953b45120262a277866021",
      "parents": [
        "7ac6cd653d7c31ad6b7bb5b88c549c4ebf628c34"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jul 14 21:22:20 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:08 2008 -0400"
      },
      "message": "[PATCH] beginning of sysctl cleanup - ctl_table_set\n\nNew object: set of sysctls [currently - root and per-net-ns].\nContains: pointer to parent set, list of tables and \"should I see this set?\"\nmethod (-\u003eis_seen(set)).\nCurrent lists of tables are subsumed by that; net-ns contains such a beast.\n-\u003elookup() for ctl_table_root returns pointer to ctl_table_set instead of\nthat to -\u003elist of that ctl_table_set.\n\n[folded compile fixes by rdd for configs without sysctl]\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a048d3aff8b828b6c0fa7ddd90a531248ab4e0f9",
      "tree": "8edfb5bd152aef0d48c4a165247906db347c3a56",
      "parents": [
        "fb3b80614438f8b73b3879a19350439d6aa402da",
        "1fe371044b21b226b96a9dd959e971b50b28c78e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 13:25:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 13:25:47 2008 -0700"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ftrace: fix modular build\n  ftrace: disable tracing on acpi idle calls\n  ftrace: remove latency-tracer leftover\n  ftrace: only trace preempt off with preempt tracer\n  ftrace: fix 4d3702b6 (post-v2.6.26): WARNING: at kernel/lockdep.c:2731 check_flags (ftrace)\n"
    },
    {
      "commit": "96930a6365c99c160138a395566e360b27348b8f",
      "tree": "c78d1d7f2cfcc863aa38726eddd3783814c6d174",
      "parents": [
        "0e1451da4f928ae1c9d5ca617faebde9f02985db"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 19:46:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:11 2008 -0700"
      },
      "message": "make cgroup_seqfile_release() static\n\ncgroup_seqfile_release() can become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85ba2d862e521375a8ee01526c5c46b1f24bb4af",
      "tree": "f098555cb580b2864f145aa845b574f07d2cf694",
      "parents": [
        "1f5a4ad97a0e7b663d527ecc02aabe203d000d91"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: wait_task_inactive\n\nThis extends wait_task_inactive() with a new argument so it can be used in\na \"soft\" mode where it will check for the task changing state unexpectedly\nand back off.  There is no change to existing callers.  This lays the\ngroundwork to allow robust, noninvasive tracing that can try to sample a\nblocked thread but back off safely if it wakes up.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "b787f7ba677840da16a2228c16571ce8a1fcb799",
      "tree": "b1838c4ae7f38c00efc2375871a255275500f245",
      "parents": [
        "2b2a1ff64afbadac842bbc58c5166962cf4f7664"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: force signal_pending()\n\nThis defines a new hook tracehook_force_sigpending() that lets tracing\ncode decide to force TIF_SIGPENDING on in recalc_sigpending().\n\nThis is not used yet, so it compiles away to nothing for now.  It lays the\ngroundwork for new tracing code that can interrupt a task synthetically\nwithout actually sending a signal.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "2b2a1ff64afbadac842bbc58c5166962cf4f7664",
      "tree": "660640eb95117ce6f7436331f23f73805abced10",
      "parents": [
        "fa00b80b3c41a845b3d56f866fb40a2e98754c51"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: death\n\nThis moves the ptrace logic in task death (exit_notify) into tracehook.h\ninlines.  Some code is rearranged slightly to make things nicer.  There is\nno change, only cleanup.\n\nThere is one hook called with the tasklist_lock write-locked, as ptrace\nneeds.  There is also a new hook called after exit_state changes and\nwithout locks.  This is a better place for tracing work to be in the\nfuture, since it doesn\u0027t delay the whole system with locking.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "fa00b80b3c41a845b3d56f866fb40a2e98754c51",
      "tree": "819d6966cad1fdeef3f32497c696afb203e3720b",
      "parents": [
        "7bcf6a2ca5f639b038c48711ebe6c4eca2036641"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: job control\n\nThis defines the tracehook_notify_jctl() hook to formalize the ptrace\neffects on the job control notifications.  There is no change, only\ncleanup.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "7bcf6a2ca5f639b038c48711ebe6c4eca2036641",
      "tree": "4219a0725d581310f729d4616361febd700f0574",
      "parents": [
        "283d7559e7712f95a05331eb0a85394c6368101b"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: get_signal_to_deliver\n\nThis defines the tracehook_get_signal() hook to allow tracing code to slip\nin before normal signal dequeuing.  This lays the groundwork for new\ntracing features that can inject synthetic signals outside the normal\nqueue or control the disposition of delivered signals.  The calling\nconvention lets tracehook_get_signal() decide both exactly what will\nhappen and what signal number to report in the handler/exit.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "445a91d2fe3667fb8fc251433645f686933cf56a",
      "tree": "496f0715ba3079f3bf98e9808480fe7f25872b16",
      "parents": [
        "35de254dc60f91004b3b5ebb1fc7b2c3093d6032"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: tracehook_consider_fatal_signal\n\nThis defines tracehook_consider_fatal_signal() has a fine-grained hook for\ndeciding to skip the special cases for a fatal signal, as ptrace does.\nThere is no change, only cleanup.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "35de254dc60f91004b3b5ebb1fc7b2c3093d6032",
      "tree": "101e174247bb3174c8abe0fb8d1405ed6a4db6d1",
      "parents": [
        "c45aea27617d6a1e0aacddc3b0233f704222fcbd"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:09 2008 -0700"
      },
      "message": "tracehook: tracehook_consider_ignored_signal\n\nThis defines tracehook_consider_ignored_signal() has a fine-grained hook\nfor deciding to prevent the normal short-circuit of sending an ignored\nsignal, as ptrace does.  There is no change, only cleanup.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "dae33574dcf5211e1f43c7e45fa29f73ba3e00cb",
      "tree": "090eb4af17451836fb39cebf57fbee64a6bd23b5",
      "parents": [
        "daded34be96b1975ff8539ff62ad8b158ce7d842"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: release_task\n\nThis moves the ptrace-related logic from release_task into tracehook.h and\nptrace.h inlines.  It provides clean hooks both before and after locking\ntasklist_lock, for future tracing logic to do more cleanup without the\nlock.\n\nThis also changes release_task() itself in the rare \"zap_leader\" case to\nset the leader to EXIT_DEAD before iterating.  This maintains the\ninvariant that release_task() only ever handles a task in EXIT_DEAD.  This\nis a common-sense invariant that is already always true except in this one\narcane case of zombie leader whose parent ignores SIGCHLD.\n\nThis change is harmless and only costs one store in this one rare case.\nIt keeps the expected state more consisently sane, which is nicer when\ndebugging weirdness in release_task().  It also lets some future code in\nthe tracehook entry points rely on this invariant for bookkeeping.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "daded34be96b1975ff8539ff62ad8b158ce7d842",
      "tree": "8cab5e809e513efd1a403e587a53a1e75365d1fc",
      "parents": [
        "09a05394fe2448a4139b014936330af23fa7ec83"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: vfork-done\n\nThis moves the PTRACE_EVENT_VFORK_DONE tracing into a tracehook.h inline,\ntracehook_report_vfork_done().  The change has no effect, just clean-up.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "09a05394fe2448a4139b014936330af23fa7ec83",
      "tree": "a7b3f0ffe271d4d35c3b98a99183d8792ea4db53",
      "parents": [
        "30199f5a46aee204bf437a4f5b0740f3efe448b7"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: clone\n\nThis moves all the ptrace initialization and tracing logic for task\ncreation into tracehook.h and ptrace.h inlines.  It reorganizes the code\nslightly, but should not change any behavior.\n\nThere are four tracehook entry points, at each important stage of task\ncreation.  This keeps the interface from the core fork.c code fairly\nclean, while supporting the complex setup required for ptrace or something\nlike it.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "30199f5a46aee204bf437a4f5b0740f3efe448b7",
      "tree": "9855ecf45727f6c41e9d75d4a5ac68c35546c14d",
      "parents": [
        "ff1188646c6870f336e910fb894eeed74f50471f"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: exit\n\nThis moves the PTRACE_EVENT_EXIT tracing into a tracehook.h inline,\ntracehook_report_exec().  The change has no effect, just clean-up.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "ff1188646c6870f336e910fb894eeed74f50471f",
      "tree": "7e0c7ecad4ab3f9c2f20540b289b4cd932453e67",
      "parents": [
        "6341c393fcc37d58727865f1ee2f65e632e9d4f0"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Jul 25 19:45:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:08 2008 -0700"
      },
      "message": "tracehook: unexport ptrace_notify\n\nThe ptrace_notify() function should not be called by any modules.  It was\nonly ever exported to be called by binfmt exec functions.  But that is no\nlonger necessary since fs/exec.c deals with that generically now.  There\nshould be no calls to ptrace_notify() from outside the core kernel.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReviewed-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": "261c40c1191ad8d7a2e49fa2bb5f6a84e3d44b10",
      "tree": "31660b2632ffaa1ea43107eb941670d5c95d3fce",
      "parents": [
        "4c8573e25f27b60b495aaa23089032f685ffd5ba"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "use WARN() in kernel/irq/chip.c\n\nUse WARN() instead of a printk+WARN_ON() pair; this way the message\nbecomes part of the warning section for better reporting/collection.\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.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": "b8c512f6190e313df69060bae4a161c5c044e272",
      "tree": "4b36b2ff66f5139141058d8d63f3dc219281bb5d",
      "parents": [
        "51cc50685a4275c6a02653670af9f108a64e01cf"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@linux.intel.com",
        "time": "Fri Jul 25 19:45:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "Use WARN() in kernel/irq/manage.c\n\nReplace a printk+WARN_ON() by a WARN(); this increases the chance of the\nstring making it into the bugreport (ie: it goes inside the\n---[ cut here ]--- section)\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\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": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20d8b67c06fa5e74f44e80b0a0fd68c8327f7c6a",
      "tree": "7162455643e7ce45e253033bf648bf41d9796dd9",
      "parents": [
        "7babe8db99d305340cf4828ce1f5a1481d5622ef"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Fri Jul 25 19:45:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "relay: add buffer-only channels; useful for early logging\n\nAllows one to create and use a channel with no associated files.  Files\ncan be initialized later.  This is useful in scenarios such as logging in\nearly code, before VFS is up.  Therefore, such channels can be created and\nused as soon as kmem_cache_init() completed.\n\nThis is needed by kmemtrace to do tracing in early kernel code.\n\n[kosaki.motohiro@jp.fujitsu.com: build 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": "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": "89081d17f7bb81d89fa1aa9b70f821c5cf4d39e9",
      "tree": "1835fa64801fee048c8074ae4d63b0a7f4b14ee3",
      "parents": [
        "3ab83521378268044a448113c6aa9a9e245f4d2f"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Fri Jul 25 19:45:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "kexec jump: save/restore device state\n\nThis patch implements devices state save/restore before after kexec.\n\nThis patch together with features in kexec_jump patch can be used for\nfollowing:\n\n- A simple hibernation implementation without ACPI support.  You can kexec a\n  hibernating kernel, save the memory image of original system and shutdown\n  the system.  When resuming, you restore the memory image of original system\n  via ordinary kexec load then jump back.\n\n- Kernel/system debug through making system snapshot.  You can make system\n  snapshot, jump back, do some thing and make another system snapshot.\n\n- Cooperative multi-kernel/system.  With kexec jump, you can switch between\n  several kernels/systems quickly without boot process except the first time.\n  This appears like swap a whole kernel/system out/in.\n\n- A general method to call program in physical mode (paging turning\n  off). This can be used to invoke BIOS code under Linux.\n\nThe following user-space tools can be used with kexec jump:\n\n- kexec-tools needs to be patched to support kexec jump. The patches\n  and the precompiled kexec can be download from the following URL:\n       source: http://khibernation.sourceforge.net/download/release_v10/kexec-tools/kexec-tools-src_git_kh10.tar.bz2\n       patches: http://khibernation.sourceforge.net/download/release_v10/kexec-tools/kexec-tools-patches_git_kh10.tar.bz2\n       binary: http://khibernation.sourceforge.net/download/release_v10/kexec-tools/kexec_git_kh10\n\n- makedumpfile with patches are used as memory image saving tool, it\n  can exclude free pages from original kernel memory image file. The\n  patches and the precompiled makedumpfile can be download from the\n  following URL:\n       source: http://khibernation.sourceforge.net/download/release_v10/makedumpfile/makedumpfile-src_cvs_kh10.tar.bz2\n       patches: http://khibernation.sourceforge.net/download/release_v10/makedumpfile/makedumpfile-patches_cvs_kh10.tar.bz2\n       binary: http://khibernation.sourceforge.net/download/release_v10/makedumpfile/makedumpfile_cvs_kh10\n\n- An initramfs image can be used as the root file system of kexeced\n  kernel. An initramfs image built with \"BuildRoot\" can be downloaded\n  from the following URL:\n       initramfs image: http://khibernation.sourceforge.net/download/release_v10/initramfs/rootfs_cvs_kh10.gz\n  All user space tools above are included in the initramfs image.\n\nUsage example of simple hibernation:\n\n1. Compile and install patched kernel with following options selected:\n\nCONFIG_X86_32\u003dy\nCONFIG_RELOCATABLE\u003dy\nCONFIG_KEXEC\u003dy\nCONFIG_CRASH_DUMP\u003dy\nCONFIG_PM\u003dy\nCONFIG_HIBERNATION\u003dy\nCONFIG_KEXEC_JUMP\u003dy\n\n2. Build an initramfs image contains kexec-tool and makedumpfile, or\n   download the pre-built initramfs image, called rootfs.gz in\n   following text.\n\n3. Prepare a partition to save memory image of original kernel, called\n   hibernating partition in following text.\n\n4. Boot kernel compiled in step 1 (kernel A).\n\n5. In the kernel A, load kernel compiled in step 1 (kernel B) with\n   /sbin/kexec. The shell command line can be as follow:\n\n   /sbin/kexec --load-preserve-context /boot/bzImage --mem-min\u003d0x100000\n     --mem-max\u003d0xffffff --initrd\u003drootfs.gz\n\n6. Boot the kernel B with following shell command line:\n\n   /sbin/kexec -e\n\n7. The kernel B will boot as normal kexec. In kernel B the memory\n   image of kernel A can be saved into hibernating partition as\n   follow:\n\n   jump_back_entry\u003d`cat /proc/cmdline | tr \u0027 \u0027 \u0027\\n\u0027 | grep kexec_jump_back_entry | cut -d \u0027\u003d\u0027`\n   echo $jump_back_entry \u003e kexec_jump_back_entry\n   cp /proc/vmcore dump.elf\n\n   Then you can shutdown the machine as normal.\n\n8. Boot kernel compiled in step 1 (kernel C). Use the rootfs.gz as\n   root file system.\n\n9. In kernel C, load the memory image of kernel A as follow:\n\n   /sbin/kexec -l --args-none --entry\u003d`cat kexec_jump_back_entry` dump.elf\n\n10. Jump back to the kernel A as follow:\n\n   /sbin/kexec -e\n\n   Then, kernel A is resumed.\n\nImplementation point:\n\nTo support jumping between two kernels, before jumping to (executing)\nthe new kernel and jumping back to the original kernel, the devices\nare put into quiescent state, and the state of devices and CPU is\nsaved. After jumping back from kexeced kernel and jumping to the new\nkernel, the state of devices and CPU are restored accordingly. The\ndevices/CPU state save/restore code of software suspend is called to\nimplement corresponding function.\n\nKnown issues:\n\n- Because the segment number supported by sys_kexec_load is limited,\n  hibernation image with many segments may not be load. This is\n  planned to be eliminated by adding a new flag to sys_kexec_load to\n  make a image can be loaded with multiple sys_kexec_load invoking.\n\nNow, only the i386 architecture is supported.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ab83521378268044a448113c6aa9a9e245f4d2f",
      "tree": "e9e8496577e4b2e994edf204e9a8ae7c026eec95",
      "parents": [
        "7fccf0326536c1b245b98740d489abb9aab69a12"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Fri Jul 25 19:45:07 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "kexec jump\n\nThis patch provides an enhancement to kexec/kdump.  It implements the\nfollowing features:\n\n- Backup/restore memory used by the original kernel before/after\n  kexec.\n\n- Save/restore CPU state before/after kexec.\n\nThe features of this patch can be used as a general method to call program in\nphysical mode (paging turning off).  This can be used to call BIOS code under\nLinux.\n\nkexec-tools needs to be patched to support kexec jump. The patches and\nthe precompiled kexec can be download from the following URL:\n\n       source: http://khibernation.sourceforge.net/download/release_v10/kexec-tools/kexec-tools-src_git_kh10.tar.bz2\n       patches: http://khibernation.sourceforge.net/download/release_v10/kexec-tools/kexec-tools-patches_git_kh10.tar.bz2\n       binary: http://khibernation.sourceforge.net/download/release_v10/kexec-tools/kexec_git_kh10\n\nUsage example of calling some physical mode code and return:\n\n1. Compile and install patched kernel with following options selected:\n\nCONFIG_X86_32\u003dy\nCONFIG_KEXEC\u003dy\nCONFIG_PM\u003dy\nCONFIG_KEXEC_JUMP\u003dy\n\n2. Build patched kexec-tool or download the pre-built one.\n\n3. Build some physical mode executable named such as \"phy_mode\"\n\n4. Boot kernel compiled in step 1.\n\n5. Load physical mode executable with /sbin/kexec. The shell command\n   line can be as follow:\n\n   /sbin/kexec --load-preserve-context --args-none phy_mode\n\n6. Call physical mode executable with following shell command line:\n\n   /sbin/kexec -e\n\nImplementation point:\n\nTo support jumping without reserving memory.  One shadow backup page (source\npage) is allocated for each page used by kexeced code image (destination\npage).  When do kexec_load, the image of kexeced code is loaded into source\npages, and before executing, the destination pages and the source pages are\nswapped, so the contents of destination pages are backupped.  Before jumping\nto the kexeced code image and after jumping back to the original kernel, the\ndestination pages and the source pages are swapped too.\n\nC ABI (calling convention) is used as communication protocol between\nkernel and called code.\n\nA flag named KEXEC_PRESERVE_CONTEXT for sys_kexec_load is added to\nindicate that the loaded kernel image is used for jumping back.\n\nNow, only the i386 architecture is supported.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fccf0326536c1b245b98740d489abb9aab69a12",
      "tree": "33344d665a3927d97e105351308b2d425ddd0749",
      "parents": [
        "f1d82698029b92a88f5500b99f66514b6dee2bc3"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Fri Jul 25 19:45:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:04 2008 -0700"
      },
      "message": "kernel/kexec.c: make \u0027kimage_terminate\u0027 void\n\nSince kimage_terminate() always returns 0, make it void.\n\nSigned-off-by: WANG Cong \u003cwangcong@zeuux.org\u003e\nSigned-off-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": "a2e2e3577c3ef2b5dbb866e97e612aae4adfa32f",
      "tree": "9f0889d3046078e1db7e8310171c7e3a48be42cc",
      "parents": [
        "44ccac13c7f4728cf2992d49384671a176db74dd"
      ],
      "author": {
        "name": "David Brownell",
        "email": "dbrownell@users.sourceforge.net",
        "time": "Fri Jul 25 19:44:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:02 2008 -0700"
      },
      "message": "pm selftest: rtc paranoia\n\nCope with a quirk of some RTCs (notably ACPI ones) which aren\u0027t guaranteed\nto implement oneshot behavior when they woke the system from sleeep:\nforcibly disable the alarm, just in case.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a7a201c51c324876d00a54e7208af6af12d1ca4",
      "tree": "c996456a44722bc8bd58661c5d869e9d9d1d2ea5",
      "parents": [
        "0bc3cc03fa6e1c20aecb5a33356bcaae410640b9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:50:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:48:59 2008 +0200"
      },
      "message": "cpumask: export cpumask_of_cpu_map\n\nfix:\n\n ERROR: \"cpumask_of_cpu_map\" [drivers/acpi/processor.ko] undefined!\n ERROR: \"cpumask_of_cpu_map\" [arch/x86/kernel/microcode.ko] undefined!\n ERROR: \"cpumask_of_cpu_map\" [arch/x86/kernel/cpu/cpufreq/speedstep-ich.ko] undefined!\n ERROR: \"cpumask_of_cpu_map\" [arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko] undefined!\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "0bc3cc03fa6e1c20aecb5a33356bcaae410640b9",
      "tree": "7dab4b0002298b45e31053fe0f37e5ff745682b7",
      "parents": [
        "6524d938b3360504b43a1278b5a8403e85383d1a"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Thu Jul 24 18:21:31 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:40:33 2008 +0200"
      },
      "message": "cpumask: change cpumask_of_cpu_ptr to use new cpumask_of_cpu\n\n  * Replace previous instances of the cpumask_of_cpu_ptr* macros\n    with a the new (lvalue capable) generic cpumask_of_cpu().\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6524d938b3360504b43a1278b5a8403e85383d1a",
      "tree": "8edbe9e88883e992f63c68ca0f1ea3ab4594ebb9",
      "parents": [
        "b8d317d10cca76cabe6b03ebfeb23cc99118b731"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Thu Jul 24 18:21:30 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:40:33 2008 +0200"
      },
      "message": "cpumask: put cpumask_of_cpu_map in the initdata section\n\n  * Create the cpumask_of_cpu_map statically in the init data section\n    using NR_CPUS but replace it during boot up with one sized by\n    nr_cpu_ids (num possible cpus).\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b8d317d10cca76cabe6b03ebfeb23cc99118b731",
      "tree": "a997d21960099095822ffbfe8be4d3f6176f33a9",
      "parents": [
        "024e8ac04453b3525448c31ef39848cf675ba6db"
      ],
      "author": {
        "name": "Mike Travis",
        "email": "travis@sgi.com",
        "time": "Thu Jul 24 18:21:29 2008 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 16:40:32 2008 +0200"
      },
      "message": "cpumask: make cpumask_of_cpu_map generic\n\nIf an arch doesn\u0027t define cpumask_of_cpu_map, create a generic\nstatically-initialized one for them.  This allows removal of the buggy\ncpumask_of_cpu() macro (\u0026cpumask_of_cpu() gives address of\nout-of-scope var).\n\nAn arch with NR_CPUS of 4096 probably wants to allocate this itself\nbased on the actual number of CPUs, since otherwise they\u0027re using 2MB\nof rodata (1024 cpus means 128k).  That\u0027s what\nCONFIG_HAVE_CPUMASK_OF_CPU_MAP is for (only x86/64 does so at the\nmoment).\n\nIn future as we support more CPUs, we\u0027ll need to resort to a\nget_cpu_map()/put_cpu_map() allocation scheme.\n\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1fe371044b21b226b96a9dd959e971b50b28c78e",
      "tree": "1ce8243c13d869155f607b739a9d3e25493a1d31",
      "parents": [
        "dcf309974555d17019c6a8e1a425238f17990b71"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 15:09:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Jul 26 15:08:22 2008 +0200"
      },
      "message": "ftrace: fix modular build\n\nfix:\n\n ERROR: \"start_critical_timings\" [drivers/acpi/processor.ko] undefined!\n ERROR: \"stop_critical_timings\" [drivers/acpi/processor.ko] undefined!\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9b81361631bbb1d85c99ddec677d42afe516737b",
      "tree": "20682b5ce245d9a953f316517bd5006cf7ce4f2c",
      "parents": [
        "e44d1b2998d62a1f2f4d7eb17b56ba396535509f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jul 25 13:02:37 2008 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 11:35:41 2008 -0700"
      },
      "message": "signalfd: fix undefined reference to `compat_sys_signalfd4\u0027 when !CONFIG_SIGNALFD\n\nfix:\n\narch/x86/ia32/built-in.o: In function `ia32_sys_call_table\u0027:\n(.rodata+0xa38): undefined reference to `compat_sys_signalfd4\u0027\n\non !CONFIG_SIGNALFD.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b81f3ea92ba1fa676775677679889dc2a7f03c8b",
      "tree": "ec2d6dc99c1b6f7372a5d9bd3d3e75b79b2a899b",
      "parents": [
        "9b0975a20af1ff2f367e3b6b7c150eb114c6b500"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Fri Jul 25 01:48:55 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "taskstats: remove initialization of static per-cpu variable\n\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "016ae219b920c4e606088761d3d6070cdf8ba706",
      "tree": "6bf9035016e8d9131a54cf6343e056a5dcdc74aa",
      "parents": [
        "873b47717732c2f33a4b14de02571a4295a02f0c"
      ],
      "author": {
        "name": "Keika Kobayashi",
        "email": "kobayashi.kk@ncos.nec.co.jp",
        "time": "Fri Jul 25 01:48:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "per-task-delay-accounting: update taskstats for memory reclaim delay\n\nAdd members for memory reclaim delay to taskstats, and accumulate them in\n__delayacct_add_tsk() .\n\nSigned-off-by: Keika Kobayashi \u003ckobayashi.kk@ncos.nec.co.jp\u003e\nCc: Hiroshi Shimamoto \u003ch-shimamoto@ct.jp.nec.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "873b47717732c2f33a4b14de02571a4295a02f0c",
      "tree": "aaef0fe872dbd4ce5c290f3509e5db69f9a3f04a",
      "parents": [
        "3e85ba034deec351f02cb55ff225bbd616463841"
      ],
      "author": {
        "name": "Keika Kobayashi",
        "email": "kobayashi.kk@ncos.nec.co.jp",
        "time": "Fri Jul 25 01:48:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "per-task-delay-accounting: add memory reclaim delay\n\nSometimes, application responses become bad under heavy memory load.\nApplications take a bit time to reclaim memory.  The statistics, how long\nmemory reclaim takes, will be useful to measure memory usage.\n\nThis patch adds accounting memory reclaim to per-task-delay-accounting for\naccounting the time of do_try_to_free_pages().\n\n\u003ci.e\u003e\n\n- When System is under low memory load,\n  memory reclaim may not occur.\n\n$ free\n             total       used       free     shared    buffers     cached\nMem:       8197800    1577300    6620500          0       4808    1516724\n-/+ buffers/cache:      55768    8142032\nSwap:     16386292          0   16386292\n\n$ vmstat 1\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0      0 5069748  10612 3014060    0    0     0     0    3   26  0  0 100  0\n 0  0      0 5069748  10612 3014060    0    0     0     0    4   22  0  0 100  0\n 0  0      0 5069748  10612 3014060    0    0     0     0    3   18  0  0 100  0\n\nMeasure the time of tar command.\n\n$ ls -s test.dat\n1501472 test.dat\n\n$ time tar cvf test.tar test.dat\nreal    0m13.388s\nuser    0m0.116s\nsys     0m5.304s\n\n$ ./delayget -d -p \u003cpid\u003e\nCPU             count     real total  virtual total    delay total\n                  428     5528345500     5477116080       62749891\nIO              count    delay total\n                  338     8078977189\nSWAP            count    delay total\n                    0              0\nRECLAIM         count    delay total\n                    0              0\n\n- When system is under heavy memory load\n  memory reclaim may occur.\n\n$ vmstat 1\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa\n 0  0 7159032  49724   1812   3012    0    0     0     0    3   24  0  0 100  0\n 0  0 7159032  49724   1812   3012    0    0     0     0    4   24  0  0 100  0\n 0  0 7159032  49848   1812   3012    0    0     0     0    3   22  0  0 100  0\n\nIn this case, one process uses more 8G memory\nby execution of malloc() and memset().\n\n$ time tar cvf test.tar test.dat\nreal    1m38.563s        \u003c-  increased by 85 sec\nuser    0m0.140s\nsys     0m7.060s\n\n$ ./delayget -d -p \u003cpid\u003e\nCPU             count     real total  virtual total    delay total\n                 9021     7140446250     7315277975      923201824\nIO              count    delay total\n                 8965    90466349669\nSWAP            count    delay total\n                    3       21036367\nRECLAIM         count    delay total\n                  740    61011951153\n\nIn the later case, the value of RECLAIM is increasing.\nSo, taskstats can show how much memory reclaim influences TAT.\n\nSigned-off-by: Keika Kobayashi \u003ckobayashi.kk@ncos.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujistu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3e85ba034deec351f02cb55ff225bbd616463841",
      "tree": "104931bdb095bd9f7cb987e50800a036b0c2dcb4",
      "parents": [
        "297c5d92634c809cef23d73e7b2556f2528ff7e2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jul 25 01:48:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "tsacct: fix bacct_add_tsk()\u0027s use of do_div()\n\nFix bacct_add_tsk()\u0027s use of do_div() on an s64 by making ac_etime a u64\ninstead and dividing that.\n\nPossibly this should be guarded lest the interval calculation turn up\nnegative, but the possible negativity of the result of the division is\ncast away, and it shouldn\u0027t end up negative anyway.\n\nThis was introduced by patch f3cef7a99469afc159fec3a61b42dc7ca5b6824f.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jay Lan \u003cjlan@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "297c5d92634c809cef23d73e7b2556f2528ff7e2",
      "tree": "d006fa29daa24242c64cff3b66dd75fbb0003b0f",
      "parents": [
        "0c18d7a5df82524e634637c3aec24d4cba096442"
      ],
      "author": {
        "name": "Andrea Righi",
        "email": "righi.andrea@gmail.com",
        "time": "Fri Jul 25 01:48:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "task IO accounting: provide distinct tgid/tid I/O statistics\n\nReport per-thread I/O statistics in /proc/pid/task/tid/io and aggregate\nparent I/O statistics in /proc/pid/io.  This approach follows the same\nmodel used to account per-process and per-thread CPU times.\n\nAs a practial application, this allows for example to quickly find the top\nI/O consumer when a process spawns many child threads that perform the\nactual I/O work, because the aggregated I/O statistics can always be found\nin /proc/pid/io.\n\n[ Oleg Nesterov points out that we should check that the task is still\n  alive before we iterate over the threads, but also says that we can do\n  that fixup on top of this later.  - Linus ]\n\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrea Righi \u003crighi.andrea@gmail.com\u003e\nCc: Matt Heaton \u003cmatt@hostmonster.com\u003e\nCc: Shailabh Nagar \u003cnagar@watson.ibm.com\u003e\nAcked-by-with-comments: 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": "0c18d7a5df82524e634637c3aec24d4cba096442",
      "tree": "9b49f775403c77b8fe4d59f4d7c84d43e26e3f5b",
      "parents": [
        "7d1e13505be8c2bd2207894f4e0f069e1f9b51c9"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "bsdacct: fix and add comments around acct_process()\n\nFix the one describing what this function is and add one more - about\nlocking absence around pid namespaces loop.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d1e13505be8c2bd2207894f4e0f069e1f9b51c9",
      "tree": "d8471439c564bb15532c9dac041d0787faee2c90",
      "parents": [
        "b5a7174875ea570cc675f2c503e800db8efdd6a7"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:48 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "bsdacct: account dying tasks in all relevant namespaces\n\nThis just makes the acct_proces walk the pid namespaces from current up to\nthe top and account a task in each with the accounting turned on.\n\nns-\u003eparent access if safe lockless, since current it still alive and holds\nits namespace, which in turn holds its parent.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"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": "b5a7174875ea570cc675f2c503e800db8efdd6a7",
      "tree": "19bddd97fa7bfc762a6f2bf3fa88d3df45ba52aa",
      "parents": [
        "0b6b030fc30d169bb406b34b4fc60d99dde4a9c6"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "bsdacct: turn acct off for all pidns-s on umount time\n\nAll the bsd_acct_strcts with opened accounting are linked into a global\nlist.  So, the acct_auto_close(_mnt) walks one and drops the accounting\nfor each.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"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": "0b6b030fc30d169bb406b34b4fc60d99dde4a9c6",
      "tree": "2bf5160ccfe22107937ddc03a1acd4fc9b1ccaf2",
      "parents": [
        "6248b1b342005a428b1247b4e89249da1528d88d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "bsdacct: switch from global bsd_acct_struct instance to per-pidns one\n\nAllocate the structure on the first call to sys_acct().  After this each\nnamespace, that ordered the accounting, will live with this structure till\nits own death.\n\nTwo notes\n- routines, that close the accounting on fs umount time use\n  the init_pid_ns\u0027s acct by now;\n- accounting routine accounts to dying task\u0027s namespace\n  (also by now).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"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": "6248b1b342005a428b1247b4e89249da1528d88d",
      "tree": "307885e0e15dc646e2f63ab1e148ab13ed260e0f",
      "parents": [
        "a75d97976517dcda69150fd81d6be86ae63324a1"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "bsdacct: make internal code work with passed bsd_acct_struct, not global\n\nThis adds the appropriate pointer to all the internal (i.e.  static)\nfunctions that work with global acct instance.  API calls pass a global\ninstance to them (while we still have such).\n\nMostly this is a s/acct_globals./acct-\u003e/ over the file.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"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": "a75d97976517dcda69150fd81d6be86ae63324a1",
      "tree": "57639d58edc123dd77413d929e2759cdd9159c23",
      "parents": [
        "e59a04a7aa5ce2483470aee4f2eb79ba6b9afe8b"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:47 2008 -0700"
      },
      "message": "bsdacct: turn the acct_lock from on-the-struct to global\n\nDon\u0027t use per-bsd-acct-struct lock, but work with a global one.\n\nThis lock is taken for short periods, so it doesn\u0027t seem it\u0027ll become a\nbottleneck, but it will allow us to easily avoid many locking difficulties\nin the future.\n\nSo this is a mostly s/acct_globals.lock/acct_lock/ over the file.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"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": "e59a04a7aa5ce2483470aee4f2eb79ba6b9afe8b",
      "tree": "0cd0b592198740572b3b75c23a91d17a7f8d730b",
      "parents": [
        "1c552858ac2b1732a99d234d46b98098baef41ff"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:46 2008 -0700"
      },
      "message": "bsdacct: make check timer accept a bsd_acct_struct argument\n\nWe\u0027re going to have many bsd_acct_struct instances, not just one, so the\ntimer (currently working with a global one) has to know which one to work\nwith.\n\nUse a handy setup_timer macro for it (thanks to Oleg for one).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"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": "1c552858ac2b1732a99d234d46b98098baef41ff",
      "tree": "cfbd66b72a9fced68b1b937ef353a1dcf9b0b1f0",
      "parents": [
        "20fad13ac66ac001c19220d3d08b4de5b6cca6e1"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:46 2008 -0700"
      },
      "message": "bsdacct: \"truthify\" a comment near acct_process\n\nThe acct_process does not accept any arguments actually.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"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": "84406c153a5bfa5d8b428a0933e9d39db6b59a75",
      "tree": "5f39add26e885b810118fbf1740a61f1aac88a4d",
      "parents": [
        "081e4c8a75692c21f3a119a81ca3270081879d0e"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:46 2008 -0700"
      },
      "message": "pidns: use kzalloc when allocating new pid_namespace struct\n\nIt makes many fields initialization implicit helping in auto-setting\n#ifdef-ed fields (bsd-acct related pointer will be such).\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"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": "081e4c8a75692c21f3a119a81ca3270081879d0e",
      "tree": "ded825beb43c21c28e3ff4fdf0e4efe6a2b0ca66",
      "parents": [
        "49b5cf34727a6c1be1568ab28e89a2d9a6bf51e0"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:46 2008 -0700"
      },
      "message": "bsdacct: rename acct_gbls to bsd_acct_struct\n\nAfter I fixed access to task-\u003etgid in kernel/acct.c, Oleg pointed out some\nbad side effects with this accounting vs pid namespaces interaction.  I.e.\n when some task in pid namespace sets this accounting up, this blocks all\nthe others from doing the same.  Restricting this to init namespace only\ncould help, but didn\u0027t look a graceful solution.\n\nSo here is the approach to make this accounting work with pid namespaces\nproperly.\n\nThe idea is simple - when a task dies it accounts itself in each namespace\nit is visible from and which set the accounting up.\n\nFor example here are the commands run and the output of lastcomm from init\nand sub namespaces:\n\ninit_ns# accton pacct\n sub_ns# accton pacct (this is a different file - sub ns is run in\n                       a chroot-ed environment)\ninit_ns# cat /dev/null\n sub_ns# ls /dev/null\ninit_ns# accton\n sub_ns# accton\n\n sub_ns#  lastcomm -f pacct\nls                      0        [136,0]    0.00 secs Thu May 15 10:30\naccton                  0        [136,0]    0.00 secs Thu May 15 10:30\n\ninit_ns# lastcomm -f pacct\naccton                  root     pts/0      0.00 secs Thu May 15 14:30 \u003c\u003c got from sub\ncat                     root     pts/1      0.00 secs Thu May 15 14:30\nls                      root     pts/0      0.00 secs Thu May 15 14:30 \u003c\u003c got from sub\naccton                  root     pts/1      0.00 secs Thu May 15 14:30\n\nThat was the summary, the details are in patches.\n\nThis patch:\n\nIt will be visible in pid_namespace.h file, so fix its name to look better\noutside the acct.c file.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"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": "49b5cf34727a6c1be1568ab28e89a2d9a6bf51e0",
      "tree": "29505ad668bfadc67a670ad4ebc5c65823a87413",
      "parents": [
        "7394f0f6c0baab650ea9194cb1be847df646fb57"
      ],
      "author": {
        "name": "Jonathan Lim",
        "email": "jlim@sgi.com",
        "time": "Fri Jul 25 01:48:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:46 2008 -0700"
      },
      "message": "accounting: account for user time when updating memory integrals\n\nAdapt acct_update_integrals() to include user time when calculating the time\ndifference.  The units of acct_rss_mem1 and acct_vm_mem1 are also changed from\npages-jiffies to pages-usecs to avoid calling jiffies_to_usecs() in\nxacct_add_tsk() which might overflow.\n\nSigned-off-by: Jonathan Lim \u003cjlim@sgi.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": "7394f0f6c0baab650ea9194cb1be847df646fb57",
      "tree": "dac44a6ddeac45d0ac604053b798291e68d2a70a",
      "parents": [
        "a89cc1959d0ea5f36bf7421dc97b34f03809637d"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 01:48:40 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:45 2008 -0700"
      },
      "message": "unexport uts_sem\n\nWith the removal of the Solaris binary emulation the export of\nuts_sem became unused.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a89cc1959d0ea5f36bf7421dc97b34f03809637d",
      "tree": "3532653b4246c9771fb7bcbfcc1dd979de12415e",
      "parents": [
        "28325df0d9339b7f3aba9c45174d4586223ef46b"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Fri Jul 25 01:48:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:45 2008 -0700"
      },
      "message": "markers: fix sparse integer as NULL pointer warning\n\nkernel/trace/trace_sysprof.c:164:20: warning: Using plain integer as NULL pointer\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nCc: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28325df0d9339b7f3aba9c45174d4586223ef46b",
      "tree": "ca5fcbc3b2bd63ee94b2ce2fe80752ea2d9c884f",
      "parents": [
        "24879a8e3e68f146d4d85528cc0b5dea712b77c5"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Jul 25 01:48:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:45 2008 -0700"
      },
      "message": "markers: use rcu_barrier_sched() and call_rcu_sched()\n\nrcu_barrier_sched() and call_rcu_sched() were introduced in 2.6.26 for the\nMarkers.  Change the marker code to use them.\n\nIt can be seen as a fix since the marker code was using an ugly,\ntemporary, #ifdef hack to work around CONFIG_PREEMPT_RCU.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nAcked-by: Paul McKenney \u003cpaulmck@us.ibm.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": "e49859e71e0318b564de1546bdc30fab738f9deb",
      "tree": "74f63bbfad6ca9682404e85c3d69482663273004",
      "parents": [
        "19b0cfcca41dd772065671ad0584e1cea0f3fd13"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:36 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:45 2008 -0700"
      },
      "message": "pidns: remove now unused find_pid function.\n\nThis one had the only users so far - the kill_proc, which is removed, so\ndrop this (invalid in namespaced world) call too.\n\nAnd of course - erase all references on it from comments.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"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": "19b0cfcca41dd772065671ad0584e1cea0f3fd13",
      "tree": "6a8a627e2e2f3f26b02fc4228517c421e66a8043",
      "parents": [
        "33166b1ffca5e1945246bcaa77d72a22b0d3e531"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Fri Jul 25 01:48:35 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:45 2008 -0700"
      },
      "message": "pidns: remove now unused kill_proc function\n\nThis function operated on a pid_t to kill a task, which is no longer valid\nin a containerized system.\n\nIt has finally lost all its users and we can safely remove it from the\ntree.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"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": "99541c23cd32bacf1a591ca537a7c0cb9053ad7e",
      "tree": "c7156bfa677ddcf6a376ca7d9eaa8d924d7824db",
      "parents": [
        "339caf2a224fc9af0f01686bf287dda32c6efca6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@parallels.com",
        "time": "Fri Jul 25 01:48:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:45 2008 -0700"
      },
      "message": "sysctl: check for bogus modes\n\nCatch, e. g., 644/0644 typo.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@parallels.com\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": "339caf2a224fc9af0f01686bf287dda32c6efca6",
      "tree": "c7d016474620b40913b89c610d733a36ac81a647",
      "parents": [
        "6eedf8d30d2b48e86fbcee1a32fb2fa5f42219ee"
      ],
      "author": {
        "name": "David Sterba",
        "email": "dsterba@suse.cz",
        "time": "Fri Jul 25 01:48:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:45 2008 -0700"
      },
      "message": "proc: misplaced export of find_get_pid\n\nMove EXPORT_SYMBOL right after the func\n\nSigned-off-by: David Sterba \u003cdsterba@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8448502cfc915f70e3f8923849ade27d472044cb",
      "tree": "964522eb36ea5424ece910092da5dce773c1f6cc",
      "parents": [
        "8de6d308bab4f67fcf953562f9f08f9527cad72d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:41 2008 -0700"
      },
      "message": "workqueues: do CPU_UP_CANCELED if CPU_UP_PREPARE fails\n\nThe bug was pointed out by Akinobu Mita \u003cakinobu.mita@gmail.com\u003e, and this\npatch is based on his original patch.\n\nworkqueue_cpu_callback(CPU_UP_PREPARE) expects that if it returns\nNOTIFY_BAD, _cpu_up() will send CPU_UP_CANCELED then.\n\nHowever, this is not true since\n\n\t\"cpu hotplug: cpu: deliver CPU_UP_CANCELED only to NOTIFY_OKed callbacks with CPU_UP_PREPARE\"\n\tcommit: a0d8cdb652d35af9319a9e0fb7134de2a276c636\n\nThe callback which has returned NOTIFY_BAD will not receive\nCPU_UP_CANCELED.  Change the code to fulfil the CPU_UP_CANCELED logic if\nCPU_UP_PREPARE fails.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nReported-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": "8de6d308bab4f67fcf953562f9f08f9527cad72d",
      "tree": "d896d82088d50a6c9d56300225605c5658f44549",
      "parents": [
        "ef1ca236b8d645349ed6569598ae3f6c1b9511c0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "workqueues: schedule_on_each_cpu() can use schedule_work_on()\n\nschedule_on_each_cpu() can use schedule_work_on() to avoid the code\nduplication.\n\nSigned-off-by: 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": "ef1ca236b8d645349ed6569598ae3f6c1b9511c0",
      "tree": "a193741b4aca43c90fcf2bf8be0d999d27b99eba",
      "parents": [
        "a67da70dc0955580665f5444f318b92e69a3c272"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "workqueues: queue_work() can use queue_work_on()\n\nqueue_work() can use queue_work_on() to avoid the code duplication.\n\nSigned-off-by: 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": "a67da70dc0955580665f5444f318b92e69a3c272",
      "tree": "204164627e0fb6495516b24cca005845f492f600",
      "parents": [
        "69b895fd13d73aebf62b75502eb6513d43057ba3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "workqueues: lockdep annotations for flush_work()\n\nAdd lockdep annotations to flush_work() and update the comment.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Jarek Poplawski \u003cjarkao2@o2.pl\u003e\nAcked-by: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3da1c84c00c7e5fa8348336bd8c342f9128b0f14",
      "tree": "af960c65a670319fa86846a493a6d97f9fb37cd9",
      "parents": [
        "8616a89ab761239c963eea3a63be383f127cc7e8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "workqueues: make get_online_cpus() useable for work-\u003efunc()\n\nworkqueue_cpu_callback(CPU_DEAD) flushes cwq-\u003ethread under\ncpu_maps_update_begin().  This means that the multithreaded workqueues\ncan\u0027t use get_online_cpus() due to the possible deadlock, very bad and\nvery old problem.\n\nIntroduce the new state, CPU_POST_DEAD, which is called after\ncpu_hotplug_done() but before cpu_maps_update_done().\n\nChange workqueue_cpu_callback() to use CPU_POST_DEAD instead of CPU_DEAD.\nThis means that create/destroy functions can\u0027t rely on get_online_cpus()\nany longer and should take cpu_add_remove_lock instead.\n\n[akpm@linux-foundation.org: fix CONFIG_SMP\u003dn]\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.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": "8616a89ab761239c963eea3a63be383f127cc7e8",
      "tree": "b74212be00198b64d0c3fcbf552e0e3ced01a350",
      "parents": [
        "db700897224b5ebdf852f2d38920ce428940d059"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "workqueues: schedule_on_each_cpu: use flush_work()\n\nChange schedule_on_each_cpu() to use flush_work() instead of\nflush_workqueue(), this way we don\u0027t wait for other work_struct\u0027s which\ncan be queued meanwhile.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db700897224b5ebdf852f2d38920ce428940d059",
      "tree": "98f0052929e79b35393352addde70fa5e97b8dee",
      "parents": [
        "1a4d9b0aa0d3c50314e57525a5e5ec2cfc48b4c8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "workqueues: implement flush_work()\n\nMost of users of flush_workqueue() can be changed to use cancel_work_sync(),\nbut sometimes we really need to wait for the completion and cancelling is not\nan option. schedule_on_each_cpu() is good example.\n\nAdd the new helper, flush_work(work), which waits for the completion of the\nspecific work_struct. More precisely, it \"flushes\" the result of of the last\nqueue_work() which is visible to the caller.\n\nFor example, this code\n\n\tqueue_work(wq, work);\n\t/* WINDOW */\n\tqueue_work(wq, work);\n\n\tflush_work(work);\n\ndoesn\u0027t necessary work \"as expected\". What can happen in the WINDOW above is\n\n\t- wq starts the execution of work-\u003efunc()\n\n\t- the caller migrates to another CPU\n\nnow, after the 2nd queue_work() this work is active on the previous CPU, and\nat the same time it is queued on another. In this case flush_work(work) may\nreturn before the first work-\u003efunc() completes.\n\nIt is trivial to add another helper\n\n\tint flush_work_sync(struct work_struct *work)\n\t{\n\t\treturn flush_work(work) || wait_on_work(work);\n\t}\n\nwhich works \"more correctly\", but it has to iterate over all CPUs and thus\nit much slower than flush_work().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nAcked-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a4d9b0aa0d3c50314e57525a5e5ec2cfc48b4c8",
      "tree": "2ea94cce9fe2cfbcfdc2fd25d33e57f31e0b2699",
      "parents": [
        "565b9b14e7f48131bca58840aa404bbef058fa89"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:47 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "workqueues: insert_work: use \"list_head *\" instead of \"int tail\"\n\ninsert_work() inserts the new work_struct before or after cwq-\u003eworklist,\ndepending on the \"int tail\" parameter. Change it to accept \"list_head *\"\ninstead, this shrinks .text a bit and allows us to insert the barrier\nafter specific work_struct.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nCc: Max Krasnyansky \u003cmaxk@qualcomm.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a94e2d408eaedbd85aae259621d46fafc10479a2",
      "tree": "d853f7b2e183875c6ad90fb6ab38e084b037d043",
      "parents": [
        "182c515fd2a942623aed4e4e0e0b37fe96571b05"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "coredump: kill mm-\u003ecore_done\n\nNow that we have core_state-\u003edumper list we can use it to wake up the\nsub-threads waiting for the coredump completion.\n\nThis uglifies the code and .text grows by 47 bytes, but otoh mm_struct\nlessens by sizeof(struct completion).  Also, with this change we can\ndecouple exit_mm() from the coredumping code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "b564daf806d492dd4f7afe9b6c83b8d35d137669",
      "tree": "fbd6d186035b9a0a270fca97887da5d6b106a60c",
      "parents": [
        "9d5b327bf198d2720666de958dcc2ae219d86952"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:40 2008 -0700"
      },
      "message": "coredump: construct the list of coredumping threads at startup time\n\nbinfmt-\u003ecore_dump() has to iterate over the all threads in system in order\nto find the coredumping threads and construct the list using the\nGFP_ATOMIC allocations.\n\nWith this patch each thread allocates the list node on exit_mm()\u0027s stack and\nadds itself to the list.\n\nThis allows us to do further changes:\n\n\t- simplify -\u003ecore_dump()\n\n\t- change exit_mm() to clear -\u003emm first, then wait for -\u003ecore_done.\n\t  this makes the coredumping process visible to oom_kill\n\n\t- kill mm-\u003ecore_done\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: 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": "c5f1cc8c1828486a61ab3e575da6e2c62b34d399",
      "tree": "9cc88e7d1dae063482e1e9117ded747578cbd7ad",
      "parents": [
        "8cd9c249128a59e8e833d454a784b0cbd338d468"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:42 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "coredump: turn core_state-\u003enr_threads into atomic_t\n\nTurn core_state-\u003enr_threads into atomic_t and kill now unneeded\ndown_write(\u0026mm-\u003emmap_sem) in exit_mm().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "999d9fc1670bc082928b93b11d1f2e0e417d973c",
      "tree": "e540e7fd2fab970ba2be5e39ac9f8282a373bc24",
      "parents": [
        "32ecb1f26dd50eeaac4e3f4dea4541c97848e459"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "coredump: move mm-\u003ecore_waiters into struct core_state\n\nMove mm-\u003ecore_waiters into \"struct core_state\" allocated on stack.  This\nshrinks mm_struct a little bit and allows further changes.\n\nThis patch mostly does s/core_waiters/core_state.  The only essential\nchange is that coredump_wait() must clear mm-\u003ecore_state before return.\n\nThe coredump_wait()\u0027s path is uglified and .text grows by 30 bytes, this\nis fixed by the next patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "32ecb1f26dd50eeaac4e3f4dea4541c97848e459",
      "tree": "4c2f3b6af9ff6babf2f395432de8e870508f2ec3",
      "parents": [
        "24d5288f06ed8b3a368eba967d587cdb012dfdf7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "coredump: turn mm-\u003ecore_startup_done into the pointer to struct core_state\n\nmm-\u003ecore_startup_done points to \"struct completion startup_done\" allocated\non the coredump_wait()\u0027s stack.  Introduce the new structure, core_state,\nwhich holds this \"struct completion\".  This way we can add more info\nvisible to the threads participating in coredump without enlarging\nmm_struct.\n\nNo changes in affected .o files.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "246bb0b1deb29726990620d8b5e55ca29f331362",
      "tree": "5173b9e0c1d18934a8b2693c690a7162acb1bca8",
      "parents": [
        "7b34e4283c685f5cc6ba6d30e939906eee0d4bcf"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "kill PF_BORROWED_MM in favour of PF_KTHREAD\n\nKill PF_BORROWED_MM.  Change use_mm/unuse_mm to not play with -\u003eflags, and\ndo s/PF_BORROWED_MM/PF_KTHREAD/ for a couple of other users.\n\nNo functional changes yet.  But this allows us to do further\nfixes/cleanups.\n\noom_kill/ptrace/etc often check \"p-\u003emm !\u003d NULL\" to filter out the\nkthreads, this is wrong because of use_mm().  The problem with\nPF_BORROWED_MM is that we need task_lock() to avoid races.  With this\npatch we can check PF_KTHREAD directly, or use a simple lockless helper:\n\n\t/* The result must not be dereferenced !!! */\n\tstruct mm_struct *__get_task_mm(struct task_struct *tsk)\n\t{\n\t\tif (tsk-\u003eflags \u0026 PF_KTHREAD)\n\t\t\treturn NULL;\n\t\treturn tsk-\u003emm;\n\t}\n\nNote also ecard_task().  It runs with -\u003emm !\u003d NULL, but it\u0027s the kernel\nthread without PF_BORROWED_MM.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "7b34e4283c685f5cc6ba6d30e939906eee0d4bcf",
      "tree": "6822edd5c63db79e97b8c5379a18a058bc5405ff",
      "parents": [
        "3d749b9e676b26584a47e75c235aa6f69d0697ae"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "introduce PF_KTHREAD flag\n\nIntroduce the new PF_KTHREAD flag to mark the kernel threads.  It is set\nby INIT_TASK() and copied to the forked childs (we could set it in\nkthreadd() along with PF_NOFREEZE instead).\n\ndaemonize() was changed as well.  In that case testing of PF_KTHREAD is\nracy, but daemonize() is hopeless anyway.\n\nThis flag is cleared in do_execve(), before search_binary_handler().\nProbably not the best place, we can do this in exec_mmap() or in\nstart_thread(), or clear it along with PF_FORKNOEXEC.  But I think this\ndoesn\u0027t matter in practice, and if do_execve() fails kthread should die\nsoon.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "3d749b9e676b26584a47e75c235aa6f69d0697ae",
      "tree": "2db2dab84cde07c4872ac5e8d4078f2a3fc4271d",
      "parents": [
        "364d3c13c17f45da6d638011078d4c4d3070d719"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:37 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "ptrace: simplify ptrace_stop()-\u003esigkill_pending() path\n\n1. SIGKILL can\u0027t be blocked, remove this check from sigkill_pending().\n\n2. When ptrace_stop() sees sigkill_pending() \u003d\u003d T, it can just return.\n   Kill \"int killed\" and simplify the code. This also is more correct,\n   the tracer shouldn\u0027t see us in TASK_TRACED if we are not going to\n   stop.\n\nI strongly believe this code needs further changes.  We should do the \"was\nthis task killed\" check unconditionally, currently it depends on\narch_ptrace_stop_needed().  On the other hand, sigkill_pending() isn\u0027t\nvery clever.  If the task was killed tkill(SIGKILL), the signal can be\nalready dequeued if the caller is do_exit().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "bc64efd220dcd4449aef8dd2564d73127b583b09",
      "tree": "21739809b2ab9b13677cae99f175c3983114abc6",
      "parents": [
        "d8878ba3f05ae5bbfad5a6e72e5121c0ea35f989"
      ],
      "author": {
        "name": "Gustavo Fernando Padovan",
        "email": "gustavo@las.ic.unicamp.br",
        "time": "Fri Jul 25 01:47:33 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "kernel/signal.c: change vars pid and tgid types to pid_t\n\nChange the type of pid and tgid variables from int to the POSIX type\npid_t.\n\nSigned-off-by: Gustavo F. Padovan \u003cgustavo@las.ic.unicamp.br\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\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": "d8878ba3f05ae5bbfad5a6e72e5121c0ea35f989",
      "tree": "31fbf7bd9605c103d8ef9e538beb54da8df04540",
      "parents": [
        "e4901f92a8dbe843e76651a50f7a2a6dd3d53474"
      ],
      "author": {
        "name": "Michael Kerrisk",
        "email": "mtk.manpages@googlemail.com",
        "time": "Fri Jul 25 01:47:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:39 2008 -0700"
      },
      "message": "signals: make siginfo_t si_utime + si_sstime report times in USER_HZ, not HZ\n\nIn the switch to configurable HZ in 2.6, the treatment of the si_utime and\nsi_stime fields that are exposed to userland via the siginfo structure\nlooks to have been botched.  As things stand, these fields report times in\nunits of HZ, so that userland gets information that varies depending on\nthe HZ that the kernel was configured with.  This patch changes the\nreported values to use USER_HZ units.\n\nSigned-off-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "2b201a9eddf509e8e935b45e573648e36f4b623f",
      "tree": "84cbb34667bcde5566e5c3d127c9089bb9792dab",
      "parents": [
        "92413d771e7123304fb4b9efd2a00cccc946e383"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:31 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "signals: do_signal_stop: kill the SIGNAL_UNKILLABLE check\n\nfae5fa44f1fd079ffbed8e0add929dd7bbd1347f changed do_signal_stop() to check\nSIGNAL_UNKILLABLE, this wasn\u0027t needed.  If signal_group_exit() \u003d\u003d F, the\nsignal sent to SIGNAL_UNKILLABLE task must be already filtered out by the\ncaller, get_signal_to_deliver().  And if signal_group_exit() \u003d\u003d T we are\nnot going to stop.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: 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": "92413d771e7123304fb4b9efd2a00cccc946e383",
      "tree": "c973360a9bec6c965b9f4b41923357feec14aa3a",
      "parents": [
        "3854a771821c970065e3203a0b40ddc4101538cc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:30 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "signals: dequeue_signal: don\u0027t check SIGNAL_GROUP_EXIT when setting SIGNAL_STOP_DEQUEUED\n\ndequeue_signal() checks SIGNAL_GROUP_EXIT before setting\nSIGNAL_STOP_DEQUEUED.  This was added by\n788e05a67c343fa22f2ae1d3ca264e7f15c25eaf a long ago to avoid the\ncoredump/SIGSTOP race.\n\nSince then the related code was changed, and now this subtle check is both\nincomplete and unneeded at the same time.  It is incomplete because\nnowadays exec() doesn\u0027t set SIGNAL_GROUP_EXIT, so in fact we should check\nsignal_group_exit() to avoid a similar race.  Fortunately, we doesn\u0027t need\nthe check at all.  The only function which relies on SIGNAL_STOP_DEQUEUED\nis do_signal_stop(), and it ignores this flag if signal_group_exit() \u003d\u003d T,\nthis covers the SIGNAL_GROUP_EXIT case.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: 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": "3854a771821c970065e3203a0b40ddc4101538cc",
      "tree": "b6f56b8d426c4a9682dfc8605a08a5c60f96a599",
      "parents": [
        "100360f03077663b7bef3af44805b6cf700c3bee"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "__exit_signal: don\u0027t take rcu lock\n\nThere is no reason for rcu_read_lock() in __exit_signal().  tsk-\u003esighand\ncan only be changed if tsk does exec, obviously this is not possible.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "100360f03077663b7bef3af44805b6cf700c3bee",
      "tree": "338cedfd71101fdaeb317fc0692d1bf93bd3a1a7",
      "parents": [
        "d4434207616980885205c605697868c0f07e4378"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:29 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "signals: change collect_signal() to return void\n\nWith the recent changes collect_signal() always returns true.  Change it\nto return void and update the single caller.\n\nSigned-off-by: 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": "d4434207616980885205c605697868c0f07e4378",
      "tree": "82415d69b92557e09d57f42c49aba05ef4775a89",
      "parents": [
        "6715ca451cfff1c9ce4b33ad9918a1dacf43997c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Jul 25 01:47:28 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:38 2008 -0700"
      },
      "message": "signals: collect_signal: simplify the \"still_pending\" logic\n\nFactor out sigdelset() calls and remove the \"still_pending\" variable.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: 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"
    }
  ],
  "next": "6715ca451cfff1c9ce4b33ad9918a1dacf43997c"
}
