)]}'
{
  "log": [
    {
      "commit": "95211279c5ad00a317c98221d7e4365e02f20836",
      "tree": "2ddc8625378d2915b8c96392f3cf6663b705ed55",
      "parents": [
        "5375871d432ae9fc581014ac117b96aaee3cd0c7",
        "12724850e8064f64b6223d26d78c0597c742c65a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge first batch of patches from Andrew Morton:\n \"A few misc things and all the MM queue\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (92 commits)\n  memcg: avoid THP split in task migration\n  thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE\n  memcg: clean up existing move charge code\n  mm/memcontrol.c: remove unnecessary \u0027break\u0027 in mem_cgroup_read()\n  mm/memcontrol.c: remove redundant BUG_ON() in mem_cgroup_usage_unregister_event()\n  mm/memcontrol.c: s/stealed/stolen/\n  memcg: fix performance of mem_cgroup_begin_update_page_stat()\n  memcg: remove PCG_FILE_MAPPED\n  memcg: use new logic for page stat accounting\n  memcg: remove PCG_MOVE_LOCK flag from page_cgroup\n  memcg: simplify move_account() check\n  memcg: remove EXPORT_SYMBOL(mem_cgroup_update_page_stat)\n  memcg: kill dead prev_priority stubs\n  memcg: remove PCG_CACHE page_cgroup flag\n  memcg: let css_get_next() rely upon rcu_read_lock()\n  cgroup: revert ss_id_lock to spinlock\n  idr: make idr_get_next() good for rcu_read_lock()\n  memcg: remove unnecessary thp check in page stat accounting\n  memcg: remove redundant returns\n  memcg: enum lru_list lru\n  ...\n"
    },
    {
      "commit": "88f6b4c32e531dc5b06bd05144f790847a1fdaeb",
      "tree": "751d07060432fe32200d7849e7901082968b3e51",
      "parents": [
        "d71b5a73fe9af42752c4329b087f7911b35f8f79"
      ],
      "author": {
        "name": "Kautuk Consul",
        "email": "consul.kautuk@gmail.com",
        "time": "Wed Mar 21 16:34:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:00 2012 -0700"
      },
      "message": "mmap.c: fix comment for __insert_vm_struct()\n\nThe comment above __insert_vm_struct seems to suggest that this function\nis also going to link the VMA with the anon_vma, but this is not true.\nThis function only links the VMA to the mm-\u003emm_rb tree and the mm-\u003emmap\nlinked list.\n\n[akpm@linux-foundation.org: improve comment layout and text]\nSigned-off-by: Kautuk Consul \u003cconsul.kautuk@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "40716e29243de46720e5773797791466c28904ec",
      "tree": "19616ad05cbead73d0643b002a7ced8baa292ee2",
      "parents": [
        "21a3c273f88c9cbbaf7e14505df0131d95c8f262"
      ],
      "author": {
        "name": "Steven Truelove",
        "email": "steven.truelove@utoronto.ca",
        "time": "Wed Mar 21 16:34:14 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "hugetlbfs: fix alignment of huge page requests\n\nWhen calling shmget() with SHM_HUGETLB, shmget aligns the request size to\nPAGE_SIZE, but this is not sufficient.\n\nModify hugetlb_file_setup() to align requests to the huge page size, and\nto accept an address argument so that all alignment checks can be\nperformed in hugetlb_file_setup(), rather than in its callers.  Change\nnewseg() and mmap_pgoff() to match the new prototype and eliminate a now\nredundant alignment check.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Steven Truelove \u003csteven.truelove@utoronto.ca\u003e\nCc: Hugh Dickins \u003chughd@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": "b716ad953a2bc4a543143c1d9836b7007a4b182f",
      "tree": "99791c6c857b1ff7b922eaa0163ec3c912549009",
      "parents": [
        "f44d21985eb6af7361d3785e26923355172147bd"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:33:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "mm: search from free_area_cache for the bigger size\n\nIf the required size is bigger than cached_hole_size it is better to\nsearch from free_area_cache - it is easier to get a free region,\nspecifically for the 64 bit process whose address space is large enough\n\nDo it just as hugetlb_get_unmapped_area_topdown() in arch/x86/mm/hugetlbpage.c\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "f44d21985eb6af7361d3785e26923355172147bd",
      "tree": "1ced398274730cee6cd9173696e6fe08e52c6e91",
      "parents": [
        "cbde83e21c4fd50bfc4240408355c1e5d393063d"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:33:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "mm: do not reset cached_hole_size when vma is unmapped\n\nIn the current code, cached_hole_size is set to the maximum value if the\nunmapped vma is less that free_area_cache so the next search will search\nfrom the base address.\n\nActually, we can keep cached_hole_size so that if the next required size\nis more than cached_hole_size, it can search from free_area_cache.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "3a990a52f9f25f45469e272017a31e7a3fda60ed",
      "tree": "366f639d9ce1e907b65caa72bc098df6c4b5a240",
      "parents": [
        "3556485f1595e3964ba539e39ea682acbb835cee",
        "f5cc4eef9987d0b517364d01e290d6438e47ee5d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:32:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:32:19 2012 -0700"
      },
      "message": "Merge branch \u0027vm\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull munmap/truncate race fixes from Al Viro:\n \"Fixes for racy use of unmap_vmas() on truncate-related codepaths\"\n\n* \u0027vm\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  VM: make zap_page_range() callers that act on a single VMA use separate helper\n  VM: make unmap_vmas() return void\n  VM: don\u0027t bother with feeding upper limit to tlb_finish_mmu() in exit_mmap()\n  VM: make zap_page_range() return void\n  VM: can\u0027t go through the inner loop in unmap_vmas() more than once...\n  VM: unmap_page_range() can return void\n"
    },
    {
      "commit": "3556485f1595e3964ba539e39ea682acbb835cee",
      "tree": "7f5ee254f425b1427ac0059b5f347a307f8538a1",
      "parents": [
        "b8716614a7cc2fc15ea2a518edd04755fb08d922",
        "09f61cdbb32a9d812c618d3922db533542736bb0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:25:04 2012 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security\n\nPull security subsystem updates for 3.4 from James Morris:\n \"The main addition here is the new Yama security module from Kees Cook,\n  which was discussed at the Linux Security Summit last year.  Its\n  purpose is to collect miscellaneous DAC security enhancements in one\n  place.  This also marks a departure in policy for LSM modules, which\n  were previously limited to being standalone access control systems.\n  Chromium OS is using Yama, and I believe there are plans for Ubuntu,\n  at least.\n\n  This patchset also includes maintenance updates for AppArmor, TOMOYO\n  and others.\"\n\nFix trivial conflict in \u003cnet/sock.h\u003e due to the jumo_label-\u003estatic_key\nrename.\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (38 commits)\n  AppArmor: Fix location of const qualifier on generated string tables\n  TOMOYO: Return error if fails to delete a domain\n  AppArmor: add const qualifiers to string arrays\n  AppArmor: Add ability to load extended policy\n  TOMOYO: Return appropriate value to poll().\n  AppArmor: Move path failure information into aa_get_name and rename\n  AppArmor: Update dfa matching routines.\n  AppArmor: Minor cleanup of d_namespace_path to consolidate error handling\n  AppArmor: Retrieve the dentry_path for error reporting when path lookup fails\n  AppArmor: Add const qualifiers to generated string tables\n  AppArmor: Fix oops in policy unpack auditing\n  AppArmor: Fix error returned when a path lookup is disconnected\n  KEYS: testing wrong bit for KEY_FLAG_REVOKED\n  TOMOYO: Fix mount flags checking order.\n  security: fix ima kconfig warning\n  AppArmor: Fix the error case for chroot relative path name lookup\n  AppArmor: fix mapping of META_READ to audit and quiet flags\n  AppArmor: Fix underflow in xindex calculation\n  AppArmor: Fix dropping of allowed operations that are force audited\n  AppArmor: Add mising end of structure test to caps unpacking\n  ...\n"
    },
    {
      "commit": "6e8bb0193af3f308ef22817a5560422d33e58b90",
      "tree": "6001421c8d389bd00b18e0510e3f6c9130f9f80b",
      "parents": [
        "853f5e264018113b1f96f05551b07a74b836c7fc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 05 13:41:15 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:39:51 2012 -0400"
      },
      "message": "VM: make unmap_vmas() return void\n\nsame story - nobody uses it and it\u0027s been pointless since\n\"mm: Remove i_mmap_lock lockbreak\" went in.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "853f5e264018113b1f96f05551b07a74b836c7fc",
      "tree": "4fda70658e3315e293260278036e92921594e72f",
      "parents": [
        "14f5ff5df37a8fabe2d25b1e64df7e010cc87db9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 05 14:03:47 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:39:51 2012 -0400"
      },
      "message": "VM: don\u0027t bother with feeding upper limit to tlb_finish_mmu() in exit_mmap()\n\nno point, really - the only instance that cares about those arguments of\ntlb_finish_mmu() is itanic and there we explicitly check if that\u0027s called\nfrom exit_mmap() (i.e. that -\u003efullmm is set), in which case we ignore those\narguments completely.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "83cd904d271ba960c53f3adbb037f3486518f1e6",
      "tree": "839698abe73bfbba298c9ee71b680492e285a1e2",
      "parents": [
        "52abb700e16a9aa4cbc03f3d7f80206cbbc80680"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Sun Mar 04 19:52:03 2012 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 06 16:48:03 2012 -0800"
      },
      "message": "mm: fix find_vma_prev\n\nCommit 6bd4837de96e (\"mm: simplify find_vma_prev()\") broke memory\nmanagement on PA-RISC.\n\nAfter application of the patch, programs that allocate big arrays on the\nstack crash with segfault, for example, this will crash if compiled\nwithout optimization:\n\n  int main()\n  {\n\tchar array[200000];\n\tarray[199999] \u003d 0;\n\treturn 0;\n  }\n\nThe reason is that PA-RISC has up-growing stack and the stack is usually\nthe last memory area.  In the above example, a page fault happens above\nthe stack.\n\nPreviously, if we passed too high address to find_vma_prev, it returned\nNULL and stored the last VMA in *pprev.  After \"simplify find_vma_prev\"\nchange, it stores NULL in *pprev.  Consequently, the stack area is not\nfound and it is not expanded, as it used to be before the change.\n\nThis patch restores the old behavior and makes it return the last VMA in\n*pprev if the requested address is higher than address of any other VMA.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce8fea7aa4ad9e3b40999a08622ef27c77159659",
      "tree": "7d8696e506db022aa03f5927c9593db4df1ac2b8",
      "parents": [
        "917ec63b61720b177271450399bca2f8c5168c0d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Mar 06 12:28:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 06 13:49:08 2012 -0800"
      },
      "message": "mmap: EINVAL not ENOMEM when rejecting VM_GROWS\n\nCurrently error is -ENOMEM when rejecting VM_GROWSDOWN|VM_GROWSUP\nfrom shared anonymous: hoist the file case\u0027s -EINVAL up for both.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "835ee7978cb47de94cf70232a694f19295d2993f",
      "tree": "0befe356dba1efbe02bf7ced7285f7dea94936fd",
      "parents": [
        "6414fa6a150111750011f477899d370244da4171"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Mon Mar 05 06:39:47 2012 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 05 13:51:32 2012 -0800"
      },
      "message": "VM_GROWS{UP,DOWN} shouldn\u0027t be set on shmem VMAs\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4040153087478993cbf0809f444400a3c808074c",
      "tree": "2dc7af85b0cf930f1656553bd38410b8c16601a6",
      "parents": [
        "191c542442fdf53cc3c496c00be13367fd9cd42d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Feb 13 03:58:52 2012 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 14 10:45:42 2012 +1100"
      },
      "message": "security: trim security.h\n\nTrim security.h\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "191c542442fdf53cc3c496c00be13367fd9cd42d",
      "tree": "4aef9e33a1d99e6530b704243efbe373bb314d61",
      "parents": [
        "bbd36568594d091e682a1975ef4ee41d808de0bc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Mon Feb 13 03:58:52 2012 +0000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Feb 14 10:45:39 2012 +1100"
      },
      "message": "mm: collapse security_vm_enough_memory() variants into a single function\n\nCollapse security_vm_enough_memory() variants into a single function.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6bd4837de96e7d9f9bf33e59117c24fc230862ac",
      "tree": "633d23438e31aeef61063c6de490cc5696f4e5f5",
      "parents": [
        "948f017b093a9baac23855fcd920d3a970b71bb6"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jan 10 15:08:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mm: simplify find_vma_prev()\n\ncommit 297c5eee37 (\"mm: make the vma list be doubly linked\") added the\nvm_prev member to vm_area_struct.  We can simplify find_vma_prev() by\nusing it.  Also, this change helps to improve page fault performance\nbecause it has stronger locality of reference.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Michal Hocko \u003cmhocko@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": "948f017b093a9baac23855fcd920d3a970b71bb6",
      "tree": "4536a9cbe1077133e600da2072998f5e60c696c6",
      "parents": [
        "df0a6daa01fa3856c08f4274d4f21a8092caa480"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Jan 10 15:08:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:44 2012 -0800"
      },
      "message": "mremap: enforce rmap src/dst vma ordering in case of vma_merge() succeeding in copy_vma()\n\nmigrate was doing an rmap_walk with speculative lock-less access on\npagetables.  That could lead it to not serializing properly against mremap\nPT locks.  But a second problem remains in the order of vmas in the\nsame_anon_vma list used by the rmap_walk.\n\nIf vma_merge succeeds in copy_vma, the src vma could be placed after the\ndst vma in the same_anon_vma list.  That could still lead to migrate\nmissing some pte.\n\nThis patch adds an anon_vma_moveto_tail() function to force the dst vma at\nthe end of the list before mremap starts to solve the problem.\n\nIf the mremap is very large and there are a lots of parents or childs\nsharing the anon_vma root lock, this should still scale better than taking\nthe anon_vma root lock around every pte copy practically for the whole\nduration of mremap.\n\nUpdate: Hugh noticed special care is needed in the error path where\nmove_page_tables goes in the reverse direction, a second\nanon_vma_moveto_tail() call is needed in the error path.\n\nThis program exercises the anon_vma_moveto_tail:\n\n\u003d\u003d\u003d\n\nint main()\n{\n\tstatic struct timeval oldstamp, newstamp;\n\tlong diffsec;\n\tchar *p, *p2, *p3, *p4;\n\tif (posix_memalign((void **)\u0026p, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p2, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\tif (posix_memalign((void **)\u0026p3, 2*1024*1024, SIZE))\n\t\tperror(\"memalign\"), exit(1);\n\n\tmemset(p, 0xff, SIZE);\n\tprintf(\"%p\\n\", p);\n\tmemset(p2, 0xff, SIZE);\n\tmemset(p3, 0x77, 4096);\n\tif (memcmp(p, p2, SIZE))\n\t\tprintf(\"error\\n\");\n\tp4 \u003d mremap(p+SIZE/2, SIZE/2, SIZE/2, MREMAP_FIXED|MREMAP_MAYMOVE, p3);\n\tif (p4 !\u003d p3)\n\t\tperror(\"mremap\"), exit(1);\n\tp4 \u003d mremap(p4, SIZE/2, SIZE/2, MREMAP_FIXED|MREMAP_MAYMOVE, p+SIZE/2);\n\tif (p4 !\u003d p+SIZE/2)\n\t\tperror(\"mremap\"), exit(1);\n\tif (memcmp(p, p2, SIZE))\n\t\tprintf(\"error\\n\");\n\tprintf(\"ok\\n\");\n\n\treturn 0;\n}\n\u003d\u003d\u003d\n\n$ perf probe -a anon_vma_moveto_tail\nAdd new event:\n  probe:anon_vma_moveto_tail (on anon_vma_moveto_tail)\n\nYou can now use it on all perf tools, such as:\n\n        perf record -e probe:anon_vma_moveto_tail -aR sleep 1\n\n$ perf record -e probe:anon_vma_moveto_tail -aR ./anon_vma_moveto_tail\n0x7f2ca2800000\nok\n[ perf record: Woken up 1 times to write data ]\n[ perf record: Captured and wrote 0.043 MB perf.data (~1860 samples) ]\n$ perf report --stdio\n   100.00%  anon_vma_moveto  [kernel.kallsyms]  [k] anon_vma_moveto_tail\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Nai Xia \u003cnai.xia@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Pawel Sikora \u003cpluto@agmk.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "32aaeffbd4a7457bf2f7448b33b5946ff2a960eb",
      "tree": "faf7ad871d87176423ff9ed1d1ba4d9c688fc23f",
      "parents": [
        "208bca0860406d16398145ddd950036a737c3c9d",
        "67b84999b1a8b1af5625b1eabe92146c5eb42932"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 06 19:44:47 2011 -0800"
      },
      "message": "Merge branch \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\n* \u0027modsplit-Oct31_2011\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)\n  Revert \"tracing: Include module.h in define_trace.h\"\n  irq: don\u0027t put module.h into irq.h for tracking irqgen modules.\n  bluetooth: macroize two small inlines to avoid module.h\n  ip_vs.h: fix implicit use of module_get/module_put from module.h\n  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence\n  include: replace linux/module.h with \"struct module\" wherever possible\n  include: convert various register fcns to macros to avoid include chaining\n  crypto.h: remove unused crypto_tfm_alg_modname() inline\n  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE\n  pm_runtime.h: explicitly requires notifier.h\n  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h\n  miscdevice.h: fix up implicit use of lists and types\n  stop_machine.h: fix implicit use of smp.h for smp_processor_id\n  of: fix implicit use of errno.h in include/linux/of.h\n  of_platform.h: delete needless include \u003clinux/module.h\u003e\n  acpi: remove module.h include from platform/aclinux.h\n  miscdevice.h: delete unnecessary inclusion of module.h\n  device_cgroup.h: delete needless include \u003clinux/module.h\u003e\n  net: sch_generic remove redundant use of \u003clinux/module.h\u003e\n  net: inet_timewait_sock doesnt need \u003clinux/module.h\u003e\n  ...\n\nFix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in\n - drivers/media/dvb/frontends/dibx000_common.c\n - drivers/media/video/{mt9m111.c,ov6650.c}\n - drivers/mfd/ab3550-core.c\n - include/linux/dmaengine.h\n"
    },
    {
      "commit": "584cff54e1ff8f59d5109dc8093efedff8bcc375",
      "tree": "464c9acb8bf22bf3a052fef23d3fd9f4f892da4a",
      "parents": [
        "09f363c7363eb10cfb4b82094bd7064e5608258b"
      ],
      "author": {
        "name": "Kautuk Consul",
        "email": "consul.kautuk@gmail.com",
        "time": "Mon Oct 31 17:08:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:49 2011 -0700"
      },
      "message": "mm/mmap.c: eliminate the ret variable from mm_take_all_locks()\n\nThe ret variable is really not needed in mm_take_all_locks().\n\nSigned-off-by: Kautuk Consul \u003cconsul.kautuk@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@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": "b95f1b31b75588306e32b2afd32166cad48f670b",
      "tree": "b5496144e41b117cfe5ae70b145b5351709ec4d0",
      "parents": [
        "b9e15bafdf1aa20791cdefdcbf1ccf7d7aa03aaa"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Oct 16 02:01:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 09:20:12 2011 -0400"
      },
      "message": "mm: Map most files to use export.h instead of module.h\n\nThe files changed within are only using the EXPORT_SYMBOL\nmacro variants.  They are not using core modular infrastructure\nand hence don\u0027t need module.h but only the export.h header.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "c15bef3099c346f2124367bff46954b59e13c3ee",
      "tree": "ec09c0b25eae42d6693a08decde7aee02f296978",
      "parents": [
        "c9d8c3d0896bfa5b57531ecc41a85ffbc6d87dbe"
      ],
      "author": {
        "name": "Dmitry Fink",
        "email": "dmitry.fink@palm.com",
        "time": "Mon Jul 25 17:12:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:09 2011 -0700"
      },
      "message": "mmap: fix and tidy up overcommit page arithmetic\n\n- shmem pages are not immediately available, but they are not\n  potentially available either, even if we swap them out, they will just\n  relocate from memory into swap, total amount of immediate and\n  potentially available memory is not going to be affected, so we\n  shouldn\u0027t count them as potentially free in the first place.\n\n- nr_free_pages() is not an expensive operation anymore, there is no\n  need to split the decision making in two halves and repeat code.\n\nSigned-off-by: Dmitry Fink \u003cdmitry.fink@palm.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@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": "9be34c9d526c305efb332ad53460b57d5f8edb3e",
      "tree": "43db860557f3080b254291dac1035be1468dfdff",
      "parents": [
        "19a1166fa2352f9c07a5ab34a3c2aab462cff35d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 16 00:35:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 16 00:35:09 2011 -0700"
      },
      "message": "mm: get rid of the most spurious find_vma_prev() users\n\nWe have some users of this function that date back to before the vma\nlist was doubly linked, and just are silly.  These days, you can find\nthe previous vma by just following the vma-\u003evm_prev pointer.\n\nIn some cases you don\u0027t need any find_vma() lookup at all, and in other\ncases you\u0027re better off with the regular \"find_vma()\" that uses the vma\ncache front-end lookup.\n\nSome \"find_vma_prev()\" users are still valid, though.  For example, in\nthe case of a stack that grows up, it can be the case that we don\u0027t find\nany \u0027vma\u0027 at all (because we\u0027re looking up an address that is past the\nlast vma), and that the stack that we want to grow is the \u0027prev\u0027 vma.\n\nBut that kind of special case aside, we generally should prefer to use\n\u0027find_vma()\u0027.\n\nNoticed due to a totally unrelated POWER memory corruption bug that just\nhappened to hit in \u0027find_vma_prev()\u0027 and made me go \"Hmm - why are we\nusing that function here?\".\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca16d140af91febe25daeb9e032bf8bd46b8c31f",
      "tree": "a093c3f244a1bdfc2a50e271a7e6df3324df0f05",
      "parents": [
        "4db70f73e56961b9bcdfd0c36c62847a18b7dbb5"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 26 19:16:19 2011 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:20:31 2011 -0700"
      },
      "message": "mm: don\u0027t access vm_flags as \u0027int\u0027\n\nThe type of vma-\u003evm_flags is \u0027unsigned long\u0027. Neither \u0027int\u0027 nor\n\u0027unsigned int\u0027. This patch fixes such misuse.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\n[ Changed to use a typedef - we\u0027ll extend it to cover more cases\n  later, since there has been discussion about making it a 64-bit\n  type..                      - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b575eb64f7a9c701fb4bfdb12388ac547f6c2b6",
      "tree": "965739cbf570567a26f1512ae9a9fe35ce1afbed",
      "parents": [
        "746b18d421da7f27e948e8af1ad82b6d0309324d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:11 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:19 2011 -0700"
      },
      "message": "mm: convert anon_vma-\u003elock to a mutex\n\nStraightforward conversion of anon_vma-\u003elock to a mutex.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "3d48ae45e72390ddf8cc5256ac32ed6f7a19cbea",
      "tree": "1f46db3a8424090dd8e0b58991fa5acc1a73e680",
      "parents": [
        "97a894136f29802da19a15541de3c019e1ca147e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:18 2011 -0700"
      },
      "message": "mm: Convert i_mmap_lock to a mutex\n\nStraightforward conversion of i_mmap_lock to a mutex.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "97a894136f29802da19a15541de3c019e1ca147e",
      "tree": "1fd3f92ba92a37d5d8527a1f41458091d0a944dc",
      "parents": [
        "e4c70a6629f9c74c4b0de258a3951890e9047c82"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:17 2011 -0700"
      },
      "message": "mm: Remove i_mmap_lock lockbreak\n\nHugh says:\n \"The only significant loser, I think, would be page reclaim (when\n  concurrent with truncation): could spin for a long time waiting for\n  the i_mmap_mutex it expects would soon be dropped? \"\n\nCounter points:\n - cpu contention makes the spin stop (need_resched())\n - zap pages should be freeing pages at a higher rate than reclaim\n   ever can\n\nI think the simplification of the truncate code is definitely worth it.\n\nEffectively reverts: 2aa15890f3c (\"mm: prevent concurrent\nunmap_mapping_range() on the same inode\") and takes out the code that\ncaused its problem.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "d16dfc550f5326a4000f3322582a7c05dec91d7a",
      "tree": "8ee963542705cbf2187777f1d3f2b209cbda827a",
      "parents": [
        "d05f3169c0fbca16132ec7c2be71685c6de638b5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:11:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:12 2011 -0700"
      },
      "message": "mm: mmu_gather rework\n\nRework the existing mmu_gather infrastructure.\n\nThe direct purpose of these patches was to allow preemptible mmu_gather,\nbut even without that I think these patches provide an improvement to the\nstatus quo.\n\nThe first 9 patches rework the mmu_gather infrastructure.  For review\npurpose I\u0027ve split them into generic and per-arch patches with the last of\nthose a generic cleanup.\n\nThe next patch provides generic RCU page-table freeing, and the followup\nis a patch converting s390 to use this.  I\u0027ve also got 4 patches from\nDaveM lined up (not included in this series) that uses this to implement\ngup_fast() for sparc64.\n\nThen there is one patch that extends the generic mmu_gather batching.\n\nAfter that follow the mm preemptibility patches, these make part of the mm\na lot more preemptible.  It converts i_mmap_lock and anon_vma-\u003elock to\nmutexes which together with the mmu_gather rework makes mmu_gather\npreemptible as well.\n\nMaking i_mmap_lock a mutex also enables a clean-up of the truncate code.\n\nThis also allows for preemptible mmu_notifiers, something that XPMEM I\nthink wants.\n\nFurthermore, it removes the new and universially detested unmap_mutex.\n\nThis patch:\n\nRemove the first obstacle towards a fully preemptible mmu_gather.\n\nThe current scheme assumes mmu_gather is always done with preemption\ndisabled and uses per-cpu storage for the page batches.  Change this to\ntry and allocate a page for batching and in case of failure, use a small\non-stack array to make some progress.\n\nPreemptible mmu_gather is desired in general and usable once i_mmap_lock\nbecomes a mutex.  Doing it before the mutex conversion saves us from\nhaving to rework the code by moving the mmu_gather bits inside the\npte_lock.\n\nAlso avoid flushing the tlb batches from under the pte lock, this is\nuseful even without the i_mmap_lock conversion as it significantly reduces\npte lock hold times.\n\n[akpm@linux-foundation.org: fix comment tpyo]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "d05f3169c0fbca16132ec7c2be71685c6de638b5",
      "tree": "37d82004869fa4e530617883f12cab7538dbd4a6",
      "parents": [
        "248ac0e1943ad1796393d281b096184719eb3f97"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Tue May 24 17:11:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:12 2011 -0700"
      },
      "message": "mm: make expand_downwards() symmetrical with expand_upwards()\n\nCurrently we have expand_upwards exported while expand_downwards is\naccessible only via expand_stack or expand_stack_downwards.\n\ncheck_stack_guard_page is a nice example of the asymmetry.  It uses\nexpand_stack for VM_GROWSDOWN while expand_upwards is called for\nVM_GROWSUP case.\n\nLet\u0027s clean this up by exporting both functions and make those names\nconsistent.  Let\u0027s use expand_{upwards,downwards} because expanding\ndoesn\u0027t always involve stack manipulation (an example is\nia64_do_page_fault which uses expand_upwards for registers backing store\nexpansion).  expand_downwards has to be defined for both\nCONFIG_STACK_GROWS{UP,DOWN} because get_arg_page calls the downwards\nversion in the early process initialization phase for growsup\nconfiguration.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@HansenPartnership.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": "6038def0d11b322019d0dbb43f2a611247dfbdb6",
      "tree": "3b7bd8a20af5749566bfba9ca39a3d0c2cc25e0a",
      "parents": [
        "ac3bbec5ec69b973317677e038de2d1a0c90c18c"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue May 24 17:11:22 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:05 2011 -0700"
      },
      "message": "mm: nommu: sort mm-\u003emmap list properly\n\nWhen I was reading nommu code, I found that it handles the vma list/tree\nin an unusual way.  IIUC, because there can be more than one\nidentical/overrapped vmas in the list/tree, it sorts the tree more\nstrictly and does a linear search on the tree.  But it doesn\u0027t applied to\nthe list (i.e.  the list could be constructed in a different order than\nthe tree so that we can\u0027t use the list when finding the first vma in that\norder).\n\nSince inserting/sorting a vma in the tree and link is done at the same\ntime, we can easily construct both of them in the same order.  And linear\nsearching on the tree could be more costly than doing it on the list, it\ncan be converted to use the list.\n\nAlso, after the commit 297c5eee3724 (\"mm: make the vma list be doubly\nlinked\") made the list be doubly linked, there were a couple of code need\nto be fixed to construct the list properly.\n\nPatch 1/6 is a preparation.  It maintains the list sorted same as the tree\nand construct doubly-linked list properly.  Patch 2/6 is a simple\noptimization for the vma deletion.  Patch 3/6 and 4/6 convert tree\ntraversal to list traversal and the rest are simple fixes and cleanups.\n\nThis patch:\n\n@vma added into @mm should be sorted by start addr, end addr and VMA\nstruct addr in that order because we may get identical VMAs in the @mm.\nHowever this was true only for the rbtree, not for the list.\n\nThis patch fixes this by remembering \u0027rb_prev\u0027 during the tree traversal\nlike find_vma_prepare() does and linking the @vma via __vma_link_list().\nAfter this patch, we can iterate the whole VMAs in correct order simply by\nusing @mm-\u003emmap list.\n\n[akpm@linux-foundation.org: avoid duplicating __vma_link_list()]\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "965f55dea0e331152fa53941a51e4e16f9f06fae",
      "tree": "3cf8beb31bac7b325b62e8ef75618e0086a3c760",
      "parents": [
        "5f70b962ccc2f2e6259417cf3d1233dc9e16cf5e"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue May 24 17:11:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:04 2011 -0700"
      },
      "message": "mmap: avoid merging cloned VMAs\n\nAvoid merging a VMA with another VMA which is cloned from the parent process.\n\nThe cloned VMA shares the anon_vma lock with the parent process\u0027s VMA.  If\nwe do the merge, more vmas (even the new range is only for current\nprocess) use the perent process\u0027s anon_vma lock.  This introduces\nscalability issues.  find_mergeable_anon_vma() already considers this\ncase.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f70b962ccc2f2e6259417cf3d1233dc9e16cf5e",
      "tree": "5e3d83554554e3c315a7bab654fc51345078bc9d",
      "parents": [
        "34679d7eac9ecc20face093db9aa610f1e9c893a"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue May 24 17:11:19 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:04 2011 -0700"
      },
      "message": "mmap: avoid unnecessary anon_vma lock\n\nIf we only change vma-\u003evm_end, we can avoid taking anon_vma lock even if\n\u0027insert\u0027 isn\u0027t NULL, which is the case of split_vma.\n\nAs I understand it, we need the lock before because rmap must get the\n\u0027insert\u0027 VMA when we adjust old VMA\u0027s vm_end (the \u0027insert\u0027 VMA is linked\nto anon_vma list in __insert_vm_struct before).\n\nBut now this isn\u0027t true any more.  The \u0027insert\u0027 VMA is already linked to\nanon_vma list in __split_vma(with anon_vma_clone()) instead of\n__insert_vm_struct.  There is no race rmap can\u0027t get required VMAs.  So\nthe anon_vma lock is unnecessary, and this can reduce one locking in brk\ncase and improve scalability.\n\nSigned-off-by: Shaohua Li\u003cshaohua.li@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34679d7eac9ecc20face093db9aa610f1e9c893a",
      "tree": "b959da55ed4ff4f4bbd536320cb8205377a46301",
      "parents": [
        "7bf02ea22c6cdd09e2d3f1d3c3fe366b834ae9af"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue May 24 17:11:18 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:03 2011 -0700"
      },
      "message": "mmap: add alignment for some variables\n\nMake some variables have correct alignment/section to avoid cache issue.\nIn a workload which heavily does mmap/munmap, the variables will be used\nfrequently.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@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": "42c36f63ac1366ab0ecc2d5717821362c259f517",
      "tree": "1b711b7f5c1f486a07289edb43db4f99f05d6e5a",
      "parents": [
        "c191f6ccee11b79fb562c36007a5af31c705c9e2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Mon May 09 17:44:42 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 09 17:52:17 2011 -0700"
      },
      "message": "vm: fix vm_pgoff wrap in upward expansion\n\nCommit a626ca6a6564 (\"vm: fix vm_pgoff wrap in stack expansion\") fixed\nthe case of an expanding mapping causing vm_pgoff wrapping when you had\ndownward stack expansion.  But there was another case where IA64 and\nPA-RISC expand mappings: upward expansion.\n\nThis fixes that case too.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4471a675dfc7ca676c165079e91c712b09dc9ce4",
      "tree": "9746321a818cefbb2aa97d8ac4d44c4a6ae84f5a",
      "parents": [
        "5de1743e2434fcb24e3d944a20130029b8fe867a"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Apr 14 15:22:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 14 16:06:55 2011 -0700"
      },
      "message": "brk: COMPAT_BRK: fix detection of randomized brk\n\n5520e89 (\"brk: fix min_brk lower bound computation for COMPAT_BRK\")\ntried to get the whole logic of brk randomization for legacy\n(libc5-based) applications finally right.\n\nIt turns out that the way to detect whether brk has actually been\nrandomized in the end or not introduced by that patch still doesn\u0027t work\nfor those binaries, as reported by Geert:\n\n: /sbin/init from my old m68k ramdisk exists prematurely.\n:\n: Before the patch:\n:\n: | brk(0x80005c8e)                         \u003d 0x80006000\n:\n: After the patch:\n:\n: | brk(0x80005c8e)                         \u003d 0x80005c8e\n:\n: Old libc5 considers brk() to have failed if the return value is not\n: identical to the requested value.\n\nI don\u0027t like it, but currently see no better option than a bit flag in\ntask_struct to catch the CONFIG_COMPAT_BRK \u0026\u0026 randomize_va_space \u003d\u003d 2\ncase.\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nTested-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a626ca6a656450e9f4df91d0dda238fff23285f4",
      "tree": "7de7fabc83baf1312805d9b5f28f01d1adf3f7fd",
      "parents": [
        "60d48c1e67dc8de0676453de18adba1768fb6fab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 13 08:07:28 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 13 08:07:28 2011 -0700"
      },
      "message": "vm: fix vm_pgoff wrap in stack expansion\n\nCommit 982134ba6261 (\"mm: avoid wrapping vm_pgoff in mremap()\") fixed\nthe case of a expanding mapping causing vm_pgoff wrapping when you used\nmremap.  But there was another case where we expand mappings hiding in\nplain sight: the automatic stack expansion.\n\nThis fixes that case too.\n\nThis one also found by Robert Święcki, using his nasty system call\nfuzzer tool.  Good job.\n\nReported-and-tested-by: Robert Święcki \u003crobert@swiecki.net\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5520e89485252c759ee60d313e9422447659947b",
      "tree": "cae55e5e44e86a19af4103ec129d887004d26b5b",
      "parents": [
        "32d6feadf4e17ea9b98071be9bbf402a74a4f818"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Thu Jan 13 15:47:23 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:48 2011 -0800"
      },
      "message": "brk: fix min_brk lower bound computation for COMPAT_BRK\n\nEven if CONFIG_COMPAT_BRK is set in the kernel configuration, it can still\nbe overriden by randomize_va_space sysctl.\n\nIf this is the case, the min_brk computation in sys_brk() implementation\nis wrong, as it solely takes into account COMPAT_BRK setting, assuming\nthat brk start is not randomized.  But that might not be the case if\nrandomize_va_space sysctl has been set to \u00272\u0027 at the time the binary has\nbeen loaded from disk.\n\nIn such case, the check has to be done in a same way as in\n!CONFIG_COMPAT_BRK case.\n\nIn addition to that, the check for the COMPAT_BRK case introduced back in\na5b4592c (\"brk: make sys_brk() honor COMPAT_BRK when computing lower\nbound\") is slightly wrong -- the lower bound shouldn\u0027t be mm-\u003eend_code,\nbut mm-\u003eend_data instead, as that\u0027s where the legacy applications expect\nbrk section to start (i.e.  immediately after last global variable).\n\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94fcc585fb85ad7b059c70872489b50044d401f3",
      "tree": "67efce3803149bec77df1f50a06f384deae02ba6",
      "parents": [
        "bc835011afbea3957217ee716093d791fb2fe44f"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Jan 13 15:47:08 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:45 2011 -0800"
      },
      "message": "thp: avoid breaking huge pmd invariants in case of vma_adjust failures\n\nAn huge pmd can only be mapped if the corresponding 2M virtual range is\nfully contained in the vma.  At times the VM calls split_vma twice, if the\nfirst split_vma succeeds and the second fail, the first split_vma remains\nin effect and it\u0027s not rolled back.  For split_vma or vma_adjust to fail\nan allocation failure is needed so it\u0027s a very unlikely event (the out of\nmemory killer would normally fire before any allocation failure is visible\nto kernel and userland and if an out of memory condition happens it\u0027s\nunlikely to happen exactly here).  Nevertheless it\u0027s safer to ensure that\nno huge pmd can be left around if the vma is adjusted in a way that can\u0027t\nfit hugepages anymore at the new vm_start/vm_end address.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@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": "b15d00b6af617251cc70a908df983e9aff57e169",
      "tree": "0fd28ef8d3705505d5b84d495875e3837698b540",
      "parents": [
        "ba76149f47d8c939efa0acc07a191237af900471"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Jan 13 15:46:59 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:43 2011 -0800"
      },
      "message": "thp: khugepaged vma merge\n\nregister in khugepaged if the vma grows.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@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": "462e635e5b73ba9a4c03913b77138cd57ce4b050",
      "tree": "6ff0e84eecc6252d41d7c08730018c0149e7227f",
      "parents": [
        "0fcdcfbbc98f70f559e4b36773a69972489a6d8f"
      ],
      "author": {
        "name": "Tavis Ormandy",
        "email": "taviso@cmpxchg8b.com",
        "time": "Thu Dec 09 15:29:42 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 15 12:30:36 2010 -0800"
      },
      "message": "install_special_mapping skips security_file_mmap check.\n\nThe install_special_mapping routine (used, for example, to setup the\nvdso) skips the security check before insert_vm_struct, allowing a local\nattacker to bypass the mmap_min_addr security restriction by limiting\nthe available pages for special mappings.\n\nbprm_mm_init() also skips the check, and although I don\u0027t think this can\nbe used to bypass any restrictions, I don\u0027t see any reason not to have\nthe security check.\n\n  $ uname -m\n  x86_64\n  $ cat /proc/sys/vm/mmap_min_addr\n  65536\n  $ cat install_special_mapping.s\n  section .bss\n      resb BSS_SIZE\n  section .text\n      global _start\n      _start:\n          mov     eax, __NR_pause\n          int     0x80\n  $ nasm -D__NR_pause\u003d29 -DBSS_SIZE\u003d0xfffed000 -f elf -o install_special_mapping.o install_special_mapping.s\n  $ ld -m elf_i386 -Ttext\u003d0x10000 -Tbss\u003d0x11000 -o install_special_mapping install_special_mapping.o\n  $ ./install_special_mapping \u0026\n  [1] 14303\n  $ cat /proc/14303/maps\n  0000f000-00010000 r-xp 00000000 00:00 0                                  [vdso]\n  00010000-00011000 r-xp 00001000 00:19 2453665                            /home/taviso/install_special_mapping\n  00011000-ffffe000 rwxp 00000000 00:00 0                                  [stack]\n\nIt\u0027s worth noting that Red Hat are shipping with mmap_min_addr set to\n4096.\n\nSigned-off-by: Tavis Ormandy \u003ctaviso@google.com\u003e\nAcked-by: Kees Cook \u003ckees@ubuntu.com\u003e\nAcked-by: Robert Swiecki \u003cswiecki@google.com\u003e\n[ Changed to not drop the error code - akpm ]\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "120a795da07c9a02221ca23464c28a7c6ad7de1d",
      "tree": "14e0f5ab35e9397f4a1b2f5e24b8394a601aa409",
      "parents": [
        "af2951325bd6c26cb2c91943c7b11aed53504056"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 30 02:54:44 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 30 08:45:43 2010 -0400"
      },
      "message": "audit mmap\n\nNormal syscall audit doesn\u0027t catch 5th argument of syscall.  It also\ndoesn\u0027t catch the contents of userland structures pointed to be\nsyscall argument, so for both old and new mmap(2) ABI it doesn\u0027t\nrecord the descriptor we are mapping.  For old one it also misses\nflags.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2aeadc30de45a72648f271603203ab392b80f607",
      "tree": "f3368916a4b1efdfa205ae0891733995a456957f",
      "parents": [
        "a247c3a97a0216b18a46243eda26081f1928ec37"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Sep 22 13:05:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 22 17:22:40 2010 -0700"
      },
      "message": "mmap: call unlink_anon_vmas() in __split_vma() in case of error\n\nIf __split_vma fails because of an out of memory condition the\nanon_vma_chain isn\u0027t teardown and freed potentially leading to rmap walks\naccessing freed vma information plus there\u0027s a memleak.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8ca3eb08097f6839b2206e2242db4179aee3cfb3",
      "tree": "32b9f033230d615d248fa0bbfa1a0c644a422ed8",
      "parents": [
        "9559fcdbff4f93d29af04478bbc48294519424f5"
      ],
      "author": {
        "name": "Luck, Tony",
        "email": "tony.luck@intel.com",
        "time": "Tue Aug 24 11:44:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 24 12:13:20 2010 -0700"
      },
      "message": "guard page for stacks that grow upwards\n\npa-risc and ia64 have stacks that grow upwards. Check that\nthey do not run into other mappings. By making VM_GROWSUP\n0x0 on architectures that do not ever use it, we can avoid\nsome unpleasant #ifdefs in check_stack_guard_page().\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "297c5eee372478fc32fec5fe8eed711eedb13f3d",
      "tree": "18415eae0833ff4767943f985900524d6b1d73f1",
      "parents": [
        "36423a5ed5e4ea95ceedb68fad52965033e11639"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 16:24:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 08:49:21 2010 -0700"
      },
      "message": "mm: make the vma list be doubly linked\n\nIt\u0027s a really simple list, and several of the users want to go backwards\nin it to find the previous vma.  So rather than have to look up the\nprevious entry with \u0027find_vma_prev()\u0027 or something similar, just make it\ndoubly linked instead.\n\nTested-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e549e989f94de0596b8149a90e0088e7d4d7c97",
      "tree": "2a20fdb475ea0320310a4a770da72cd54ea9347f",
      "parents": [
        "ff36b801624d02a876bb7deded6ab860ea3503f2"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Mon Aug 09 17:19:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "mmap: remove unnecessary lock from __vma_link\n\nThere\u0027s no anon-vma related mangling happening inside __vma_link anymore\nso no need of anon_vma locking there.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: 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": "012f18004da33ba672e3c60838cc4898126174d3",
      "tree": "990382f9f8c0d885463ac9195b8e9a18043f716d",
      "parents": [
        "5c341ee1dfc8fe69d66b1c8b19e463c6d7201ae1"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: always lock the root (oldest) anon_vma\n\nAlways (and only) lock the root (oldest) anon_vma whenever we do something\nin an anon_vma.  The recently introduced anon_vma scalability is due to\nthe rmap code scanning only the VMAs that need to be scanned.  Many common\noperations still took the anon_vma lock on the root anon_vma, so always\ntaking that lock is not expected to introduce any scalability issues.\n\nHowever, always taking the same lock does mean we only need to take one\nlock, which means rmap_walk on pages from any anon_vma in the vma is\nexcluded from occurring during an munmap, expand_stack or other operation\nthat needs to exclude rmap_walk and similar functions.\n\nAlso add the proper locking to vma_adjust.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cba48b98f2348c814316c4b4f411a07a0e4a2bf9",
      "tree": "49c0426f8d41cb147722305c2c3495dd515c3253",
      "parents": [
        "bb4a340e075b7897ece109686bfa177f8518d2db"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: change direct call of spin_lock(anon_vma-\u003elock) to inline function\n\nSubsitute a direct call of spin_lock(anon_vma-\u003elock) with an inline\nfunction doing exactly the same.\n\nThis makes it easier to do the substitution to the root anon_vma lock in a\nfollowing patch.\n\nWe will deal with the handful of special locks (nested, dec_and_lock, etc)\nseparately.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb4a340e075b7897ece109686bfa177f8518d2db",
      "tree": "3cca938530a2367cfd66fcc8ca11809acb14b42b",
      "parents": [
        "597781f3e51f48ef8e67be772196d9e9673752c4"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: rename anon_vma_lock to vma_lock_anon_vma\n\nRename anon_vma_lock to vma_lock_anon_vma.  This matches the naming style\nused in page_lock_anon_vma and will come in really handy further down in\nthis patch series.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3af9e859281bda7eb7c20b51879cf43aa788ac2e",
      "tree": "cddb7fc788abc826551e12bba5892c6b26942392",
      "parents": [
        "8ed92280be013180e24c84456ab6babcb07037cc"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "ebmunson@us.ibm.com",
        "time": "Tue May 18 15:30:49 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 09 11:12:34 2010 +0200"
      },
      "message": "perf: Add non-exec mmap() tracking\n\nAdd the capacility to track data mmap()s. This can be used together\nwith PERF_SAMPLE_ADDR for data profiling.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\n[Updated code for stable perf ABI]\nSigned-off-by: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c1274193049-25997-1-git-send-email-ebmunson@us.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5892753383090a3eddf0e1b043c95e3b2c7feda5",
      "tree": "f1a1d3b449f275dd34ba34208704e92900032f9b",
      "parents": [
        "a231a1f2714ce3b28445ac512a556d6c95517dab"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Apr 26 12:33:03 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 27 08:26:51 2010 -0700"
      },
      "message": "mmap: check -\u003evm_ops before dereferencing\n\nCheck whether the VMA has a vm_ops before calling close, just\nlike we check vm_ops before calling open a few dozen lines\nhigher up in the function.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "287d97ac032136724143cde8d5964b414d562ee3",
      "tree": "c060c9b3e9fd61507687a419a94c659425de57e4",
      "parents": [
        "d0e9fe1758f222f13ec893f856552d81a10d266d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 10 15:22:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 12 17:54:11 2010 -0700"
      },
      "message": "vma_adjust: fix the copying of anon_vma chains\n\nWhen we move the boundaries between two vma\u0027s due to things like\nmprotect, we need to make sure that the anon_vma of the pages that got\nmoved from one vma to another gets properly copied around.  And that was\nnot always the case, in this rather hard-to-follow code sequence.\n\nClarify the code, and fix it so that it copies the anon_vma from the\nright source.\n\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nTested-by: Borislav Petkov \u003cbp@alien8.de\u003e [ \"Yeah, not so much this one either\" ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0e9fe1758f222f13ec893f856552d81a10d266d",
      "tree": "93e55a2e26c2b2f40b6d9142515fd14de8eb6647",
      "parents": [
        "0eddb519b9127c73d53db4bf3ec1d45b13f844d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 10 10:36:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 12 17:53:59 2010 -0700"
      },
      "message": "Simplify and comment on anon_vma re-use for anon_vma_prepare()\n\nThis changes the anon_vma reuse case to require that we only reuse\nsimple anon_vma\u0027s - ie the case when the vma only has a single anon_vma\nassociated with it.\n\nThis means that a reuse of an anon_vma from an adjacent vma will always\nguarantee that both vma\u0027s are associated not only with the same\nanon_vma, they will also have the same anon_vma chain (of just a single\nentry in this case).\n\nAnd since anon_vma re-use was the only case where the same anon_vma\nmight be associated with different chains of anon_vma\u0027s, we now have the\ncase that every vma that shares the same anon_vma will always also have\nthe same chain.  That makes it much easier to think about merging vma\u0027s\nthat share the same anon_vma\u0027s: you can always just drop the other\nanon_vma chain in anon_vma_merge() since you know that they are always\nidentical.\n\nThis also splits up the function to validate the anon_vma re-use, and\nadds a lot of commentary about the possible races.\n\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nTested-by: Borislav Petkov \u003cbp@alien8.de\u003e [ \"That didn\u0027t fix it\" ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a4679373cf4ee0e7792dc56205365732b725c2c1",
      "tree": "6cf8040f608ad46ae7c605284af1ca585fb50eaa",
      "parents": [
        "5d0e52830e9ae09b872567f4aca3dfb5b5918079"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Mar 10 15:21:15 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:32 2010 -0800"
      },
      "message": "Add generic sys_old_mmap()\n\nAdd a generic implementation of the old mmap() syscall, which expects its\nargument in a memory block and switch all architectures over to use it.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nAcked-by: Jesper Nilsson \u003cjesper.nilsson@axis.com\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nAcked-by: Greg Ungerer \u003cgerg@uclinux.org\u003e\nAcked-by: David Howells \u003cdhowells@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": "fc148a5f7e0532750c312385c7ee9fa3e9311f34",
      "tree": "dfd132ed225a113f73c61f5e2018e5644bb3f677",
      "parents": [
        "c44b674323f4a2480dbeb65d4b487fa5f06f49e0"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm: remove VM_LOCK_RMAP code\n\nWhen a VMA is in an inconsistent state during setup or teardown, the worst\nthat can happen is that the rmap code will not be able to find the page.\n\nThe mapping is in the process of being torn down (PTEs just got\ninvalidated by munmap), or set up (no PTEs have been instantiated yet).\n\nIt is also impossible for the rmap code to follow a pointer to an already\nfreed VMA, because the rmap code holds the anon_vma-\u003elock, which the VMA\nteardown code needs to take before the VMA is removed from the anon_vma\nchain.\n\nHence, we should not need the VM_LOCK_RMAP locking at all.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "5beb49305251e5669852ed541e8e2f2f7696c53e",
      "tree": "46457450a22f23938b24904aeba5d4ada2f53b20",
      "parents": [
        "648bcc771145172a14bc35eeb849ed08f6aa4f1e"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm: change anon_vma linking to fix multi-process server scalability issue\n\nThe old anon_vma code can lead to scalability issues with heavily forking\nworkloads.  Specifically, each anon_vma will be shared between the parent\nprocess and all its child processes.\n\nIn a workload with 1000 child processes and a VMA with 1000 anonymous\npages per process that get COWed, this leads to a system with a million\nanonymous pages in the same anon_vma, each of which is mapped in just one\nof the 1000 processes.  However, the current rmap code needs to walk them\nall, leading to O(N) scanning complexity for each page.\n\nThis can result in systems where one CPU is walking the page tables of\n1000 processes in page_referenced_one, while all other CPUs are stuck on\nthe anon_vma lock.  This leads to catastrophic failure for a benchmark\nlike AIM7, where the total number of processes can reach in the tens of\nthousands.  Real workloads are still a factor 10 less process intensive\nthan AIM7, but they are catching up.\n\nThis patch changes the way anon_vmas and VMAs are linked, which allows us\nto associate multiple anon_vmas with a VMA.  At fork time, each child\nprocess gets its own anon_vmas, in which its COWed pages will be\ninstantiated.  The parents\u0027 anon_vma is also linked to the VMA, because\nnon-COWed pages could be present in any of the children.\n\nThis reduces rmap scanning complexity to O(1) for the pages of the 1000\nchild processes, with O(N) complexity for at most 1/N pages in the system.\n This reduces the average scanning cost in heavily forking workloads from\nO(N) to 2.\n\nThe only real complexity in this patch stems from the fact that linking a\nVMA to anon_vmas now involves memory allocations.  This means vma_adjust\ncan fail, if it needs to attach a VMA to anon_vma structures.  This in\nturn means error handling needs to be added to the calling functions.\n\nA second source of complexity is that, because there can be multiple\nanon_vmas, the anon_vma linking in vma_adjust can no longer be done under\n\"the\" anon_vma lock.  To prevent the rmap code from walking up an\nincomplete VMA, this patch introduces the VM_LOCK_RMAP VMA flag.  This bit\nflag uses the same slot as the NOMMU VM_MAPPED_COPY, with an ifdef in mm.h\nto make sure it is impossible to compile a kernel that needs both symbolic\nvalues for the same bitflag.\n\nSome test results:\n\nWithout the anon_vma changes, when AIM7 hits around 9.7k users (on a test\nbox with 16GB RAM and not quite enough IO), the system ends up running\n\u003e99% in system time, with every CPU on the same anon_vma lock in the\npageout code.\n\nWith these changes, AIM7 hits the cross-over point around 29.7k users.\nThis happens with ~99% IO wait time, there never seems to be any spike in\nsystem time.  The anon_vma lock contention appears to be resolved.\n\n[akpm@linux-foundation.org: cleanups]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "59e99e5b9706867f18d4a36c1e4645fbaacbec2e",
      "tree": "e977fb5eecccf1446296fd196072bd1287b0a92f",
      "parents": [
        "06f9d8c2b50060543fb6e0af87ddb86e654dee6b"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Fri Mar 05 13:41:44 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: use rlimit helpers\n\nMake sure compiler won\u0027t do weird things with limits.  E.g.  fetching them\ntwice may return 2 different values after writable limits are implemented.\n\nI.e.  either use rlimit helpers added in\n3e10e716abf3c71bdb5d86b8f507f9e72236c9cd (\"resource: add helpers for\nfetching rlimits\") or ACCESS_ONCE if not applicable.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@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": "06f9d8c2b50060543fb6e0af87ddb86e654dee6b",
      "tree": "0e0f7687c58e0948334f238208529d65de165eea",
      "parents": [
        "c58267c32429ea6535428ca6b8a036892c1697f2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:43 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: mlock_vma_pages_range() only return success or failure\n\nCurrently, mlock_vma_pages_range() only return len or 0.  then current\nerror handling of mmap_region() is meaningless complex.\n\nThis patch makes simplify and makes consist with brk() code.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamewzawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c58267c32429ea6535428ca6b8a036892c1697f2",
      "tree": "c763a26e45a38b2115a2e09eb01b254284c1198b",
      "parents": [
        "b084d4353ff99d824d3bc5a5c2c22c70b1fba722"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:43 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: mlock_vma_pages_range() never return negative value\n\nCurrently, mlock_vma_pages_range() never return negative value.  Then, we\ncan remove some worthless error check.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamewzawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66f0dc481e5b802ab363b979fc1753410c7d82b5",
      "tree": "9f8609685f07d410bc6536a0d3e47e366edf93d4",
      "parents": [
        "75c85a0bc13367aabb36e8208d4e373b022b43b3"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Wed Dec 30 20:17:34 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 30 12:23:27 2009 -0800"
      },
      "message": "mm: move sys_mmap_pgoff from util.c\n\nMove sys_mmap_pgoff() from mm/util.c to mm/mmap.c and mm/nommu.c,\nwhere we\u0027d expect to find such code: especially now that it contains\nthe MAP_HUGETLB handling.  Revert mm/util.c to how it was in 2.6.32.\n\nThis patch just ignores MAP_HUGETLB in the nommu case, as in 2.6.32,\nwhereas 2.6.33-rc2 reported -ENOSYS.  Perhaps validate_mmap_request()\nshould reject it with -EINVAL?  Add that later if necessary.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9d0bf241451a3ab7d02e1652c22b80cd7d93e8f",
      "tree": "f72d7eedf3fee82193407c7190321399833f422c",
      "parents": [
        "62c0c2f198c1f2ead05c961e83ef486c45888325"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "damm@opensource.se",
        "time": "Mon Dec 14 17:59:49 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:21 2009 -0800"
      },
      "message": "mm: uncached vma support with writenotify\n\nModify the generic mmap() code to keep the cache attribute in\nvma-\u003evm_page_prot regardless if writenotify is enabled or not.  Without\nthis patch the cache configuration selected by f_op-\u003emmap() is overwritten\nif writenotify is enabled, making it impossible to keep the vma uncached.\n\nNeeded by drivers such as drivers/video/sh_mobile_lcdcfb.c which uses\ndeferred io together with uncached memory.\n\nSigned-off-by: Magnus Damm \u003cdamm@opensource.se\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jaya Kumar \u003cjayakumar.lkml@gmail.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "659ace584e7a9fdda872eab4d6d7be1e0afb6cae",
      "tree": "e9d8ca3d7429bfa48e823a6f105d76254e34daf0",
      "parents": [
        "bb86a7338b7a864c03e1736a8d370b10254b0300"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Dec 14 17:57:56 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:11 2009 -0800"
      },
      "message": "mmap: don\u0027t return ENOMEM when mapcount is temporarily exceeded in munmap()\n\nOn ia64, the following test program exit abnormally, because glibc thread\nlibrary called abort().\n\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n (gdb) bt\n #0  0xa000000000010620 in __kernel_syscall_via_break ()\n #1  0x20000000003208e0 in raise () from /lib/libc.so.6.1\n #2  0x2000000000324090 in abort () from /lib/libc.so.6.1\n #3  0x200000000027c3e0 in __deallocate_stack () from /lib/libpthread.so.0\n #4  0x200000000027f7c0 in start_thread () from /lib/libpthread.so.0\n #5  0x200000000047ef60 in __clone2 () from /lib/libc.so.6.1\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nThe fact is, glibc call munmap() when thread exitng time for freeing\nstack, and it assume munlock() never fail.  However, munmap() often make\nvma splitting and it with many mapcount make -ENOMEM.\n\nOh well, that\u0027s crazy, because stack unmapping never increase mapcount.\nThe maxcount exceeding is only temporary.  internal temporary exceeding\nshouldn\u0027t make ENOMEM.\n\nThis patch does it.\n\n test_max_mapcount.c\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  #include\u003cstdio.h\u003e\n  #include\u003cstdlib.h\u003e\n  #include\u003cstring.h\u003e\n  #include\u003cpthread.h\u003e\n  #include\u003cerrno.h\u003e\n  #include\u003cunistd.h\u003e\n\n  #define THREAD_NUM 30000\n  #define MAL_SIZE (8*1024*1024)\n\n void *wait_thread(void *args)\n {\n \tvoid *addr;\n\n \taddr \u003d malloc(MAL_SIZE);\n \tsleep(10);\n\n \treturn NULL;\n }\n\n void *wait_thread2(void *args)\n {\n \tsleep(60);\n\n \treturn NULL;\n }\n\n int main(int argc, char *argv[])\n {\n \tint i;\n \tpthread_t thread[THREAD_NUM], th;\n \tint ret, count \u003d 0;\n \tpthread_attr_t attr;\n\n \tret \u003d pthread_attr_init(\u0026attr);\n \tif(ret) {\n \t\tperror(\"pthread_attr_init\");\n \t}\n\n \tret \u003d pthread_attr_setdetachstate(\u0026attr, PTHREAD_CREATE_DETACHED);\n \tif(ret) {\n \t\tperror(\"pthread_attr_setdetachstate\");\n \t}\n\n \tfor (i \u003d 0; i \u003c THREAD_NUM; i++) {\n \t\tret \u003d pthread_create(\u0026th, \u0026attr, wait_thread, NULL);\n \t\tif(ret) {\n \t\t\tfprintf(stderr, \"[%d] \", count);\n \t\t\tperror(\"pthread_create\");\n \t\t} else {\n \t\t\tprintf(\"[%d] create OK.\\n\", count);\n \t\t}\n \t\tcount++;\n\n \t\tret \u003d pthread_create(\u0026thread[i], \u0026attr, wait_thread2, NULL);\n \t\tif(ret) {\n \t\t\tfprintf(stderr, \"[%d] \", count);\n \t\t\tperror(\"pthread_create\");\n \t\t} else {\n \t\t\tprintf(\"[%d] create OK.\\n\", count);\n \t\t}\n \t\tcount++;\n \t}\n\n \tsleep(3600);\n \treturn 0;\n }\n \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c6a10161d0b5fc047b5bd81b03693b9af99fab5",
      "tree": "298916728f640d1ae156a6dfc855b1c8f6c46e37",
      "parents": [
        "9206de95b1ea68357996ec02be5db0638a0de2c1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 03 19:40:46 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 11 06:44:58 2009 -0500"
      },
      "message": "switch do_brk() to get_unmapped_area()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9206de95b1ea68357996ec02be5db0638a0de2c1",
      "tree": "e32b41a06a8465af0e8cfa0660b517930cc2fea5",
      "parents": [
        "8c7b49b3ecd48923eb64ff57e07a1cdb74782970"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 03 15:23:11 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 11 06:44:58 2009 -0500"
      },
      "message": "Take arch_mmap_check() into get_unmapped_area()\n\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8c7b49b3ecd48923eb64ff57e07a1cdb74782970",
      "tree": "3bb2335ccaa34ef227459800c2221e71cf6b1987",
      "parents": [
        "f8b7256096a20436f6d0926747e3ac3d64c81d24"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Nov 30 20:12:03 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Dec 11 06:44:57 2009 -0500"
      },
      "message": "fix a struct file leak in do_mmap_pgoff()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6c21a7fb492bf7e2c4985937082ce58ddeca84bd",
      "tree": "6cfe11ba4b8eee26ee8b02d2b4a5fcc6ea07e4bd",
      "parents": [
        "6e8e16c7bc298d7887584c3d027e05db3e86eed9"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Thu Oct 22 17:30:13 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Sun Oct 25 12:22:48 2009 +0800"
      },
      "message": "LSM: imbed ima calls in the security hooks\n\nBased on discussions on LKML and LSM, where there are consecutive\nsecurity_ and ima_ calls in the vfs layer, move the ima_ calls to\nthe existing security_ hooks.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e52780d41a741fb4861ae1df2413dd816ec11b1",
      "tree": "b3722349661ed0ce87841b110f568616892cf719",
      "parents": [
        "90f72aa58bbf076b68e289fbd71eb829bc505923"
      ],
      "author": {
        "name": "Eric B Munson",
        "email": "ebmunson@us.ibm.com",
        "time": "Mon Sep 21 17:03:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:42 2009 -0700"
      },
      "message": "hugetlb: add MAP_HUGETLB for mmaping pseudo-anonymous huge page regions\n\nAdd a flag for mmap that will be used to request a huge page region that\nwill look like anonymous memory to userspace.  This is accomplished by\nusing a file on the internal vfsmount.  MAP_HUGETLB is a modifier of\nMAP_ANONYMOUS and so must be specified with it.  The region will behave\nthe same as a MAP_ANONYMOUS region using small pages.\n\n[akpm@linux-foundation.org: fix arch definitions of MAP_HUGETLB]\nSigned-off-by: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8dbf0a7a4c5d98e8b70da9f7f4f6a89f3b7a7bb",
      "tree": "1f40d51f39965017999c36e3a5ae78b67e43f5d5",
      "parents": [
        "252c5f94d944487e9f50ece7942b0fbf659c5c31"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Mon Sep 21 17:03:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:41 2009 -0700"
      },
      "message": "mmap: save some cycles for the shared anonymous mapping\n\nshmem_zero_setup() does not change vm_start, pgoff or vm_flags, only some\ndrivers change them (such as /driver/video/bfin-t350mcqb-fb.c).\n\nMove these codes to a more proper place to save cycles for shared\nanonymous mapping.\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "252c5f94d944487e9f50ece7942b0fbf659c5c31",
      "tree": "0dd21bdb968ce5bd3f30fadce261984d3b1abf98",
      "parents": [
        "3f96b79ad96263cc0ece7bb340cddf9b2ddfb1b3"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Mon Sep 21 17:03:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:41 2009 -0700"
      },
      "message": "mmap: avoid unnecessary anon_vma lock acquisition in vma_adjust()\n\nWe noticed very erratic behavior [throughput] with the AIM7 shared\nworkload running on recent distro [SLES11] and mainline kernels on an\n8-socket, 32-core, 256GB x86_64 platform.  On the SLES11 kernel\n[2.6.27.19+] with Barcelona processors, as we increased the load [10s of\nthousands of tasks], the throughput would vary between two \"plateaus\"--one\nat ~65K jobs per minute and one at ~130K jpm.  The simple patch below\ncauses the results to smooth out at the ~130k plateau.\n\nBut wait, there\u0027s more:\n\nWe do not see this behavior on smaller platforms--e.g., 4 socket/8 core.\nThis could be the result of the larger number of cpus on the larger\nplatform--a scalability issue--or it could be the result of the larger\nnumber of interconnect \"hops\" between some nodes in this platform and how\nthe tasks for a given load end up distributed over the nodes\u0027 cpus and\nmemories--a stochastic NUMA effect.\n\nThe variability in the results are less pronounced [on the same platform]\nwith Shanghai processors and with mainline kernels.  With 31-rc6 on\nShanghai processors and 288 file systems on 288 fibre attached storage\nvolumes, the curves [jpm vs load] are both quite flat with the patched\nkernel consistently producing ~3.9% better throughput [~80K jpm vs ~77K\njpm] than the unpatched kernel.\n\nProfiling indicated that the \"slow\" runs were incurring high[er]\ncontention on an anon_vma lock in vma_adjust(), apparently called from the\nsbrk() system call.\n\nThe patch:\n\nA comment in mm/mmap.c:vma_adjust() suggests that we don\u0027t really need the\nanon_vma lock when we\u0027re only adjusting the end of a vma, as is the case\nfor brk().  The comment questions whether it\u0027s worth while to optimize for\nthis case.  Apparently, on the newer, larger x86_64 platforms, with\ninteresting NUMA topologies, it is worth while--especially considering\nthat the patch [if correct!] is quite simple.\n\nWe can detect this condition--no overlap with next vma--by noting a NULL\n\"importer\".  The anon_vma pointer will also be NULL in this case, so\nsimply avoid loading vma-\u003eanon_vma to avoid the lock.\n\nHowever, we DO need to take the anon_vma lock when we\u0027re inserting a vma\n[\u0027insert\u0027 non-NULL] even when we have no overlap [NULL \"importer\"], so we\nneed to check for \u0027insert\u0027, as well.  And Hugh points out that we should\nalso take it when adjusting vm_start (so that rmap.c can rely upon\nvma_address() while it holds the anon_vma lock).\n\nakpm: Zhang Yanmin reprts a 150% throughput improvement with aim7, so it\nmight be -stable material even though thiss isn\u0027t a regression: \"this\nissue is not clear on dual socket Nehalem machine (2*4*2 cpu), but is\nsevere on large machine (4*8*2 cpu)\"\n\n[hugh.dickins@tiscali.co.uk: test vma start too]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Eric Whitney \u003ceric.whitney@hp.com\u003e\nTested-by: \"Zhang, Yanmin\" \u003cyanmin_zhang@linux.intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdf7b3418ad5a8783efe8f9124023d9b869fec0f",
      "tree": "0504a26ba5d7cbbaa71bdd2911d55c6934de8be5",
      "parents": [
        "03f6462a3ae78f36eb1f0ee8b4d5ae2f7859c1d5"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Mon Sep 21 17:03:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:41 2009 -0700"
      },
      "message": "mmap: remove unnecessary code\n\nIf (flags \u0026 MAP_LOCKED) is true, it means vm_flags has already contained\nthe bit VM_LOCKED which is set by calc_vm_flag_bits().\n\nSo there is no need to reset it again, just remove it.\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a913e182ab9484308e870af37a14d372742d53b0",
      "tree": "0fca5598aeba4c53999ec46b6b82b46f9a981965",
      "parents": [
        "8314c4f24a0a5c9b1f7544e9fa83a1d5367ddaa7"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:02:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:33 2009 -0700"
      },
      "message": "ksm: clean up obsolete references\n\nA few cleanups, given the munlock fix: the comment on ksm_test_exit() no\nlonger applies, and it can be made private to ksm.c; there\u0027s no more\nreference to mmu_gather or tlb.h, and mmap.c doesn\u0027t need ksm.h.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "8314c4f24a0a5c9b1f7544e9fa83a1d5367ddaa7",
      "tree": "f3265e2ff817e447c11b9f9070ce1eed9a19731a",
      "parents": [
        "7701c9c0f54feb682d0cefa2ae1f4a1e00e0ba09"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:02:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:33 2009 -0700"
      },
      "message": "ksm: remove VM_MERGEABLE_FLAGS\n\nKSM originally stood for Kernel Shared Memory: but the kernel has long\nsupported shared memory, and VM_SHARED and VM_MAYSHARE vmas, and KSM is\nsomething else.  So we switched to saying \"merge\" instead of \"share\".\n\nBut Chris Wright points out that this is confusing where mmap.c merges\nadjacent vmas: most especially in the name VM_MERGEABLE_FLAGS, used by\nis_mergeable_vma() to let vmas be merged despite flags being different.\n\nCall it VMA_MERGE_DESPITE_FLAGS?  Perhaps, but at present it consists\nonly of VM_CAN_NONLINEAR: so for now it\u0027s clearer on all sides to use\nthat directly, with a comment on it in is_mergeable_vma().\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "1c2fb7a4c2ca7a958b02bc1e615d0254990bba8d",
      "tree": "489a97bd453b8002f2234f7e736548103315fa38",
      "parents": [
        "9ba6929480088a85c1ff60a4b1f1c9fc80dbd2b7"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Mon Sep 21 17:02:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:32 2009 -0700"
      },
      "message": "ksm: fix deadlock with munlock in exit_mmap\n\nRawhide users have reported hang at startup when cryptsetup is run: the\nsame problem can be simply reproduced by running a program int main() {\nmlockall(MCL_CURRENT | MCL_FUTURE); return 0; }\n\nThe problem is that exit_mmap() applies munlock_vma_pages_all() to\nclean up VM_LOCKED areas, and its current implementation (stupidly)\ntries to fault in absent pages, for example where PROT_NONE prevented\nthem being faulted in when mlocking.  Whereas the \"ksm: fix oom\ndeadlock\" patch, knowing there\u0027s a race by which KSM might try to fault\nin pages after exit_mmap() had finally zapped the range, backs out of\nsuch faults doing nothing when its ksm_test_exit() notices mm_users 0.\n\nSo revert that part of \"ksm: fix oom deadlock\" which moved the\nksm_exit() call from before exit_mmap() to the middle of exit_mmap();\nand remove those ksm_test_exit() checks from the page fault paths, so\nallowing the munlocking to proceed without interference.\n\nksm_exit, if there are rmap_items still chained on this mm slot, takes\nmmap_sem write side: so preventing KSM from working on an mm while\nexit_mmap runs.  And KSM will bail out as soon as it notices that\nmm_users is already zero, thanks to its internal ksm_test_exit checks.\nSo that when a task is killed by OOM killer or the user, KSM will not\nindefinitely prevent it from running exit_mmap to release its memory.\n\nThis does break a part of what \"ksm: fix oom deadlock\" was trying to\nachieve.  When unmerging KSM (echo 2 \u003e/sys/kernel/mm/ksm), and even\nwhen ksmd itself has to cancel a KSM page, it is possible that the\nfirst OOM-kill victim would be the KSM process being faulted: then its\nmemory won\u0027t be freed until a second victim has been selected (freeing\nmemory for the unmerging fault to complete).\n\nBut the OOM killer is already liable to kill a second victim once the\nintended victim\u0027s p-\u003emm goes to NULL: so there\u0027s not much point in\nrejecting this KSM patch before fixing that OOM behaviour.  It is very\nmuch more important to allow KSM users to boot up, than to haggle over\nan unlikely and poorly supported OOM case.\n\nWe also intend to fix munlocking to not fault pages: at which point\nthis patch _could_ be reverted; though that would be controversial, so\nwe hope to find a better solution.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Justin M. Forbes \u003cjforbes@redhat.com\u003e\nAcked-for-now-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Izik Eidus \u003cieidus@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": "9ba6929480088a85c1ff60a4b1f1c9fc80dbd2b7",
      "tree": "39aab8cdffae598b55e35c578f70820712286ab4",
      "parents": [
        "cd551f97519d35855be5a8720a47cc802ee4fd06"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:02:20 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:32 2009 -0700"
      },
      "message": "ksm: fix oom deadlock\n\nThere\u0027s a now-obvious deadlock in KSM\u0027s out-of-memory handling:\nimagine ksmd or KSM_RUN_UNMERGE handling, holding ksm_thread_mutex,\ntrying to allocate a page to break KSM in an mm which becomes the\nOOM victim (quite likely in the unmerge case): it\u0027s killed and goes\nto exit, and hangs there waiting to acquire ksm_thread_mutex.\n\nClearly we must not require ksm_thread_mutex in __ksm_exit, simple\nthough that made everything else: perhaps use mmap_sem somehow?\nAnd part of the answer lies in the comments on unmerge_ksm_pages:\n__ksm_exit should also leave all the rmap_item removal to ksmd.\n\nBut there\u0027s a fundamental problem, that KSM relies upon mmap_sem to\nguarantee the consistency of the mm it\u0027s dealing with, yet exit_mmap\ntears down an mm without taking mmap_sem.  And bumping mm_users won\u0027t\nhelp at all, that just ensures that the pages the OOM killer assumes\nare on their way to being freed will not be freed.\n\nThe best answer seems to be, to move the ksm_exit callout from just\nbefore exit_mmap, to the middle of exit_mmap: after the mm\u0027s pages\nhave been freed (if the mmu_gather is flushed), but before its page\ntables and vma structures have been freed; and down_write,up_write\nmmap_sem there to serialize with KSM\u0027s own reliance on mmap_sem.\n\nBut KSM then needs to be careful, whenever it downs mmap_sem, to\ncheck that the mm is not already exiting: there\u0027s a danger of using\nfind_vma on a layout that\u0027s being torn apart, or writing into page\ntables which have been freed for reuse; and even do_anonymous_page\nand __do_fault need to check they\u0027re not being called by break_ksm\nto reinstate a pte after zap_pte_range has zapped that page table.\n\nThough it might be clearer to add an exiting flag, set while holding\nmmap_sem in __ksm_exit, that wouldn\u0027t cover the issue of reinstating\na zapped pte.  All we need is to check whether mm_users is 0 - but\nmust remember that ksmd may detect that before __ksm_exit is reached.\nSo, ksm_test_exit(mm) added to comment such checks on mm-\u003emm_users.\n\n__ksm_exit now has to leave clearing up the rmap_items to ksmd,\nthat needs ksm_thread_mutex; but shift the exiting mm just after the\nksm_scan cursor so that it will soon be dealt with.  __ksm_enter raise\nmm_count to hold the mm_struct, ksmd\u0027s exit processing (exactly like\nits processing when it finds all VM_MERGEABLEs unmapped) mmdrop it,\nsimilar procedure for KSM_RUN_UNMERGE (which has stopped ksmd).\n\nBut also give __ksm_exit a fast path: when there\u0027s no complication\n(no rmap_items attached to mm and it\u0027s not at the ksm_scan cursor),\nit can safely do all the exiting work itself.  This is not just an\noptimization: when ksmd is not running, the raised mm_count would\notherwise leak mm_structs.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "cdd6c482c9ff9c55475ee7392ec8f672eddb7be6",
      "tree": "81f98a3ab46c589792057fe2392c1e10f8ad7893",
      "parents": [
        "dfc65094d0313cc48969fa60bcf33d693aeb05a7"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 12:02:48 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Sep 21 14:28:04 2009 +0200"
      },
      "message": "perf: Do the big rename: Performance Counters -\u003e Performance Events\n\nBye-bye Performance Counters, welcome Performance Events!\n\nIn the past few months the perfcounters subsystem has grown out its\ninitial role of counting hardware events, and has become (and is\nbecoming) a much broader generic event enumeration, reporting, logging,\nmonitoring, analysis facility.\n\nNaming its core object \u0027perf_counter\u0027 and naming the subsystem\n\u0027perfcounters\u0027 has become more and more of a misnomer. With pending\ncode like hw-breakpoints support the \u0027counter\u0027 name is less and\nless appropriate.\n\nAll in one, we\u0027ve decided to rename the subsystem to \u0027performance\nevents\u0027 and to propagate this rename through all fields, variables\nand API names. (in an ABI compatible fashion)\n\nThe word \u0027event\u0027 is also a bit shorter than \u0027counter\u0027 - which makes\nit slightly more convenient to write/handle as well.\n\nThanks goes to Stephane Eranian who first observed this misnomer and\nsuggested a rename.\n\nUser-space tooling and ABI compatibility is not affected - this patch\nshould be function-invariant. (Also, defconfigs were not touched to\nkeep the size down.)\n\nThis patch has been generated via the following script:\n\n  FILES\u003d$(find * -type f | grep -vE \u0027oprofile|[^K]config\u0027)\n\n  sed -i \\\n    -e \u0027s/PERF_EVENT_/PERF_RECORD_/g\u0027 \\\n    -e \u0027s/PERF_COUNTER/PERF_EVENT/g\u0027 \\\n    -e \u0027s/perf_counter/perf_event/g\u0027 \\\n    -e \u0027s/nb_counters/nb_events/g\u0027 \\\n    -e \u0027s/swcounter/swevent/g\u0027 \\\n    -e \u0027s/tpcounter_event/tp_event/g\u0027 \\\n    $FILES\n\n  for N in $(find . -name perf_counter.[ch]); do\n    M\u003d$(echo $N | sed \u0027s/perf_counter/perf_event/g\u0027)\n    mv $N $M\n  done\n\n  FILES\u003d$(find . -name perf_event.*)\n\n  sed -i \\\n    -e \u0027s/COUNTER_MASK/REG_MASK/g\u0027 \\\n    -e \u0027s/COUNTER/EVENT/g\u0027 \\\n    -e \u0027s/\\\u003cevent\\\u003e/event_id/g\u0027 \\\n    -e \u0027s/counter/event/g\u0027 \\\n    -e \u0027s/Counter/Event/g\u0027 \\\n    $FILES\n\n... to keep it as correct as possible. This script can also be\nused by anyone who has pending perfcounters patches - it converts\na Linux kernel tree over to the new naming. We tried to time this\nchange to the point in time where the amount of pending patches\nis the smallest: the end of the merge window.\n\nNamespace clashes were fixed up in a preparatory patch - and some\nstylistic fallout will be fixed up in a subsequent patch.\n\n( NOTE: \u0027counters\u0027 are still the proper terminology when we deal\n  with hardware registers - and these sed scripts are a bit\n  over-eager in renaming them. I\u0027ve undone some of that, but\n  in case there\u0027s something left where \u0027counter\u0027 would be\n  better than \u0027event\u0027 we can undo that on an individual basis\n  instead of touching an otherwise nicely automated patch. )\n\nSuggested-by: Stephane Eranian \u003ceranian@google.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nReviewed-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "27f5de7963f46388932472b660f2f9a86ab58454",
      "tree": "83bd98f83819ae9012ada5f077e59fcb18319769",
      "parents": [
        "8f1ecc9fbc5b223e4f5d5bb8bcd6f5672c4bc4b6"
      ],
      "author": {
        "name": "Jianjun Kong",
        "email": "jianjun@zeuux.org",
        "time": "Thu Sep 17 19:26:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 18 09:48:52 2009 -0700"
      },
      "message": "mm: Fix problem of parameter in note\n\n\u0027current\u0027 is a pointer, so the right form is  \u0027down_write(\u0026current-\u003emm-\u003emmap_sem)\u0027.\n\nSigned-off-by: Jianjun Kong \u003cjianjun@zeuux.org\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "788084aba2ab7348257597496befcbccabdc98a3",
      "tree": "2da42d746d67b16ef705229a1b5a3528ec19c725",
      "parents": [
        "8cf948e744e0218af604c32edecde10006dc8e9e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 31 12:54:11 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 17 15:09:11 2009 +1000"
      },
      "message": "Security/SELinux: seperate lsm specific mmap_min_addr\n\nCurrently SELinux enforcement of controls on the ability to map low memory\nis determined by the mmap_min_addr tunable.  This patch causes SELinux to\nignore the tunable and instead use a seperate Kconfig option specific to how\nmuch space the LSM should protect.\n\nThe tunable will now only control the need for CAP_SYS_RAWIO and SELinux\npermissions will always protect the amount of low memory designated by\nCONFIG_LSM_MMAP_MIN_ADDR.\n\nThis allows users who need to disable the mmap_min_addr controls (usual reason\nbeing they run WINE as a non-root user) to do so and still have SELinux\ncontrols preventing confined domains (like a web server) from being able to\nmap some area of low memory.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "8a1ca8cedd108c8e76a6ab34079d0bbb4f244799",
      "tree": "636c715524f1718599209cc289908ea44b6cb859",
      "parents": [
        "b640f042faa2a2fad6464f259a8afec06e2f6386",
        "940010c5a314a7bd9b498593bc6ba1718ac5aec5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:01:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 14:01:07 2009 -0700"
      },
      "message": "Merge branch \u0027perfcounters-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perfcounters-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (574 commits)\n  perf_counter: Turn off by default\n  perf_counter: Add counter-\u003eid to the throttle event\n  perf_counter: Better align code\n  perf_counter: Rename L2 to LL cache\n  perf_counter: Standardize event names\n  perf_counter: Rename enums\n  perf_counter tools: Clean up u64 usage\n  perf_counter: Rename perf_counter_limit sysctl\n  perf_counter: More paranoia settings\n  perf_counter: powerpc: Implement generalized cache events for POWER processors\n  perf_counters: powerpc: Add support for POWER7 processors\n  perf_counter: Accurate period data\n  perf_counter: Introduce struct for sample data\n  perf_counter tools: Normalize data using per sample period data\n  perf_counter: Annotate exit ctx recursion\n  perf_counter tools: Propagate signals properly\n  perf_counter tools: Small frequency related fixes\n  perf_counter: More aggressive frequency adjustment\n  perf_counter/x86: Fix the model number of Intel Core2 processors\n  perf_counter, x86: Correct some event and umask values for Intel processors\n  ...\n"
    },
    {
      "commit": "089dd79db9264dc0da602bad45d42f1b3e7d1e07",
      "tree": "017b1efd0bc4f3d15b92ed6fae5dfc3d1b164872",
      "parents": [
        "f7b6eb3fa07269da20dbbde8ba37a0273fdbd9c9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 05 14:04:55 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 05 14:46:41 2009 +0200"
      },
      "message": "perf_counter: Generate mmap events for install_special_mapping()\n\nIn order to track the vdso also generate mmap events for\ninstall_special_mapping().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d99e9446200c1ffab28cb0e39b76c34a2bfafd06",
      "tree": "10cd2f67f3bffaf8dcec79c197689f440faf9265",
      "parents": [
        "60313ebed739b331e8e61079da27a11ee3b73a30"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 04 17:08:58 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 04 17:51:38 2009 +0200"
      },
      "message": "perf_counter: Remove munmap stuff\n\nIn name of keeping it simple, only track mmap events. Userspace\nwill have to remove old overlapping maps when it encounters them.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e0a94c2a63f2644826069044649669b5e7ca75d3",
      "tree": "debf8a9af6ac23dadd116dc1cd1f9dcefe9629c6",
      "parents": [
        "7d2948b1248109dbc7f4aaf9867c54b1912d494c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Wed Jun 03 16:04:31 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 04 12:07:48 2009 +1000"
      },
      "message": "security: use mmap_min_addr indepedently of security models\n\nThis patch removes the dependency of mmap_min_addr on CONFIG_SECURITY.\nIt also sets a default mmap_min_addr of 4096.\n\nmmapping of addresses below 4096 will only be possible for processes\nwith CAP_SYS_RAWIO.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nLooks-ok-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "dc3f81b129b5439ba7bac265bbc6a51a39275dae",
      "tree": "216030731d911249496d2e97206cd61431e31c89",
      "parents": [
        "d2517a49d55536b38c7a87e5289550cfedaa4dcc",
        "1406de8e11eb043681297adf86d6892ff8efc27a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 18 07:37:44 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 18 07:37:49 2009 +0200"
      },
      "message": "Merge commit \u0027v2.6.30-rc6\u0027 into perfcounters/core\n\nMerge reason: this branch was on an -rc4 base, merge it up to -rc6\n              to get the latest upstream fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "00a62ce91e554198ef28234c91c36f850f5a3bc9",
      "tree": "367ef134219deef91903c3fa0eb108c13658f2c7",
      "parents": [
        "0763ed2355198cdef2f6a2098e9d52eb1fe4365d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 30 15:08:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 15:36:10 2009 -0700"
      },
      "message": "mm: fix Committed_AS underflow on large NR_CPUS environment\n\nThe Committed_AS field can underflow in certain situations:\n\n\u003e         # while true; do cat /proc/meminfo  | grep _AS; sleep 1; done | uniq -c\n\u003e               1 Committed_AS: 18446744073709323392 kB\n\u003e              11 Committed_AS: 18446744073709455488 kB\n\u003e               6 Committed_AS:    35136 kB\n\u003e               5 Committed_AS: 18446744073709454400 kB\n\u003e               7 Committed_AS:    35904 kB\n\u003e               3 Committed_AS: 18446744073709453248 kB\n\u003e               2 Committed_AS:    34752 kB\n\u003e               9 Committed_AS: 18446744073709453248 kB\n\u003e               8 Committed_AS:    34752 kB\n\u003e               3 Committed_AS: 18446744073709320960 kB\n\u003e               7 Committed_AS: 18446744073709454080 kB\n\u003e               3 Committed_AS: 18446744073709320960 kB\n\u003e               5 Committed_AS: 18446744073709454080 kB\n\u003e               6 Committed_AS: 18446744073709320960 kB\n\nBecause NR_CPUS can be greater than 1000 and meminfo_proc_show() does\nnot check for underflow.\n\nBut NR_CPUS proportional isn\u0027t good calculation.  In general,\npossibility of lock contention is proportional to the number of online\ncpus, not theorical maximum cpus (NR_CPUS).\n\nThe current kernel has generic percpu-counter stuff.  using it is right\nway.  it makes code simplify and percpu_counter_read_positive() don\u0027t\nmake underflow issue.\n\nReported-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[All kernel versions]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7fd5d4b3d240f42c30a9e3d20a4689c4d3a795a",
      "tree": "4ba588631dd8189a818a91c9e3976526071178b6",
      "parents": [
        "1130b0296184bc21806225fd06d533515a99d2db",
        "56a50adda49b2020156616c4eb15353e0f9ad7de"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:46:59 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 29 14:47:05 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perfcounters/core\n\nMerge reason: This brach was on -rc1, refresh it to almost-rc4 to pick up\n              the latest upstream fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "05fa199d45c54a9bda7aa3ae6537253d6f097aa9",
      "tree": "cfdcdd04bfcef7d0dcb47fad93ba8fa676349dd3",
      "parents": [
        "05f54c13cd0c33694eec39a265475c5d6cf223cf"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Apr 16 21:58:12 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 16 14:41:25 2009 -0700"
      },
      "message": "mm: pass correct mm when growing stack\n\nTetsuo Handa reports seeing the WARN_ON(current-\u003emm \u003d\u003d NULL) in\nsecurity_vm_enough_memory(), when do_execve() is touching the\ntarget mm\u0027s stack, to set up its args and environment.\n\nYes, a UMH_NO_WAIT or UMH_WAIT_PROC call_usermodehelper() spawns\nan mm-less kernel thread to do the exec.  And in any case, that\nvm_enough_memory check when growing stack ought to be done on the\ntarget mm, not on the execer\u0027s mm (though apart from the warning,\nit only makes a slight tweak to OVERCOMMIT_NEVER behaviour).\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a4a93919bdc5cee48fe4367591e8e0449c1086c",
      "tree": "0f0d7ac3ee4f61c1e7e53f0ba4e3b01e0e4ac728",
      "parents": [
        "195564390210977954fe4ef45b39cdee34f41b59"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Mar 30 19:07:05 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 06 09:30:38 2009 +0200"
      },
      "message": "perf_counter: executable mmap() information\n\nCurrently the profiling information returns userspace IPs but no way\nto correlate them to userspace code. Userspace could look into\n/proc/$pid/maps but that might not be current or even present anymore\nat the time of analyzing the IPs.\n\nTherefore provide means to track the mmap information and provide it\nin the output stream.\n\nXXX: only covers mmap()/munmap(), mremap() and mprotect() are missing.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nOrig-LKML-Reference: \u003c20090330171023.417259499@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "33e5d76979cf01e3834814fe0aea569d1d602c1a",
      "tree": "58a03e5da59db203245da10db144a4f6f61a83ba",
      "parents": [
        "5482415a5ecc0cd791a5d885cc3db8281401078f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 02 16:56:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "nommu: fix a number of issues with the per-MM VMA patch\n\nFix a number of issues with the per-MM VMA patch:\n\n (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on\n     a NOMMU system with more than 2G pages.  Makes no difference on a 32-bit\n     system.\n\n (2) Report vma-\u003evm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value,\n     lest it overflow.\n\n (3) Move the allocation of the vm_area_struct slab back for fork.c.\n\n (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs.\n\n (5) Use BUG_ON() rather than if () BUG().\n\n (6) Make the default validate_nommu_regions() a static inline rather than a\n     #define.\n\n (7) Make free_page_series()\u0027s objection to pages with a refcount !\u003d 1 more\n     informative.\n\n (8) Adjust the __put_nommu_region() banner comment to indicate that the\n     semaphore must be held for writing.\n\n (9) Limit the number of warnings about munmaps of non-mmapped regions.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "703a3cd72817e99201cef84a8a7aecc60b2b3581",
      "tree": "3e943755178ff410694722bb031f523136fbc432",
      "parents": [
        "df7f54c012b92ec93d56b68547351dcdf8a163d3",
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "9480c53e9b2aa13a06283ffb96bb8f1873ac4e9a",
      "tree": "4d7949c56e6877f0aac372bebed379eda7b0e646",
      "parents": [
        "3abdbf90a3ffb006108c831c56b092e35483b6ec"
      ],
      "author": {
        "name": "Jeremy Fitzhardinge",
        "email": "jeremy@goop.org",
        "time": "Wed Feb 11 13:04:41 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 11 14:25:37 2009 -0800"
      },
      "message": "mm: rearrange exit_mmap() to unlock before arch_exit_mmap\n\nChristophe Saout reported [in precursor to:\nhttp://marc.info/?l\u003dlinux-kernel\u0026m\u003d123209902707347\u0026w\u003d4]:\n\n\u003e Note that I also some a different issue with CONFIG_UNEVICTABLE_LRU.\n\u003e Seems like Xen tears down current-\u003emm early on process termination, so\n\u003e that __get_user_pages in exit_mmap causes nasty messages when the\n\u003e process had any mlocked pages.  (in fact, it somehow manages to get into\n\u003e the swapping code and produces a null pointer dereference trying to get\n\u003e a swap token)\n\nJeremy explained:\n\nYes.  In the normal case under Xen, an in-use pagetable is \"pinned\",\nmeaning that it is RO to the kernel, and all updates must go via hypercall\n(or writes are trapped and emulated, which is much the same thing).  An\nunpinned pagetable is not currently in use by any process, and can be\ndirectly accessed as normal RW pages.\n\nAs an optimisation at process exit time, we unpin the pagetable as early\nas possible (switching the process to init_mm), so that all the normal\npagetable teardown can happen with direct memory accesses.\n\nThis happens in exit_mmap() -\u003e arch_exit_mmap().  The munlocking happens\na few lines below.  The obvious thing to do would be to move\narch_exit_mmap() to below the munlock code, but I think we\u0027d want to\ncall it even if mm-\u003emmap is NULL, just to be on the safe side.\n\nThus, this patch:\n\nexit_mmap() needs to unlock any locked vmas before calling arch_exit_mmap,\nas the latter may switch the current mm to init_mm, which would cause the\nformer to fail.\n\nSigned-off-by: Jeremy Fitzhardinge \u003cjeremy.fitzhardinge@citrix.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Christophe Saout \u003cchristophe@saout.de\u003e\nCc: Keir Fraser \u003ckeir.fraser@eu.citrix.com\u003e\nCc: Christophe Saout \u003cchristophe@saout.de\u003e\nCc: Alex Williamson \u003calex.williamson@hp.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a6fe125950676015f5108fb71b2a67441755003",
      "tree": "c985fac46de39392466c4917c497b50bdc9c0757",
      "parents": [
        "4c098bcd55fad34dcf224bf8343db6a9ac58fc68"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Feb 10 14:02:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 10 10:48:42 2009 -0800"
      },
      "message": "Do not account for the address space used by hugetlbfs using VM_ACCOUNT\n\nWhen overcommit is disabled, the core VM accounts for pages used by anonymous\nshared, private mappings and special mappings. It keeps track of VMAs that\nshould be accounted for with VM_ACCOUNT and VMAs that never had a reserve\nwith VM_NORESERVE.\n\nOvercommit for hugetlbfs is much riskier than overcommit for base pages\ndue to contiguity requirements. It avoids overcommiting on both shared and\nprivate mappings using reservation counters that are checked and updated\nduring mmap(). This ensures (within limits) that hugepages exist in the\nfuture when faults occurs or it is too easy to applications to be SIGKILLed.\n\nAs hugetlbfs makes its own reservations of a different unit to the base page\nsize, VM_ACCOUNT should never be set. Even if the units were correct, we would\ndouble account for the usage in the core VM and hugetlbfs. VM_NORESERVE may\nbe set because an application can request no reserves be made for hugetlbfs\nat the risk of getting killed later.\n\nWith commit fc8744adc870a8d4366908221508bb113d8b72ee, VM_NORESERVE and\nVM_ACCOUNT are getting unconditionally set for hugetlbfs-backed mappings. This\nbreaks the accounting for both the core VM and hugetlbfs, can trigger an\nOOM storm when hugepage pools are too small lockups and corrupted counters\notherwise are used. This patch brings hugetlbfs more in line with how the\ncore VM treats VM_NORESERVE but prevents VM_ACCOUNT being set.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb5629b10d64a8006622ce3a52bc887d91057d69",
      "tree": "7c06d8f30783115e3384721046258ce615b129c5",
      "parents": [
        "8920d5ad6ba74ae8ab020e90cc4d976980e68701",
        "f01d1d546abb2f4028b5299092f529eefb01253a"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 11:01:45 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/namei.c\n\nManually merged per:\n\ndiff --cc fs/namei.c\nindex 734f2b5,bbc15c2..0000000\n--- a/fs/namei.c\n+++ b/fs/namei.c\n@@@ -860,9 -848,8 +849,10 @@@ static int __link_path_walk(const char\n  \t\tnd-\u003eflags |\u003d LOOKUP_CONTINUE;\n  \t\terr \u003d exec_permission_lite(inode);\n  \t\tif (err \u003d\u003d -EAGAIN)\n- \t\t\terr \u003d vfs_permission(nd, MAY_EXEC);\n+ \t\t\terr \u003d inode_permission(nd-\u003epath.dentry-\u003ed_inode,\n+ \t\t\t\t\t       MAY_EXEC);\n +\t\tif (!err)\n +\t\t\terr \u003d ima_path_check(\u0026nd-\u003epath, MAY_EXEC);\n   \t\tif (err)\n  \t\t\tbreak;\n\n@@@ -1525,14 -1506,9 +1509,14 @@@ int may_open(struct path *path, int acc\n  \t\tflag \u0026\u003d ~O_TRUNC;\n  \t}\n\n- \terror \u003d vfs_permission(nd, acc_mode);\n+ \terror \u003d inode_permission(inode, acc_mode);\n  \tif (error)\n  \t\treturn error;\n +\n- \terror \u003d ima_path_check(\u0026nd-\u003epath,\n++\terror \u003d ima_path_check(path,\n +\t\t\t       acc_mode \u0026 (MAY_READ | MAY_WRITE | MAY_EXEC));\n +\tif (error)\n +\t\treturn error;\n  \t/*\n  \t * An append-only file must be opened in append mode for writing.\n  \t */\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "6146f0d5e47ca4047ffded0fb79b6c25359b386c",
      "tree": "edd792e52ad56d4a5d3ac6caa8437d3283fc157e",
      "parents": [
        "659aaf2bb5496a425ba14036b5b5900f593e4484"
      ],
      "author": {
        "name": "Mimi Zohar",
        "email": "zohar@linux.vnet.ibm.com",
        "time": "Wed Feb 04 09:06:57 2009 -0500"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Feb 06 09:05:30 2009 +1100"
      },
      "message": "integrity: IMA hooks\n\nThis patch replaces the generic integrity hooks, for which IMA registered\nitself, with IMA integrity hooks in the appropriate places directly\nin the fs directory.\n\nSigned-off-by: Mimi Zohar \u003czohar@us.ibm.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "fc8744adc870a8d4366908221508bb113d8b72ee",
      "tree": "755f4c4a1cc30567fde4e60c9cc5e6a889c360b0",
      "parents": [
        "33bfad54b58cf05cfe6678c3ec9235d4bc8db4c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 31 15:08:56 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 31 15:08:56 2009 -0800"
      },
      "message": "Stop playing silly games with the VM_ACCOUNT flag\n\nThe mmap_region() code would temporarily set the VM_ACCOUNT flag for\nanonymous shared mappings just to inform shmem_zero_setup() that it\nshould enable accounting for the resulting shm object.  It would then\nclear the flag after calling -\u003emmap (for the /dev/zero case) or doing\nshmem_zero_setup() (for the MAP_ANON case).\n\nThis just resulted in vma merge issues, but also made for just\nunnecessary confusion.  Use the already-existing VM_NORESERVE flag for\nthis instead, and let shmem_{zero|file}_setup() just figure it out from\nthat.\n\nThis also happens to make it obvious that the new DRI2 GEM layer uses a\nnon-reserving backing store for its object allocation - which is quite\npossibly not intentional.  But since I didn\u0027t want to change semantics\nin this patch, I left it alone, and just updated the caller to use the\nnew flag semantics.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33bfad54b58cf05cfe6678c3ec9235d4bc8db4c2",
      "tree": "d6be0ff97effa23289b2566acf8e56a49aa5657e",
      "parents": [
        "c01a25e7cf6dcb0fa69c155706d5dd1e76e53796"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 11:37:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 30 11:37:22 2009 -0800"
      },
      "message": "Allow opportunistic merging of VM_CAN_NONLINEAR areas\n\nCommit de33c8db5910cda599899dd431cc30d7c1018cbf (\"Fix OOPS in\nmmap_region() when merging adjacent VM_LOCKED file segments\") unified\nthe vma merging of anonymous and file maps to just one place, which\nsimplified the code and fixed a use-after-free bug that could cause an\noops.\n\nBut by doing the merge opportunistically before even having called\n-\u003emmap() on the file method, it now compares two different \u0027vm_flags\u0027\nvalues: the pre-mmap() value of the new not-yet-formed vma, and previous\nmappings of the same file around it.\n\nAnd in doing so, it refused to merge the common file case, which adds a\nmarker to say \"I can be made non-linear\".\n\nThis fixes it by just adding a set of flags that don\u0027t have to match,\nbecause we know they are ok to merge.  Currently it\u0027s only that single\nVM_CAN_NONLINEAR flag, but at least conceptually there could be others\nin the future.\n\nReported-and-acked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de33c8db5910cda599899dd431cc30d7c1018cbf",
      "tree": "4ee9ba8685bae5d1719a3158284d0c197c83afde",
      "parents": [
        "18e352e4a73465349711a9324767e1b2453383e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 17:46:42 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 17:46:42 2009 -0800"
      },
      "message": "Fix OOPS in mmap_region() when merging adjacent VM_LOCKED file segments\n\nAs of commit ba470de43188cdbff795b5da43a1474523c6c2fb (\"map: handle\nmlocked pages during map, remap, unmap\") we now use the \u0027vma\u0027 variable\nat the end of mmap_region() to handle the page-in of newly mapped\nmlocked pages.\n\nHowever, if we merged adjacent vma\u0027s together, the vma we\u0027re using may\nbe stale.  We historically consciously avoided using it after the merge\noperation, but that got overlooked when redoing the locked page\nhandling.\n\nThis commit simplifies mmap_region() by doing any vma merges early,\navoiding the issue entirely, and \u0027vma\u0027 will always be valid.  As pointed\nout by Hugh Dickins, this depends on any drivers that change the page\noffset of flags to have set one of the VM_SPECIAL bits (so that they\ncannot trigger the early merge logic), but that\u0027s true in general.\n\nReported-and-tested-by: Maksim Yevmenkin \u003cmaksim.yevmenkin@gmail.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a6160a7b5c27b3c38651baef92a14fa7072b3c1",
      "tree": "a4a7640bd12611c445dfc013f69ce307674d1b13",
      "parents": [
        "64fd1de3d821659ac0a3004fd5ee1de59e64af30"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:14:15 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:23 2009 +0100"
      },
      "message": "[CVE-2009-0029] System call wrappers part 13\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "2ed7c03ec17779afb4fcfa3b8c61df61bd4879ba",
      "tree": "4e0fefd574bab5470a02edf439727f472a9663c6",
      "parents": [
        "4c696ba7982501d43dea11dbbaabd2aa8a19cc42"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:13:54 2009 +0100"
      },
      "committer": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed Jan 14 14:15:14 2009 +0100"
      },
      "message": "[CVE-2009-0029] Convert all system calls to return a long\n\nConvert all system calls to return a long. This should be a NOP since all\nconverted types should have the same size anyway.\nWith the exception of sys_exit_group which returned void. But that doesn\u0027t\nmatter since the system call doesn\u0027t return.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\n"
    },
    {
      "commit": "8feae13110d60cc6287afabc2887366b0eb226c2",
      "tree": "b3188986faab70e753e00ea8670a11ba8ec844c0",
      "parents": [
        "41836382ebb415d68d3ebc4525e78e871fe58baf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Make VMAs per MM as for MMU-mode linux\n\nMake VMAs per mm_struct as for MMU-mode linux.  This solves two problems:\n\n (1) In SYSV SHM where nattch for a segment does not reflect the number of\n     shmat\u0027s (and forks) done.\n\n (2) In mmap() where the VMA\u0027s vm_mm is set to point to the parent mm by an\n     exec\u0027ing process when VM_EXECUTABLE is specified, regardless of the fact\n     that a VMA might be shared and already have its vm_mm assigned to another\n     process or a dead process.\n\nA new struct (vm_region) is introduced to track a mapped region and to remember\nthe circumstances under which it may be shared and the vm_list_struct structure\nis discarded as it\u0027s no longer required.\n\nThis patch makes the following additional changes:\n\n (1) Regions are now allocated with alloc_pages() rather than kmalloc() and\n     with no recourse to __GFP_COMP, so the pages are not composite.  Instead,\n     each page has a reference on it held by the region.  Anything else that is\n     interested in such a page will have to get a reference on it to retain it.\n     When the pages are released due to unmapping, each page is passed to\n     put_page() and will be freed when the page usage count reaches zero.\n\n (2) Excess pages are trimmed after an allocation as the allocation must be\n     made as a power-of-2 quantity of pages.\n\n (3) VMAs are added to the parent MM\u0027s R/B tree and mmap lists.  As an MM may\n     end up with overlapping VMAs within the tree, the VMA struct address is\n     appended to the sort key.\n\n (4) Non-anonymous VMAs are now added to the backing inode\u0027s prio list.\n\n (5) Holes may be punched in anonymous VMAs with munmap(), releasing parts of\n     the backing region.  The VMA and region structs will be split if\n     necessary.\n\n (6) sys_shmdt() only releases one attachment to a SYSV IPC shared memory\n     segment instead of all the attachments at that addresss.  Multiple\n     shmat()\u0027s return the same address under NOMMU-mode instead of different\n     virtual addresses as under MMU-mode.\n\n (7) Core dumping for ELF-FDPIC requires fewer exceptions for NOMMU-mode.\n\n (8) /proc/maps is now the global list of mapped regions, and may list bits\n     that aren\u0027t actually mapped anywhere.\n\n (9) /proc/meminfo gains a line (tagged \"MmapCopy\") that indicates the amount\n     of RAM currently allocated by mmap to hold mappable regions that can\u0027t be\n     mapped directly.  These are copies of the backing device or file if not\n     anonymous.\n\nThese changes make NOMMU mode more similar to MMU mode.  The downside is that\nNOMMU mode requires some extra memory to track things over NOMMU without this\npatch (VMAs are no longer shared, and there are now region structs).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "dcd4a049b9751828c516c59709f3fdf50436df85",
      "tree": "126fe11368da94f0c2e11ed586a870fa1b02f0a6",
      "parents": [
        "084f71ae5ceeb16734d8ac47559d3c718456a865"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jan 06 14:40:31 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:10 2009 -0800"
      },
      "message": "mm: check for no mmaps in exit_mmap()\n\nWhen dup_mmap() ooms we can end up with mm-\u003emmap \u003d\u003d NULL.  The error\npath does mmput() and unmap_vmas() gets a NULL vma which it\ndereferences.\n\nIn exit_mmap() there is nothing to do at all for this case, we can\ncancel the callpath right there.\n\n[akpm@linux-foundation.org: add sorely-needed comment]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\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": "901608d9045146aec6f14a7777ea4b1501c379f0",
      "tree": "0155189f48479b920855dedccba6829363376d4d",
      "parents": [
        "67d58ac47d25f7e2a105248a4aea6113131ab874"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 06 14:40:29 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:09 2009 -0800"
      },
      "message": "mm: introduce get_mm_hiwater_xxx(), fix taskstats-\u003ehiwater_xxx accounting\n\nxacct_add_tsk() relies on do_exit()-\u003eupdate_hiwater_xxx() and uses\nmm-\u003ehiwater_xxx directly, this leads to 2 problems:\n\n- taskstats_user_cmd() can call fill_pid()-\u003exacct_add_tsk() at any\n  moment before the task exits, so we should check the current values of\n  rss/vm anyway.\n\n- do_exit()-\u003eupdate_hiwater_xxx() calls are racy.  An exiting thread can\n  be preempted right before mm-\u003ehiwater_xxx \u003d new_val, and another thread\n  can use A_LOT of memory and exit in between.  When the first thread\n  resumes it can be the last thread in the thread group, in that case we\n  report the wrong hiwater_xxx values which do not take A_LOT into\n  account.\n\nIntroduce get_mm_hiwater_rss() and get_mm_hiwater_vm() helpers and change\nxacct_add_tsk() to use them.  The first helper will also be used by\nrusage-\u003eru_maxrss accounting.\n\nKill do_exit()-\u003eupdate_hiwater_xxx() calls.  Unless we are going to\ndecrease rss/vm there is no point to update mm-\u003ehiwater_xxx, and nobody\ncan look at this mm_struct when exit_mmap() actually unmaps the memory.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48aae42556e5ea1ba0d8ddab25352706577af2ed",
      "tree": "6a016f91627ce717f5f68f27f47a5771dc7058f8",
      "parents": [
        "853ac43ab194f5051b27a55060215d696dc9480d"
      ],
      "author": {
        "name": "ZhenwenXu",
        "email": "helight.xu@gmail.com",
        "time": "Tue Jan 06 14:40:21 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:08 2009 -0800"
      },
      "message": "mm/mmap.c: fix coding style\n\nFix a little of the coding style in mm/mmap.c\n\n[akpm@linux-foundation.org: cleanup]\nSigned-off-by: ZhenwenXu \u003chelight.xu@gmail.com\u003e\nSigned-off-by: 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": "046c68842bce6b77509cf56e94a561029124b0ce",
      "tree": "1a355899ba92ce4059027264cf759986234a930c",
      "parents": [
        "5641f1fde074651ce2488e93944cf05dedd9bf74"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Jan 05 14:06:29 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 17:44:42 2009 -0800"
      },
      "message": "mm: update my address\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "1c1271850494f06b63ae6b485e2e1b9c27ffb2d1"
}
