)]}'
{
  "log": [
    {
      "commit": "0d01792300c4d7425eabac9095c603cdb411d2a5",
      "tree": "91c84873a7ece09888542d612a928e54c2fba6a3",
      "parents": [
        "da8cadb31b82c9d41fc593c8deab6aa20b162d6b"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Dec 17 16:25:48 2007 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Dec 17 16:25:56 2007 +0100"
      },
      "message": "[S390] pud_present/pmd_present bug.\n\nGit commit 3610cce87af0693603db171d5b6f6735f5e3dc5b (yeah my own :-/)\nintroduced a bug in regard to pud/pmd table entries.\nIf the address of the page table refered to by a pud/pmd value happens\nto have zeroes in the lower 32 bits, pud_present and pmd_present return\nfalse. The obvious effect is that this triggers the BUG_ON in exit_mmap\nbecause some ptes will not get released on process end.  Worse is that\nthe next fault for memory covered by that pud/pmd will allocate another\npmd/pte table and populate the pud/pmd entry. The old page table\nentries hanging below this entry are lost!\n\nThe fix is simple, properly check against 0. The check is added for\npud_none/pmd_none as well even if these two functions work because\nthe invalid bit is in the lower 32 bits.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "190a1d722a59725706daf832bc8a511ed62f249d",
      "tree": "fa4441d0f7833062687e7816e09ec73600ac8523",
      "parents": [
        "3610cce87af0693603db171d5b6f6735f5e3dc5b"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Oct 22 12:52:48 2007 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Oct 22 12:52:49 2007 +0200"
      },
      "message": "[S390] 4level-fixup cleanup\n\nGet independent from asm-generic/4level-fixup.h\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "3610cce87af0693603db171d5b6f6735f5e3dc5b",
      "tree": "9aa7d9a0924b2f075c1b95ed57bb63ed512165c9",
      "parents": [
        "e4aa402e7a3b6b87d8df6243a37171cdcd2f01c2"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Oct 22 12:52:47 2007 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Oct 22 12:52:49 2007 +0200"
      },
      "message": "[S390] Cleanup page table definitions.\n\n- De-confuse the defines for the address-space-control-elements\n  and the segment/region table entries.\n- Create out of line functions for page table allocation / freeing.\n- Simplify get_shadow_xxx functions.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "ba8a9229ab9e80278c28ad68b15053f65b2b0a7c",
      "tree": "d73e4f7d352d3b3edf8888973528cb7dd3e953f9",
      "parents": [
        "e3d3683d1402c1737687cb698451d545f57c32a7"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Oct 22 12:52:44 2007 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Oct 22 12:52:48 2007 +0200"
      },
      "message": "[S390] tlb flush fix.\n\nThe current tlb flushing code for page table entries violates the\ns390 architecture in a small detail. The relevant section from the\nprinciples of operation (SA22-7832-02 page 3-47):\n\n   \"A valid table entry must not be changed while it is attached\n   to any CPU and may be used for translation by that CPU except to\n   (1) invalidate the entry by using INVALIDATE PAGE TABLE ENTRY or\n   INVALIDATE DAT TABLE ENTRY, (2) alter bits 56-63 of a page-table\n   entry, or (3) make a change by means of a COMPARE AND SWAP AND\n   PURGE instruction that purges the TLB.\"\n\nThat means if one thread of a multithreaded applciation uses a vma\nwhile another thread does an unmap on it, the page table entries of\nthat vma needs to get removed with IPTE, IDTE or CSP. In some strange\nand rare situations a cpu could check-stop (die) because a entry has\nbeen pushed out of the TLB that is still needed to complete a\n(milli-coded) instruction. I\u0027ve never seen it happen with the current\ncode on any of the supported machines, so right now this is a\ntheoretical problem. But I want to fix it nevertheless, to avoid\nheadaches in the futures.\n\nTo get this implemented correctly without changing common code the\nprimitives ptep_get_and_clear, ptep_get_and_clear_full and\nptep_set_wrprotect need to use the IPTE instruction to invalidate the\npte before the new pte value gets stored. If IPTE is always used for\nthe three primitives three important operations will have a performace\nhit: fork, mprotect and exit_mmap. Time for some workarounds:\n\n* 1: ptep_get_and_clear_full is used in unmap_vmas to remove page\ntables entries in a batched tlb gather operation. If the mmu_gather\ncontext passed to unmap_vmas has been started with full_mm_flush\u003d\u003d1\nor if only one cpu is online or if the only user of a mm_struct is the\ncurrent process then the fullmm indication in the mmu_gather context is\nset to one. All TLBs for mm_struct are flushed by the tlb_gather_mmu\ncall. No new TLBs can be created while the unmap is in progress. In\nthis case ptep_get_and_clear_full clears the ptes with a simple store.\n\n* 2: ptep_get_and_clear is used in change_protection to clear the\nptes from the page tables before they are reentered with the new\naccess flags. At the end of the update flush_tlb_range clears the\nremaining TLBs. In general the ptep_get_and_clear has to issue IPTE\nfor each pte and flush_tlb_range is a nop. But if there is only one\nuser of the mm_struct then ptep_get_and_clear uses simple stores\nto do the update and flush_tlb_range will flush the TLBs.\n\n* 3: Similar to 2, ptep_set_wrprotect is used in copy_page_range\nfor a fork to make all ptes of a cow mapping read-only. At the end of\nof copy_page_range dup_mmap will flush the TLBs with a call to\nflush_tlb_mm.  Check for mm-\u003emm_users and if there is only one user\navoid using IPTE in ptep_set_wrprotect and let flush_tlb_mm clear the\nTLBs.\n\nOverall for single threaded programs the tlb flush code now performs\nbetter, for multi threaded programs it is slightly worse. In particular\nexit_mmap() now does a single IDTE for the mm and then just frees every\npage cache reference and every page table page directly without a delay\nover the mmu_gather structure.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "e39394b84156bc0822785e379977fe75a5662aad",
      "tree": "0331fbe89df3327d0d0e4123ccf0cdcc6c529fc2",
      "parents": [
        "53a0868cb4d77dcba8e95e1033361ffdb6e510e2"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Oct 12 16:11:45 2007 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Oct 12 16:13:09 2007 +0200"
      },
      "message": "[S390] Make vmalloc area start at address \u003e 4GB.\n\nPrevent that modules get loaded at addresses below 4GB to\nprevent exchanging system call table entries.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "e21ea246bce5bb93dd822de420172ec280aed492",
      "tree": "d624d1257728d8d869d54420c83d4bf4c4e19189",
      "parents": [
        "f0e47c229b489e37ba7e4159ef7f9cf9ccd44e19"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Jul 17 04:03:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:22:59 2007 -0700"
      },
      "message": "mm: remove ptep_test_and_clear_dirty and ptep_clear_flush_dirty\n\nNobody is using ptep_test_and_clear_dirty and ptep_clear_flush_dirty.  Remove\nthe functions from all architectures.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0e47c229b489e37ba7e4159ef7f9cf9ccd44e19",
      "tree": "52ec70d775bb7f7eafa6863829646ee49cbf427f",
      "parents": [
        "5ee403f584a67fb8725cca4d55218925b9295528"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Jul 17 04:03:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:22:59 2007 -0700"
      },
      "message": "mm: remove ptep_establish()\n\nThe last user of ptep_establish in mm/ is long gone.  Remove the architecture\nprimitive as well.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45e98cdb6d365b34b7a2d849e4d8bdc264d8e6e4",
      "tree": "172a959293a2c31691a162eca6af131e3ac89da2",
      "parents": [
        "98011f569e2ae1e4ae394f6e23faa16676d50de4"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Sun Jul 15 23:38:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Jul 16 09:05:36 2007 -0700"
      },
      "message": "page table handling cleanup\n\nKill pte_rdprotect(), pte_exprotect(), pte_mkread(), pte_mkexec(), pte_read(),\npte_exec(), and pte_user() except where arch-specific code is making use of\nthem.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Christoph Hellwig \u003chch@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": "8dab5241d06bfc9ee141ea78c56cde5070d7460d",
      "tree": "dd9dc3c64c17862b169f4cbe5fd4a108d960c920",
      "parents": [
        "679ce0ace6b1a07043bc3b405a34ddccad808886"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Sat Jun 16 10:16:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Jun 16 13:16:16 2007 -0700"
      },
      "message": "Rework ptep_set_access_flags and fix sun4c\n\nSome changes done a while ago to avoid pounding on ptep_set_access_flags and\nupdate_mmu_cache in some race situations break sun4c which requires\nupdate_mmu_cache() to always be called on minor faults.\n\nThis patch reworks ptep_set_access_flags() semantics, implementations and\ncallers so that it\u0027s now responsible for returning whether an update is\nnecessary or not (basically whether the PTE actually changed).  This allow\nfixing the sparc implementation to always return 1 on sun4c.\n\n[akpm@linux-foundation.org: fixes, cleanups]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Mark Fortescue \u003cmark@mtfhpc.demon.co.uk\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c210482ae4a9a5bb9377ad250feaacec3faa3cd",
      "tree": "2eb89d89a22380298d64edad59010c1d0a59e5a4",
      "parents": [
        "2fc2d1e9ffcde78af7ab63ed640d9a4901797de2"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Apr 27 16:01:57 2007 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Apr 27 16:01:46 2007 +0200"
      },
      "message": "[S390] split page_test_and_clear_dirty.\n\nThe page_test_and_clear_dirty primitive really consists of two\noperations, page_test_dirty and the page_clear_dirty. The combination\nof the two is not an atomic operation, so it makes more sense to have\ntwo separate operations instead of one.\nIn addition to the improved readability of the s390 version of\nSetPageUptodate, it now avoids the page_test_dirty operation which is\nan insert-storage-key-extended (iske) instruction which is an expensive\noperation.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "c1821c2e9711adc3cd298a16b7237c92a2cee78d",
      "tree": "9155b089db35a37d95863125ea4c5f918bd7801b",
      "parents": [
        "86aa9fc2456d8a662f299a70bdb70987209170f0"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "geraldsc@de.ibm.com",
        "time": "Mon Feb 05 21:18:17 2007 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Feb 05 21:18:17 2007 +0100"
      },
      "message": "[S390] noexec protection\n\nThis provides a noexec protection on s390 hardware. Our hardware does\nnot have any bits left in the pte for a hw noexec bit, so this is a\ndifferent approach using shadow page tables and a special addressing\nmode that allows separate address spaces for code and data.\n\nAs a special feature of our \"secondary-space\" addressing mode, separate\npage tables can be specified for the translation of data addresses\n(storage operands) and instruction addresses. The shadow page table is\nused for the instruction addresses and the standard page table for the\ndata addresses.\nThe shadow page table is linked to the standard page table by a pointer\nin page-\u003elru.next of the struct page corresponding to the page that\ncontains the standard page table (since page-\u003eprivate is not really\nprivate with the pte_lock and the page table pages are not in the LRU\nlist).\nDepending on the software bits of a pte, it is either inserted into\nboth page tables or just into the standard (data) page table. Pages of\na vma that does not have the VM_EXEC bit set get mapped only in the\ndata address space. Any try to execute code on such a page will cause a\npage translation exception. The standard reaction to this is a SIGSEGV\nwith two exceptions: the two system call opcodes 0x0a77 (sys_sigreturn)\nand 0x0aad (sys_rt_sigreturn) are allowed. They are stored by the\nkernel to the signal stack frame. Unfortunately, the signal return\nmechanism cannot be modified to use an SA_RESTORER because the\nexception unwinding code depends on the system call opcode stored\nbehind the signal stack frame.\n\nThis feature requires that user space is executed in secondary-space\nmode and the kernel in home-space mode, which means that the addressing\nmodes need to be switched and that the noexec protection only works\nfor user space.\nAfter switching the addressing modes, we cannot use the mvcp/mvcs\ninstructions anymore to copy between kernel and user space. A new\nmvcos instruction has been added to the z9 EC/BC hardware which allows\nto copy between arbitrary address spaces, but on older hardware the\npage tables need to be walked manually.\n\nSigned-off-by: Gerald Schaefer \u003cgeraldsc@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "2b67fc46061b2171fb8fbb55d1ac717abd533569",
      "tree": "d4e9db6e7d51d2fc3cf782bf11e24ed7fbc544a0",
      "parents": [
        "55dff5224abeb734b12c1661c34ccf534955bee7"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Feb 05 21:16:47 2007 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Feb 05 21:16:47 2007 +0100"
      },
      "message": "[S390] Get rid of a lot of sparse warnings.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "f4eb07c17df2e6cf9bd58bfcd9cc9e05e9489d07",
      "tree": "c1b4b422d3b8183edf452cc745dadd0fe129018b",
      "parents": [
        "7f090145a14afc35844dce80174c9c24f9e66ec5"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Dec 08 15:56:07 2006 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Fri Dec 08 15:56:07 2006 +0100"
      },
      "message": "[S390] Virtual memmap for s390.\n\nVirtual memmap support for s390. Inspired by the ia64 implementation.\n\nUnlike ia64 we need a mechanism which allows us to dynamically attach\nshared memory regions.\nThese memory regions are accessed via the dcss device driver. dcss\nimplements the \u0027direct_access\u0027 operation, which requires struct pages\nfor every single shared page.\nTherefore this implementation provides an interface to attach/detach\nshared memory:\n\nint add_shared_memory(unsigned long start, unsigned long size);\nint remove_shared_memory(unsigned long start, unsigned long size);\n\nThe purpose of the add_shared_memory function is to add the given\nmemory range to the 1:1 mapping and to make sure that the\ncorresponding range in the vmemmap is backed with physical pages.\nIt also initialises the new struct pages.\n\nremove_shared_memory in turn only invalidates the page table\nentries in the 1:1 mapping. The page tables and the memory used for\nstruct pages in the vmemmap are currently not freed. They will be\nreused when the next segment will be attached.\nGiven that the maximum size of a shared memory region is 2GB and\nin addition all regions must reside below 2GB this is not too much of\na restriction, but there is room for improvement.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "8b62bc9642300471737bc3b77b2a4a2ead46dedb",
      "tree": "0e510eac55df04ad244b74149c1fd7b8cc75e5e4",
      "parents": [
        "ce26a8532fd062ccd3f3c589a4be269a2dc20f00"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Dec 04 15:40:56 2006 +0100"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Mon Dec 04 15:40:56 2006 +0100"
      },
      "message": "[S390] Memory detection fixes.\n\nVMALLOC_END on 31bit should be 0x8000000UL instead of 0x7fffffffL.\nThe page mask which is used to make sure memory_end is on 4MB/2MB\nboundary is wrong and not needed. Therefore remove it.\nMake sure a vmalloc area does also exist and work on (future)\nmachines with 4TB and more memory.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "833774849d50a59f58e9bdfc3d9c88e682b3596d",
      "tree": "5527a4f8e21233a72af48c369917ebe2dc2883df",
      "parents": [
        "2c91971f84be168a35f937dd6c61e56e492b2185"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Oct 18 18:30:51 2006 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Oct 18 18:30:51 2006 +0200"
      },
      "message": "[S390] Fix pte type checking.\n\nhandle_pte_fault uses pte_present, pte_none and pte_file to find out\nthe type of a pte. That is done without holding the page table lock.\nThis clashes with the way how ptep_clear_flush removes active page\ntable entries from the system. First the ipte instruction is used\nto invalidate the pte and remove all plt entries for the page. The\nipte sets the hardware invalid bit without changing any other bit.\nAfter the ipte finished the pte is cleared. A concurrent fault can\nobserve the the previously valid pte with the invalid bit set. With\nthe current encoding of the different pte types an invalidated\nread-only pte can be misinterpreted as a swap-pte.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "0b2b6e1ddce4696cb7afcbb15a654fe95428a498",
      "tree": "a6dd837de5ce7088ab1009d125e8bcd6cfeaa1e1",
      "parents": [
        "7676bef9c183fd573822cac9992927ef596d584c"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Oct 04 20:02:23 2006 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Oct 04 20:02:23 2006 +0200"
      },
      "message": "[S390] Remove open-coded mem_map usage.\n\nUse page_to_phys and pfn_to_page to avoid open-coded mem_map usage.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "2dcea57ae19275451a756a2d5bf96b329487b0e0",
      "tree": "37b0def2369c106fdf3653ca85e0c1a34ce4d905",
      "parents": [
        "d1807793e1e7e502e3dc047115e9dbc3b50e4534"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Fri Sep 29 01:58:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 29 09:18:03 2006 -0700"
      },
      "message": "[PATCH] convert s390 page handling macros to functions\n\nConvert s390 page handling macros to functions.  In particular this fixes a\nproblem with s390\u0027s SetPageUptodate macro which uses its input parameter\ntwice which again can cause subtle bugs.\n\n[akpm@osdl.org: build fix]\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "94c12cc7d196bab34aaa98d38521549fa1e5ef76",
      "tree": "8e0cec0ed44445d74a2cb5160303d6b4dfb1bc31",
      "parents": [
        "25d83cbfaa44e1b9170c0941c3ef52ca39f54ccc"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Sep 28 16:56:43 2006 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Sep 28 16:56:43 2006 +0200"
      },
      "message": "[S390] Inline assembly cleanup.\n\nMajor cleanup of all s390 inline assemblies. They now have a common\ncoding style. Quite a few have been shortened, mainly by using register\nasm variables. Use of the EX_TABLE macro helps  as well. The atomic ops,\nbit ops and locking inlines new use the Q-constraint if a newer gcc\nis used.  That results in slightly better code.\n\nThanks to Christian Borntraeger for proof reading the changes.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "46a82b2d5591335277ed2930611f6acb4ce654ed",
      "tree": "e90bc1843701af2012bae92564f7109027a8244f",
      "parents": [
        "d2e7b7d0aa021847c59f882b066e7d3812902870"
      ],
      "author": {
        "name": "Dave McCracken",
        "email": "dmccr@us.ibm.com",
        "time": "Mon Sep 25 23:31:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:51 2006 -0700"
      },
      "message": "[PATCH] Standardize pxx_page macros\n\nOne of the changes necessary for shared page tables is to standardize the\npxx_page macros.  pte_page and pmd_page have always returned the struct\npage associated with their entry, while pte_page_kernel and pmd_page_kernel\nhave returned the kernel virtual address.  pud_page and pgd_page, on the\nother hand, return the kernel virtual address.\n\nShared page tables needs pud_page and pgd_page to return the actual page\nstructures.  There are very few actual users of these functions, so it is\nsimple to standardize their usage.\n\nSince this is basic cleanup, I am submitting these changes as a standalone\npatch.  Per Hugh Dickins\u0027 comments about it, I am also changing the\npxx_page_kernel macros to pxx_page_vaddr to clarify their meaning.\n\nSigned-off-by: Dave McCracken \u003cdmccr@us.ibm.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9282ed929758b82f448a40d3c17319d794970624",
      "tree": "f3db7796f0ea7afddc853ab4294033b4fdd6d785",
      "parents": [
        "31b58088292c7f00f0b81088bfb557285b0b6247"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "geraldsc@de.ibm.com",
        "time": "Wed Sep 20 15:59:37 2006 +0200"
      },
      "committer": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Wed Sep 20 15:59:37 2006 +0200"
      },
      "message": "[S390] Cleanup in page table related code.\n\nChanged and simplified some page table related #defines and code.\n\nSigned-off-by: Gerald Schaefer \u003cgeraldsc@de.ibm.com\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\n"
    },
    {
      "commit": "f6ac2354d791195ca40822b84d73d48a4e8b7f2b",
      "tree": "5f600175cf3591eac3d32bb8cebfd45d0aabf804",
      "parents": [
        "672b2714ae57af16fe7d760dc4e0918a7a6cb0fa"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Fri Jun 30 01:55:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jun 30 11:25:34 2006 -0700"
      },
      "message": "[PATCH] zoned vm counters: create vmstat.c/.h from page_alloc.c/.h\n\nNOTE: ZVC are *not* the lightweight event counters.  ZVCs are reliable whereas\nevent counters do not need to be.\n\nZone based VM statistics are necessary to be able to determine what the state\nof memory in one zone is.  In a NUMA system this can be helpful for local\nreclaim and other memory optimizations that may be able to shift VM load in\norder to get more balanced memory use.\n\nIt is also useful to know how the computing load affects the memory\nallocations on various zones.  This patchset allows the retrieval of that data\nfrom userspace.\n\nThe patchset introduces a framework for counters that is a cross between the\nexisting page_stats --which are simply global counters split per cpu-- and the\napproach of deferred incremental updates implemented for nr_pagecache.\n\nSmall per cpu 8 bit counters are added to struct zone.  If the counter exceeds\ncertain thresholds then the counters are accumulated in an array of\natomic_long in the zone and in a global array that sums up all zone values.\nThe small 8 bit counters are next to the per cpu page pointers and so they\nwill be in high in the cpu cache when pages are allocated and freed.\n\nAccess to VM counter information for a zone and for the whole machine is then\npossible by simply indexing an array (Thanks to Nick Piggin for pointing out\nthat approach).  The access to the total number of pages of various types does\nno longer require the summing up of all per cpu counters.\n\nBenefits of this patchset right now:\n\n- Ability for UP and SMP configuration to determine how memory\n  is balanced between the DMA, NORMAL and HIGHMEM zones.\n\n- loops over all processors are avoided in writeback and\n  reclaim paths. We can avoid caching the writeback information\n  because the needed information is directly accessible.\n\n- Special handling for nr_pagecache removed.\n\n- zone_reclaim_interval vanishes since VM stats can now determine\n  when it is worth to do local reclaim.\n\n- Fast inline per node page state determination.\n\n- Accurate counters in /sys/devices/system/node/node*/meminfo. Current\n  counters are counting simply which processor allocated a page somewhere\n  and guestimate based on that. So the counters were not useful to show\n  the actual distribution of page use on a specific zone.\n\n- The swap_prefetch patch requires per node statistics in order to\n  figure out when processors of a node can prefetch. This patch provides\n  some of the needed numbers.\n\n- Detailed VM counters available in more /proc and /sys status files.\n\nReferences to earlier discussions:\nV1 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113511649910826\u0026w\u003d2\nV2 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114980851924230\u0026w\u003d2\nV3 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115014697910351\u0026w\u003d2\nV4 http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d115024767318740\u0026w\u003d2\n\nPerformance tests with AIM7 did not show any regressions.  Seems to be a tad\nfaster even.  Tested on ia64/NUMA.  Builds fine on i386, SMP / UP.  Includes\nfixes for s390/arm/uml arch code.\n\nThis patch:\n\nMove counter code from page_alloc.c/page-flags.h to vmstat.c/h.\n\nCreate vmstat.c/vmstat.h by separating the counter code and the proc\nfunctions.\n\nMove the vm_stat_text array before zoneinfo_show.\n\n[akpm@osdl.org: s390 build fix]\n[akpm@osdl.org: HOTPLUG_CPU build fix]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4448aaf0faafff3f275d15937c28b6346760e028",
      "tree": "d0477d4d0871c94a6eff7761d06b16a682e9ec53",
      "parents": [
        "0fbeb5a45dccd493c35a68a5548e6a9d9882a791"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Nov 08 21:34:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 09 07:55:52 2005 -0800"
      },
      "message": "[PATCH] s390: \"extern inline\" -\u003e \"static inline\"\n\n\"extern inline\" -\u003e \"static inline\"\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c65b4a60450590e79a28e9717ceffa9e4debb3f",
      "tree": "e0e42b5faee0a1c44746a36d9df7a8fbb2a2c24c",
      "parents": [
        "6fdcc2162285a8fc96ab12ff85086c37bceaa494"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Mon Nov 07 00:59:43 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:41 2005 -0800"
      },
      "message": "[PATCH] fix remaining missing includes\n\nFix more include file problems that surfaced since I submitted the previous\nfix-missing-includes.patch.  This should now allow not to include sched.h\nfrom module.h, which is done by a followup patch.\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d455a3696c72283923e6870e9e4fe1daa861d7cd",
      "tree": "572661a1ed6cceaf83cad55921b7812feace69ee",
      "parents": [
        "cdfb82fff33cf3b1a367a427e5d89a012dc568b1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Apr 19 13:29:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org.(none)",
        "time": "Tue Apr 19 13:29:23 2005 -0700"
      },
      "message": "[PATCH] freepgt: arch FIRST_USER_ADDRESS 0\n\nReplace misleading definition of FIRST_USER_PGD_NR 0 by definition of\nFIRST_USER_ADDRESS 0 in all the MMU architectures beyond arm and arm26.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
