)]}'
{
  "log": [
    {
      "commit": "7f28570185f98bfa83f775756ced79e9f22b6d93",
      "tree": "d193adb5d9597ff002ab1aa3a4d966458098b44a",
      "parents": [
        "ef0eaa13362041f531f951b89362bfbc177e2bc0"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 01 10:22:55 2005 -0800"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 01 10:22:55 2005 -0800"
      },
      "message": "Export __pagevec_release and pagevec_lookup_tag\n\nThese are needed to implement cifs_writepages\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5d57bd39eb3dbf2866b5f5cee8fbd7a29b00c56f",
      "tree": "6fb9a7ff2f725625214d8624fda4ee42a44819a4",
      "parents": [
        "a3e713b5fdd0e54c2e3c8909ccde2a98839e3a52"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Oct 30 15:03:18 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:27 2005 -0800"
      },
      "message": "[PATCH] Error checks omitted in init_tmpfs() in mm/tiny-shmem.c\n\nFrom: Hareesh Nagarajan \u003chnagar2@gmail.com\u003e\n\nSigned-off-by: Hareesh Nagarajan \u003chnagar2@gmail.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a241ec65aeac3d69a08a7b153cccbdb7ea35063f",
      "tree": "e96585e8b1e699f31bad1fa61f34d2ec7c3a187c",
      "parents": [
        "b3099b48da23686d8378133b0264ee00385ee5fa"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Sun Oct 30 15:03:12 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:27 2005 -0800"
      },
      "message": "[PATCH] RCU torture-testing kernel module\n\nThis patch is a rewrite of the one submitted on October 1st, using modules\n(http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d112819093522998\u0026w\u003d2).\n\nThis rewrite adds a tristate CONFIG_RCU_TORTURE_TEST, which enables an\nintense torture test of the RCU infratructure.  This is needed due to the\ncontinued changes to the RCU infrastructure to accommodate dynamic ticks,\nCPU hotplug, realtime, and so on.  Most of the code is in a separate file\nthat is compiled only if the CONFIG variable is set.  Documentation on how\nto run the test and interpret the output is also included.\n\nThis code has been tested on i386 and ppc64, and an earlier version of the\ncode has received extensive testing on a number of architectures as part of\nthe PREEMPT_RT patchset.\n\nSigned-off-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c7e9dd4dd0b8dd75c410011b3c8f9980112fd0f8",
      "tree": "f044e989da0864fb614200f419f8185de5bd5560",
      "parents": [
        "39e88ca2c9d0f6d1e9f34ea2a6e86a652bb69a7a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Oct 30 15:02:40 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] vm: remove redundant assignment from __pagevec_release_nonlru()\n\nThis patch removes redundant assignment from __pagevec_release_nonlru().\npages_to_free.cold is set to pvec-\u003ecold by pagevec_init() call right above\nthe assignment.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39e88ca2c9d0f6d1e9f34ea2a6e86a652bb69a7a",
      "tree": "6ee9c7f3c26ac47bb45cc835e14dc9552ceed095",
      "parents": [
        "30e0fca6c1d7d26f3f2daa4dd2b12c51dadc778a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Oct 30 15:02:40 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] fs: error case fix in __generic_file_aio_read\n\nWhen __generic_file_aio_read() hits an error during reading, it reports the\nerror iff nothing has successfully been read yet.  This is condition - when\nan error occurs, if nothing has been read/written, report the error code;\notherwise, report the amount of bytes successfully transferred upto that\npoint.\n\nThis corner case can be exposed by performing readv(2) with the following\niov.\n\n iov[0] \u003d len0 @ ptr0\n iov[1] \u003d len1 @ NULL (or any other invalid pointer)\n iov[2] \u003d len2 @ ptr2\n\nWhen file size is enough, performing above readv(2) results in\n\n len0 bytes from file_pos @ ptr0\n len2 bytes from file_pos + len0 @ ptr2\n\nAnd the return value is len0 + len2.  Test program is attached to this\nmail.\n\nThis patch makes __generic_file_aio_read()\u0027s error handling identical to\nother functions.\n\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/uio.h\u003e\n#include \u003cerrno.h\u003e\n#include \u003cstring.h\u003e\n\nint main(int argc, char **argv)\n{\n\tconst char *path;\n\tstruct stat stbuf;\n\tsize_t len0, len1;\n\tvoid *buf0, *buf1;\n\tstruct iovec iov[3];\n\tint fd, i;\n\tssize_t ret;\n\n\tif (argc \u003c 2) {\n\t\tfprintf(stderr, \"Usage: testreadv path (better be a \"\n\t\t\t\"small text file)\\n\");\n\t\treturn 1;\n\t}\n\tpath \u003d argv[1];\n\n\tif (stat(path, \u0026stbuf) \u003c 0) {\n\t\tperror(\"stat\");\n\t\treturn 1;\n\t}\n\n\tlen0 \u003d stbuf.st_size / 2;\n\tlen1 \u003d stbuf.st_size - len0;\n\n\tif (!len0 || !len1) {\n\t\tfprintf(stderr, \"Dude, file is too small\\n\");\n\t\treturn 1;\n\t}\n\n\tif ((fd \u003d open(path, O_RDONLY)) \u003c 0) {\n\t\tperror(\"open\");\n\t\treturn 1;\n\t}\n\n\tif (!(buf0 \u003d malloc(len0)) || !(buf1 \u003d malloc(len1))) {\n\t\tperror(\"malloc\");\n\t\treturn 1;\n\t}\n\n\tmemset(buf0, 0, len0);\n\tmemset(buf1, 0, len1);\n\n\tiov[0].iov_base \u003d buf0;\n\tiov[0].iov_len \u003d len0;\n\tiov[1].iov_base \u003d NULL;\n\tiov[1].iov_len \u003d len1;\n\tiov[2].iov_base \u003d buf1;\n\tiov[2].iov_len \u003d len1;\n\n\tprintf(\"vector \");\n\tfor (i \u003d 0; i \u003c 3; i++)\n\t\tprintf(\"%p:%zu \", iov[i].iov_base, iov[i].iov_len);\n\tprintf(\"\\n\");\n\n\tret \u003d readv(fd, iov, 3);\n\tif (ret \u003c 0)\n\t\tperror(\"readv\");\n\n\tprintf(\"readv returned %zd\\nbuf0 \u003d [%s]\\nbuf1 \u003d [%s]\\n\",\n\t       ret, (char *)buf0, (char *)buf1);\n\n\treturn 0;\n}\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68860ec10bcc07ab4f89f9d940e3b77ae5ca13b3",
      "tree": "a411f9623a113d72f23da38cf2de51f66c177873",
      "parents": [
        "fb5eeeee44edb248b4837416966f19731f497f79"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:36 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] cpusets: automatic numa mempolicy rebinding\n\nThis patch automatically updates a tasks NUMA mempolicy when its cpuset\nmemory placement changes.  It does so within the context of the task,\nwithout any need to support low level external mempolicy manipulation.\n\nIf a system is not using cpusets, or if running on a system with just the\nroot (all-encompassing) cpuset, then this remap is a no-op.  Only when a\ntask is moved between cpusets, or a cpusets memory placement is changed\ndoes the following apply.  Otherwise, the main routine below,\nrebind_policy() is not even called.\n\nWhen mixing cpusets, scheduler affinity, and NUMA mempolicies, the\nessential role of cpusets is to place jobs (several related tasks) on a set\nof CPUs and Memory Nodes, the essential role of sched_setaffinity is to\nmanage a jobs processor placement within its allowed cpuset, and the\nessential role of NUMA mempolicy (mbind, set_mempolicy) is to manage a jobs\nmemory placement within its allowed cpuset.\n\nHowever, CPU affinity and NUMA memory placement are managed within the\nkernel using absolute system wide numbering, not cpuset relative numbering.\n\nThis is ok until a job is migrated to a different cpuset, or what\u0027s the\nsame, a jobs cpuset is moved to different CPUs and Memory Nodes.\n\nThen the CPU affinity and NUMA memory placement of the tasks in the job\nneed to be updated, to preserve their cpuset-relative position.  This can\nbe done for CPU affinity using sched_setaffinity() from user code, as one\ntask can modify anothers CPU affinity.  This cannot be done from an\nexternal task for NUMA memory placement, as that can only be modified in\nthe context of the task using it.\n\nHowever, it easy enough to remap a tasks NUMA mempolicy automatically when\na task is migrated, using the existing cpuset mechanism to trigger a\nrefresh of a tasks memory placement after its cpuset has changed.  All that\nis needed is the old and new nodemask, and notice to the task that it needs\nto rebind its mempolicy.  The tasks mems_allowed has the old mask, the\ntasks cpuset has the new mask, and the existing\ncpuset_update_current_mems_allowed() mechanism provides the notice.  The\nbitmap/cpumask/nodemask remap operators provide the cpuset relative\ncalculations.\n\nThis patch leaves open a couple of issues:\n\n 1) Updating vma and shmfs/tmpfs/hugetlbfs memory policies:\n\n    These mempolicies may reference nodes outside of those allowed to\n    the current task by its cpuset.  Tasks are migrated as part of jobs,\n    which reside on what might be several cpusets in a subtree.  When such\n    a job is migrated, all NUMA memory policy references to nodes within\n    that cpuset subtree should be translated, and references to any nodes\n    outside that subtree should be left untouched.  A future patch will\n    provide the cpuset mechanism needed to mark such subtrees.  With that\n    patch, we will be able to correctly migrate these other memory policies\n    across a job migration.\n\n 2) Updating cpuset, affinity and memory policies in user space:\n\n    This is harder.  Any placement state stored in user space using\n    system-wide numbering will be invalidated across a migration.  More\n    work will be required to provide user code with a migration-safe means\n    to manage its cpuset relative placement, while preserving the current\n    API\u0027s that pass system wide numbers, not cpuset relative numbers across\n    the kernel-user boundary.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28a42b9ea7e42e1efb02cc2dcacba0b6af234e1b",
      "tree": "1415acfeec32553888f870eb5c0debc370e1d3b7",
      "parents": [
        "18a19cb3047e454ee5ecbc35d7acf3f8e09e0466"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:32 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:21 2005 -0800"
      },
      "message": "[PATCH] cpusets: confine pdflush to its cpuset\n\nThis patch keeps pdflush daemons on the same cpuset as their parent, the\nkthread daemon.\n\nSome large NUMA configurations put as much as they can of kernel threads\nand other classic Unix load in what\u0027s called a bootcpuset, keeping the rest\nof the system free for dedicated jobs.\n\nThis effort is thwarted by pdflush, which dynamically destroys and\nrecreates pdflush daemons depending on load.\n\nIt\u0027s easy enough to force the originally created pdflush deamons into the\nbootcpuset, at system boottime.  But the pdflush threads created later were\nallowed to run freely across the system, due to the necessary line in their\nstartup kthread():\n\n        set_cpus_allowed(current, CPU_MASK_ALL);\n\nBy simply coding pdflush to start its threads with the cpus_allowed\nrestrictions of its cpuset (inherited from kthread, its parent) we can\nensure that dynamically created pdflush threads are also kept in the\nbootcpuset.\n\nOn systems w/o cpusets, or w/o a bootcpuset implementation, the following\nwill have no affect, leaving pdflush to run on any CPU, as before.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aaa4059bc2dca7fa816624a28db1958c3a22df9b",
      "tree": "8ae1d5458e2f68f96b033f10dae216847c32d4d2",
      "parents": [
        "e812cb5226af32aec91bcbaa8365bd7f921b6ebb"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun Oct 30 15:00:16 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] ext3: Fix unmapped buffers in transaction\u0027s lists\n\nFix the problem (BUG 4964) with unmapped buffers in transaction\u0027s\nt_sync_data list.  The problem is we need to call filesystem\u0027s own\ninvalidatepage() from block_write_full_page().\n\nblock_write_full_page() must call filesystem\u0027s invalidatepage().  Otherwise\nfollowing nasty race can happen:\n\n   proc 1                                        proc 2\n   ------                                        ------\n- write some new data to \u0027offset\u0027\n  \u003d\u003e bh gets to the transactions data list\n                                              - starts truncate\n                                                \u003d\u003e i_size set to new size\n- mpage_writepages()\n  - ext3_ordered_writepage() to \u0027offset\u0027\n    - block_write_full_page()\n      - page-\u003eindex \u003e end_index+1\n        - block_invalidatepage()\n          - discard_buffer()\n            - clear_buffer_mapped()\n\n- commit triggers and finds unmapped buffer - BOOM!\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b1459461f1e0abd5c28317d6bff6f2ca612a719d",
      "tree": "32ba1d395e8532d14749c2d95ff57fdba2aaddc2",
      "parents": [
        "2f96996de0eda378df2a5f857ee1ef615ae10a4f"
      ],
      "author": {
        "name": "Nikita Danilov",
        "email": "nikita@clusterfs.com",
        "time": "Sat Oct 29 18:17:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:45 2005 -0700"
      },
      "message": "[PATCH] mm/filemap.c:filemap_populate(): move export.\n\nmove EXPORT_SYMBOL(filemap_populate) to the proper place: just after\nfunction itself: it\u0027s easy to miss that function is exported otherwise.\n\nSigned-off-by: Nikita Danilov \u003cnikita@clusterfs.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2f96996de0eda378df2a5f857ee1ef615ae10a4f",
      "tree": "ee3075c48a99369c9748ee17d3bb8396e9f38372",
      "parents": [
        "5fcbb23050936d69de8087d4b311eaf55cb42740"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Sat Oct 29 18:17:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:45 2005 -0700"
      },
      "message": "[PATCH] mm: wider use of for_each_*cpu()\n\nIn \u0027mm\u0027 change the explicit use of a for-loop using NR_CPUS into the\ngeneral for_each_cpu() constructs.  This widens the scope of potential\nfuture optimizations of the general constructs, as well as takes advantage\nof the existing optimizations of first_cpu() and next_cpu(), which is\nadvantageous when the true CPU count is much smaller than NR_CPUS.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5fcbb23050936d69de8087d4b311eaf55cb42740",
      "tree": "10d14ca6927bc1bfa4bca4d206d2e1039f6cbf03",
      "parents": [
        "8bccd85ffbaf8ff1448d1235fa6594e207695531"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Oct 29 18:17:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:45 2005 -0700"
      },
      "message": "[PATCH] Remove policy contextualization from mbind\n\nPolicy contextualization is only useful for task based policies and not for\nvma based policies.  It may be useful to define allowed nodes that are not\naccessible from this thread because other threads may have access to these\nnodes.  Without this patch strange memory policy situations may cause an\napplication to fail with out of memory.\n\nExample:\n\nLet\u0027s say we have two threads A and B that share the same address space and\na huge array computational array X.\n\nThread A is restricted by its cpuset to nodes 0 and 1 and thread B is\nrestricted by its cpuset to nodes 2 and 3.\n\nThread A now wants to restrict allocations to the first node and thus\napplies a BIND policy on X to node 0 and 2.  The cpuset limits this to node\n0.  Thus pages for X must be allocated on node 0 now.\n\nThread B now touches a page that has never been used in X and faults in a\npage.  According to the BIND policy of the vma for X the page must be\nallocated on page 0.  However, the cpuset of B does not allow allocation on\n0 and 1.  Now the application fails in alloc_pages with out of memory.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8bccd85ffbaf8ff1448d1235fa6594e207695531",
      "tree": "d5ed1f3b2ba1d301c74cc0a62ed416e634c5bebb",
      "parents": [
        "bb7e7e032d2cb8e0e9a88a2be209de5e61033b39"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Oct 29 18:16:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:45 2005 -0700"
      },
      "message": "[PATCH] Implement sys_* do_* layering in the memory policy layer.\n\n- Do a separation between do_xxx and sys_xxx functions. sys_xxx functions\n  take variable sized bitmaps from user space as arguments. do_xxx functions\n  take fixed sized nodemask_t as arguments and may be used from inside the\n  kernel. Doing so simplifies the initialization code. There is no\n  fs \u003d kernel_ds assumption anymore.\n\n- Split up get_nodes into get_nodes (which gets the node list) and\n  contextualize_policy which restricts the nodes to those accessible\n  to the task and updates cpusets.\n\n- Add comments explaining limitations of bind policy\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "61b13993a81866fc1d4830dfab80530c9c061e37",
      "tree": "4d8f3acd428438b37e5b28246c666e0fdfba5335",
      "parents": [
        "0b0acbec1bed75ec1e1daa7f7006323a2a2b2844"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug: call setup_per_zone_pages_min after hotplug\n\nFrom: IWAMOTO Toshihiro \u003ciwamoto@valinux.co.jp\u003e\n\u003e I found the tests does not work well with Dave\u0027s patchset.\n\u003e I\u0027ve found the followings:\n\u003e\n\u003e \t- setup_per_zone_pages_min() calls should be added in\n\u003e \t   capture_page_range() and online_pages()\n\u003e \t- lru_add_drain() should be called before try_to_migrate_pages()\n\nThe following patch deals with the first item.\n\nSigned-off-by: IWAMOTO Toshihiro \u003ciwamoto@valinux.co.jp\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b0acbec1bed75ec1e1daa7f7006323a2a2b2844",
      "tree": "e0d54fbaa6b8b0955ed881af8956b4085039b2d1",
      "parents": [
        "3947be1969a9ce455ec30f60ef51efb10e4323d1"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug: move section_mem_map alloc to sparse.c\n\nThis basically keeps up from having to extern __kmalloc_section_memmap().\n\nThe vaddr_in_vmalloc_area() helper could go in a vmalloc header, but that\nheader gets hard to work with, because it needs some arch-specific macros.\nJust stick it in here for now, instead of creating another header.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Lion Vollnhals \u003cwebmaster@schiggl.de\u003e\nSigned-off-by: Jiri Slaby \u003cxslaby@fi.muni.cz\u003e\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3947be1969a9ce455ec30f60ef51efb10e4323d1",
      "tree": "0b4b3b4c268beb7aa88cb685cce48b6bb5053c47",
      "parents": [
        "bdc8cb984576ab5b550c8b24c6fa111a873503e3"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug: sysfs and add/remove functions\n\nThis adds generic memory add/remove and supporting functions for memory\nhotplug into a new file as well as a memory hotplug kernel config option.\n\nIndividual architecture patches will follow.\n\nFor now, disable memory hotplug when swsusp is enabled.  There\u0027s a lot of\nchurn there right now.  We\u0027ll fix it up properly once it calms down.\n\nSigned-off-by: Matt Tolentino \u003cmatthew.e.tolentino@intel.com\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bdc8cb984576ab5b550c8b24c6fa111a873503e3",
      "tree": "f94548988874caa10d770e6e65bc50c925abf825",
      "parents": [
        "208d54e5513c0c02d85af0990901354c74364d5c"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug locking: zone span seqlock\n\nSee the \"fixup bad_range()\" patch for more information, but this actually\ncreates a the lock to protect things making assumptions about a zone\u0027s size\nstaying constant at runtime.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "208d54e5513c0c02d85af0990901354c74364d5c",
      "tree": "83922f1d4a83f19bffcbff299044f421bd7e9c73",
      "parents": [
        "c6a57e19e464db118dc4ab9cfe9e9748c6d630a0"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug locking: node_size_lock\n\npgdat-\u003enode_size_lock is basically only neeeded in one place in the normal\ncode: show_mem(), which is the arch-specific sysrq-m printing function.\n\nStrictly speaking, the architectures not doing memory hotplug do no need this\nlocking in show_mem().  However, they are all included for completeness.  This\nshould also make any future consolidation of all of the implementations a\nlittle more straightforward.\n\nThis lock is also held in the sparsemem code during a memory removal, as\nsections are invalidated.  This is the place there pfn_valid() is made false\nfor a memory area that\u0027s being removed.  The lock is only required when doing\npfn_valid() operations on memory which the user does not already have a\nreference on the page, such as in show_mem().\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c6a57e19e464db118dc4ab9cfe9e9748c6d630a0",
      "tree": "1be192e4c0635c9aa49c8c76d1606e606ecdc9a0",
      "parents": [
        "4ca644d970bf2542623228a4624af356d20ca267"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug prep: fixup bad_range()\n\nWhen doing memory hotplug operations, the size of existing zones can obviously\nchange.  This means that zone-\u003ezone_{start_pfn,spanned_pages} can change.\n\nThere are currently no locks that protect these structure members.  However,\nthey are rarely accessed at runtime.  Outside of swsusp, the only place that I\ncan find is bad_range().\n\nSo, split bad_range() up into two pieces: one that needs to be locked and\nanther that doesn\u0027t.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ca644d970bf2542623228a4624af356d20ca267",
      "tree": "1040782e8799d5531a5ee1d5f1143e26e8781e9d",
      "parents": [
        "ed8ece2ec8d3c2031b1a1a0737568bb0d49454e0"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug prep: __section_nr helper\n\nA little helper that we use in the hotplug code.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ed8ece2ec8d3c2031b1a1a0737568bb0d49454e0",
      "tree": "5fb5b994ad3fcdc4ab2bb2c906d88c02a8395807",
      "parents": [
        "2774812f417db562f0d659d2c1b5755ba35d2770"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug prep: break out zone initialization\n\nIf a zone is empty at boot-time and then hot-added to later, it needs to run\nthe same init code that would have been run on it at boot.\n\nThis patch breaks out zone table and per-cpu-pages functions for use by the\nhotplug code.  You can almost see all of the free_area_init_core() function on\none page now.  :)\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a44e149084d772a1bcf4cdbdde8a013a8a1cfde",
      "tree": "b3f682ce8df89edb9740fdd5c178df5accc49736",
      "parents": [
        "2e9b367c2273ed21c9852a04d90944d472c4f3e6"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Sat Oct 29 18:16:48 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] .text page fault SMP scalability optimization\n\nWe had a problem on ppc64 where with more than 4 threads a large system\nwouldn\u0027t scale well while faulting in the .text (most of the time was spent\nin the kernel despite it was an userland compute intensive app).  The\nreason is the useless overwrite of the same pte from all cpu.\n\nI fixed it this way (verified on an older kernel but the forward port is\nalmost identical).  This will benefit all archs not just ppc64.\n\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c887265977213985091476be40ab11dfdcb4caf",
      "tree": "82ee135f8678094664d7311617287802d54d52cf",
      "parents": [
        "551110a94aa15890d1709b179c4be1e66ff6db53"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Sat Oct 29 18:16:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] hugetlb: demand fault handler\n\nBelow is a patch to implement demand faulting for huge pages.  The main\nmotivation for changing from prefaulting to demand faulting is so that huge\npage memory areas can be allocated according to NUMA policy.\n\nThanks to consolidated hugetlb code, switching the behavior requires changing\nonly one fault handler.  The bulk of the patch just moves the logic from\nhugelb_prefault() to hugetlb_pte_fault() and find_get_huge_page().\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b8072f099b7829a6ff3eba618e1d079a81f753f8",
      "tree": "80bf801b68ecf5f29a61f0f4fd5976b4daa91c6a",
      "parents": [
        "f412ac08c9861b4791af0145934c22f1458686da"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: update comments to pte lock\n\nUpdated several references to page_table_lock in common code comments.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f412ac08c9861b4791af0145934c22f1458686da",
      "tree": "5e515efa116f3968c2caa75bc691a197199313a8",
      "parents": [
        "4c21e2f2441dc5fbb957b030333f5a3f2d02dea7"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: fix rss and mmlist locking\n\nA couple of oddities were guarded by page_table_lock, no longer properly\nguarded when that is split.\n\nThe mm_counters of file_rss and anon_rss: make those an atomic_t, or an\natomic64_t if the architecture supports it, in such a case.  Definitions by\ncourtesy of Christoph Lameter: who spent considerable effort on more scalable\nways of counting, but found insufficient benefit in practice.\n\nAnd adding an mm with swap to the mmlist for swapoff: the list is well-\nguarded by its own lock, but the list_empty check now has to be repeated\ninside it.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c21e2f2441dc5fbb957b030333f5a3f2d02dea7",
      "tree": "1f76d33bb1d76221c6424bc5fed080a4f91349a6",
      "parents": [
        "b38c6845b695141259019e2b7c0fe6c32a6e720d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: split page table lock\n\nChristoph Lameter demonstrated very poor scalability on the SGI 512-way, with\na many-threaded application which concurrently initializes different parts of\na large anonymous area.\n\nThis patch corrects that, by using a separate spinlock per page table page, to\nguard the page table entries in that page, instead of using the mm\u0027s single\npage_table_lock.  (But even then, page_table_lock is still used to guard page\ntable allocation, and anon_vma allocation.)\n\nIn this implementation, the spinlock is tucked inside the struct page of the\npage table page: with a BUILD_BUG_ON in case it overflows - which it would in\nthe case of 32-bit PA-RISC with spinlock debugging enabled.\n\nSplitting the lock is not quite for free: another cacheline access.  Ideally,\nI suppose we would use split ptlock only for multi-threaded processes on\nmulti-cpu machines; but deciding that dynamically would have its own costs.\nSo for now enable it by config, at some number of cpus - since the Kconfig\nlanguage doesn\u0027t support inequalities, let preprocessor compare that with\nNR_CPUS.  But I don\u0027t think it\u0027s worth being user-configurable: for good\ntesting of both split and unsplit configs, split now at 4 cpus, and perhaps\nchange that to 8 later.\n\nThere is a benefit even for singly threaded processes: kswapd can be attacking\none part of the mm while another part is busy faulting.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "deceb6cd17e6dfafe4c4f81b1b4153bc41b2cb70",
      "tree": "2a722f50e8edef8609a49f65bfcb222e499c44cc",
      "parents": [
        "c34d1b4d165c67b966bca4aba026443d7ff161eb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: follow_page with inner ptlock\n\nFinal step in pushing down common core\u0027s page_table_lock.  follow_page no\nlonger wants caller to hold page_table_lock, uses pte_offset_map_lock itself;\nand so no page_table_lock is taken in get_user_pages itself.\n\nBut get_user_pages (and get_futex_key) do then need follow_page to pin the\npage for them: take Daniel\u0027s suggestion of bitflags to follow_page.\n\nNeed one for WRITE, another for TOUCH (it was the accessed flag before:\nvanished along with check_user_page_readable, but surely get_numa_maps is\nwrong to mark every page it finds as accessed), another for GET.\n\nAnd another, ANON to dispose of untouched_anonymous_page: it seems silly for\nthat to descend a second time, let follow_page observe if there was no page\ntable and return ZERO_PAGE if so.  Fix minor bug in that: check VM_LOCKED -\nmake_pages_present ought to make readonly anonymous present.\n\nGive get_numa_maps a cond_resched while we\u0027re there.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c34d1b4d165c67b966bca4aba026443d7ff161eb",
      "tree": "27ffca9daba2a6b16d29bd508faf3e68bda2aad1",
      "parents": [
        "c0718806cf955d5eb51ea77bffb5b21d9bba4972"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: kill check_user_page_readable\n\ncheck_user_page_readable is a problematic variant of follow_page.  It\u0027s used\nonly by oprofile\u0027s i386 and arm backtrace code, at interrupt time, to\nestablish whether a userspace stackframe is currently readable.\n\nThis is problematic, because we want to push the page_table_lock down inside\nfollow_page, and later split it; whereas oprofile is doing a spin_trylock on\nit (in the i386 case, forgotten in the arm case), and needs that to pin\nperhaps two pages spanned by the stackframe (which might be covered by\ndifferent locks when we split).\n\nI think oprofile is going about this in the wrong way: it doesn\u0027t need to know\nthe area is readable (neither i386 nor arm uses read protection of user\npages), it doesn\u0027t need to pin the memory, it should simply\n__copy_from_user_inatomic, and see if that succeeds or not.  Sorry, but I\u0027ve\nnot got around to devising the sparse __user annotations for this.\n\nThen we can eliminate check_user_page_readable, and return to a single\nfollow_page without the __follow_page variants.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c0718806cf955d5eb51ea77bffb5b21d9bba4972",
      "tree": "bd29659bbff68604127439ec8144230a40772621",
      "parents": [
        "67b02f119df50ffad5a4e9e53ea4c896535862cd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: rmap with inner ptlock\n\nrmap\u0027s page_check_address descend without page_table_lock.  First just\npte_offset_map in case there\u0027s no pte present worth locking for, then take\npage_table_lock for the full check, and pass ptl back to caller in the same\nstyle as pte_offset_map_lock.  __xip_unmap, page_referenced_one and\ntry_to_unmap_one use pte_unmap_unlock.  try_to_unmap_cluster also.\n\npage_check_address reformatted to avoid progressive indentation.  No use is\nmade of its one error code, return NULL when it fails.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67b02f119df50ffad5a4e9e53ea4c896535862cd",
      "tree": "9d651e9e62b6ead325fc6bd872f3a6232d85e8a3",
      "parents": [
        "508034a32b819a2d40aa7ac0dbc8cd2e044c2de6"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: xip_unmap ZERO_PAGE fix\n\nSmall fix to the PageReserved patch: the mips ZERO_PAGE(address) depends on\naddress, so __xip_unmap is wrong to initialize page with that before address\nis initialized; and in fact must re-evaluate it each iteration.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "508034a32b819a2d40aa7ac0dbc8cd2e044c2de6",
      "tree": "906a8f0095af24f403b30d649d3ec1ffb4ff2f50",
      "parents": [
        "8f4f8c164cb4af1432cc25eda82928ea4519ba72"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: unmap_vmas with inner ptlock\n\nRemove the page_table_lock from around the calls to unmap_vmas, and replace\nthe pte_offset_map in zap_pte_range by pte_offset_map_lock: all callers are\nnow safe to descend without page_table_lock.\n\nDon\u0027t attempt fancy locking for hugepages, just take page_table_lock in\nunmap_hugepage_range.  Which makes zap_hugepage_range, and the hugetlb test in\nzap_page_range, redundant: unmap_vmas calls unmap_hugepage_range anyway.  Nor\ndoes unmap_vmas have much use for its mm arg now.\n\nThe tlb_start_vma and tlb_end_vma in unmap_page_range are now called without\npage_table_lock: if they\u0027re implemented at all, they typically come down to\nflush_cache_range (usually done outside page_table_lock) and flush_tlb_range\n(which we already audited for the mprotect case).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f4f8c164cb4af1432cc25eda82928ea4519ba72",
      "tree": "49cd3c62069df1f8d6c863b9806923de16c10e8b",
      "parents": [
        "663b97f7efd001b0c56bd5fce059c5272725b86f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: unlink vma before pagetables\n\nIn most places the descent from pgd to pud to pmd to pte holds mmap_sem\n(exclusively or not), which ensures that free_pgtables cannot be freeing page\ntables from any level at the same time.  But truncation and reverse mapping\ndescend without mmap_sem.\n\nNo problem: just make sure that a vma is unlinked from its prio_tree (or\nnonlinear list) and from its anon_vma list, after zapping the vma, but before\nfreeing its page tables.  Then neither vmtruncate nor rmap can reach that vma\nwhose page tables are now volatile (nor do they need to reach it, since all\nits page entries have been zapped by this stage).\n\nThe i_mmap_lock and anon_vma-\u003elock already serialize this correctly; but the\nlocking hierarchy is such that we cannot take them while holding\npage_table_lock.  Well, we\u0027re trying to push that down anyway.  So in this\npatch, move anon_vma_unlink and unlink_file_vma into free_pgtables, at the\nsame time as moving page_table_lock around calls to unmap_vmas.\n\ntlb_gather_mmu and tlb_finish_mmu then fall outside the page_table_lock, but\nwe made them preempt_disable and preempt_enable earlier; and a long source\naudit of all the architectures has shown no problem with removing\npage_table_lock from them.  free_pgtables doesn\u0027t need page_table_lock for\nitself, nor for what it calls; tlb-\u003emm-\u003enr_ptes is usually protected by\npage_table_lock, but partly by non-exclusive mmap_sem - here it\u0027s decremented\nwith exclusive mmap_sem, or mm_users 0.  update_hiwater_rss and\nvm_unacct_memory don\u0027t need page_table_lock either.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "705e87c0c3c38424f7f30556c85bc20e808d2f59",
      "tree": "7a237e6266f4801385e1226cc497b47e3a2458bd",
      "parents": [
        "8f4e2101fd7df9031a754eedb82e2060b51f8c45"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: pte_offset_map_lock loops\n\nConvert those common loops using page_table_lock on the outside and\npte_offset_map within to use just pte_offset_map_lock within instead.\n\nThese all hold mmap_sem (some exclusively, some not), so at no level can a\npage table be whipped away from beneath them.  But whereas pte_alloc loops\ntested with the \"atomic\" pmd_present, these loops are testing with pmd_none,\nwhich on i386 PAE tests both lower and upper halves.\n\nThat\u0027s now unsafe, so add a cast into pmd_none to test only the vital lower\nhalf: we lose a little sensitivity to a corrupt middle directory, but not\nenough to worry about.  It appears that i386 and UML were the only\narchitectures vulnerable in this way, and pgd and pud no problem.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f4e2101fd7df9031a754eedb82e2060b51f8c45",
      "tree": "624db00c6160d70376a57447b45b935b293e396b",
      "parents": [
        "b462705ac679f6195d1b23a752cda592d9107495"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:26 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: page fault handler locking\n\nOn the page fault path, the patch before last pushed acquiring the\npage_table_lock down to the head of handle_pte_fault (though it\u0027s also taken\nand dropped earlier when a new page table has to be allocated).\n\nNow delete that line, read \"entry \u003d *pte\" without it, and go off to this or\nthat page fault handler on the basis of this unlocked peek.  Usually the\nhandler can proceed without the lock, relying on the subsequent locked\npte_same or pte_none test to back out when necessary; though do_wp_page needs\nthe lock immediately, and do_file_page doesn\u0027t check (if there\u0027s a race,\ninstall_page just zaps the entry and reinstalls it).\n\nBut on those architectures (notably i386 with PAE) whose pte is too big to be\nread atomically, if SMP or preemption is enabled, do_swap_page and\ndo_file_page might cause irretrievable damage if passed a Frankenstein entry\nstitched together from unrelated parts.  In those configs, \"pte_unmap_same\"\nhas to take page_table_lock, validate orig_pte still the same, and drop\npage_table_lock before unmapping, before proceeding.\n\nUse pte_offset_map_lock and pte_unmap_unlock throughout the handlers; but lock\navoidance leaves more lone maps and unmaps than elsewhere.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c74df32c724a1652ad8399b4891bb02c9d43743a",
      "tree": "5a79d56fdcf7dc2053a277dbf6db7c3b339e9659",
      "parents": [
        "1bb3630e89cb8a7b3d3807629c20c5bad88290ff"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: ptd_alloc take ptlock\n\nSecond step in pushing down the page_table_lock.  Remove the temporary\nbridging hack from __pud_alloc, __pmd_alloc, __pte_alloc: expect callers not\nto hold page_table_lock, whether it\u0027s on init_mm or a user mm; take\npage_table_lock internally to check if a racing task already allocated.\n\nConvert their callers from common code.  But avoid coming back to change them\nagain later: instead of moving the spin_lock(\u0026mm-\u003epage_table_lock) down,\nswitch over to new macros pte_alloc_map_lock and pte_unmap_unlock, which\nencapsulate the mapping+locking and unlocking+unmapping together, and in the\nend may use alternatives to the mm page_table_lock itself.\n\nThese callers all hold mmap_sem (some exclusively, some not), so at no level\ncan a page table be whipped away from beneath them; and pte_alloc uses the\n\"atomic\" pmd_present to test whether it needs to allocate.  It appears that on\nall arches we can safely descend without page_table_lock.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1bb3630e89cb8a7b3d3807629c20c5bad88290ff",
      "tree": "3d1fd73487ca66f227701b9530f2c76fcc6f9da4",
      "parents": [
        "872fec16d9a0ed3b75b8893aa217e49cca575ee5"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:22 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: ptd_alloc inline and out\n\nIt seems odd to me that, whereas pud_alloc and pmd_alloc test inline, only\ncalling out-of-line __pud_alloc __pmd_alloc if allocation needed,\npte_alloc_map and pte_alloc_kernel are entirely out-of-line.  Though it does\nadd a little to kernel size, change them to macros testing inline, calling\n__pte_alloc or __pte_alloc_kernel to allocate out-of-line.  Mark none of them\nas fastcalls, leave that to CONFIG_REGPARM or not.\n\nIt also seems more natural for the out-of-line functions to leave the offset\ncalculation and map to the inline, which has to do it anyway for the common\ncase.  At least mremap move wants __pte_alloc without _map.\n\nMacros rather than inline functions, certainly to avoid the header file issues\nwhich arise from CONFIG_HIGHPTE needing kmap_types.h, but also in case any\narchitectures I haven\u0027t built would have other such problems.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "872fec16d9a0ed3b75b8893aa217e49cca575ee5",
      "tree": "1dfc8b9f2754bdfff645188e497865c00201d535",
      "parents": [
        "46dea3d092d23a58b42499cc8a21de0fad079f4a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: init_mm without ptlock\n\nFirst step in pushing down the page_table_lock.  init_mm.page_table_lock has\nbeen used throughout the architectures (usually for ioremap): not to serialize\nkernel address space allocation (that\u0027s usually vmlist_lock), but because\npud_alloc,pmd_alloc,pte_alloc_kernel expect caller holds it.\n\nReverse that: don\u0027t lock or unlock init_mm.page_table_lock in any of the\narchitectures; instead rely on pud_alloc,pmd_alloc,pte_alloc_kernel to take\nand drop it when allocating a new one, to check lest a racing task already\ndid.  Similarly no page_table_lock in vmalloc\u0027s map_vm_area.\n\nSome temporary ugliness in __pud_alloc and __pmd_alloc: since they also handle\nuser mms, which are converted only by a later patch, for now they have to lock\ndifferently according to whether or not it\u0027s init_mm.\n\nIf sources get muddled, there\u0027s a danger that an arch source taking\ninit_mm.page_table_lock will be mixed with common source also taking it (or\nneither take it).  So break the rules and make another change, which should\nbreak the build for such a mismatch: remove the redundant mm arg from\npte_alloc_kernel (ppc64 scrapped its distinct ioremap_mm in 2.6.13).\n\nExceptions: arm26 used pte_alloc_kernel on user mm, now pte_alloc_map; ia64\nused pte_alloc_map on init_mm, now pte_alloc_kernel; parisc had bad args to\npmd_alloc and pte_alloc_kernel in unused USE_HPPA_IOREMAP code; ppc64\nmap_io_page forgot to unlock on failure; ppc mmu_mapin_ram and ppc64 im_free\ntook page_table_lock for no good reason.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "46dea3d092d23a58b42499cc8a21de0fad079f4a",
      "tree": "6ca46fb09d18e8ea51a354a1494cc742fcf2f2e7",
      "parents": [
        "f449952bc8bde7fbc73c6d20dff92b627a21f8b9"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:20 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: ia64 use expand_upwards\n\nia64 has expand_backing_store function for growing its Register Backing Store\nvma upwards.  But more complete code for this purpose is found in the\nCONFIG_STACK_GROWSUP part of mm/mmap.c.  Uglify its #ifdefs further to provide\nexpand_upwards for ia64 as well as expand_stack for parisc.\n\nThe Register Backing Store vma should be marked VM_ACCOUNT.  Implement the\nintention of growing it only a page at a time, instead of passing an address\noutside of the vma to handle_mm_fault, with unknown consequences.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "365e9c87a982c03d0af3886e29d877f581b59611",
      "tree": "d06c1918ca9fe6677d7e4e869555e095004274f7",
      "parents": [
        "861f2fb8e796022b4928cab9c74fca6681a1c557"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: update_hiwaters just in time\n\nupdate_mem_hiwater has attracted various criticisms, in particular from those\nconcerned with mm scalability.  Originally it was called whenever rss or\ntotal_vm got raised.  Then many of those callsites were replaced by a timer\ntick call from account_system_time.  Now Frank van Maarseveen reports that to\nbe found inadequate.  How about this?  Works for Frank.\n\nReplace update_mem_hiwater, a poor combination of two unrelated ops, by macros\nupdate_hiwater_rss and update_hiwater_vm.  Don\u0027t attempt to keep\nmm-\u003ehiwater_rss up to date at timer tick, nor every time we raise rss (usually\nby 1): those are hot paths.  Do the opposite, update only when about to lower\nrss (usually by many), or just before final accounting in do_exit.  Handle\nmm-\u003ehiwater_vm in the same way, though it\u0027s much less of an issue.  Demand\nthat whoever collects these hiwater statistics do the work of taking the\nmaximum with rss or total_vm.\n\nAnd there has been no collector of these hiwater statistics in the tree.  The\nnew convention needs an example, so match Frank\u0027s usage by adding a VmPeak\nline above VmSize to /proc/\u003cpid\u003e/status, and also a VmHWM line above VmRSS\n(High-Water-Mark or High-Water-Memory).\n\nThere was a particular anomaly during mremap move, that hiwater_vm might be\ncaptured too high.  A fleeting such anomaly remains, but it\u0027s quickly\ncorrected now, whereas before it would stick.\n\nWhat locking?  None: if the app is racy then these statistics will be racy,\nit\u0027s not worth any overhead to make them exact.  But whenever it suits,\nhiwater_vm is updated under exclusive mmap_sem, and hiwater_rss under\npage_table_lock (for now) or with preemption disabled (later on): without\ngoing to any trouble, minimize the time between reading current values and\nupdating, to minimize those occasions when a racing thread bumps a count up\nand back down in between.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "861f2fb8e796022b4928cab9c74fca6681a1c557",
      "tree": "d1aa85aad27aab71fd045237cd5e61c3778ff605",
      "parents": [
        "d0de32d9b71e11cc51618c2045086e9694093d01"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:17 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: zap_pte out of line\n\nThere used to be just one call to zap_pte, but it shouldn\u0027t be inline now\nthere are two.  Check for the common case pte_none before calling, and move\nits rss accounting up into install_page or install_file_pte - which helps the\nnext patch.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d0de32d9b71e11cc51618c2045086e9694093d01",
      "tree": "38b9d22e52f1c2e9d378e5c2cdd92904173134fd",
      "parents": [
        "9e9bef07ce5a342aa6246ebc5c20829d0d5d63d0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: do_mremap current mm\n\nCleanup: relieve do_mremap from its surfeit of current-\u003emms.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9e9bef07ce5a342aa6246ebc5c20829d0d5d63d0",
      "tree": "6f7286ebbb2c4b8af7bb04897a64b054c67faa4a",
      "parents": [
        "86d912f41dca32eca8827f2f878139735e69dc28"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: do_swap_page race major\n\nSmall adjustment: do_swap_page should report its !pte_same race as a major\nfault if it had to read into swap cache, because whatever raced with it will\nhave found page already in cache and reported minor fault.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "86d912f41dca32eca8827f2f878139735e69dc28",
      "tree": "9f29b853e7690f0fa10c4257a2b8649673908e2d",
      "parents": [
        "8c10376271e097fa13cda956e1b2f3cb7e4d4dd9"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:14 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: zap_pte_range dec rss\n\nSmall adjustment: zap_pte_range decrement its rss counts from 0 then finally\nadd, avoiding negations - we don\u0027t have or need a sub_mm_rss.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c10376271e097fa13cda956e1b2f3cb7e4d4dd9",
      "tree": "0bb1c428bfddce70eb1195c625add027899416e0",
      "parents": [
        "b5810039a54e5babf428e9a1e89fc1940fabff11"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:13 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: copy_one_pte inc rss\n\nSmall adjustment, following Nick\u0027s suggestion: it\u0027s more straightforward for\ncopy_pte_range to let copy_one_pte do the rss incrementation, than use an\nindex it passed back.  Saves a #define, and 16 bytes of .text.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b5810039a54e5babf428e9a1e89fc1940fabff11",
      "tree": "835836cb527ec9bd525f93eb7e016f3dfb8c8ae2",
      "parents": [
        "f9c98d0287de42221c624482fd4f8d485c98ab22"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Oct 29 18:16:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] core remove PageReserved\n\nRemove PageReserved() calls from core code by tightening VM_RESERVED\nhandling in mm/ to cover PageReserved functionality.\n\nPageReserved special casing is removed from get_page and put_page.\n\nAll setting and clearing of PageReserved is retained, and it is now flagged\nin the page_alloc checks to help ensure we don\u0027t introduce any refcount\nbased freeing of Reserved pages.\n\nMAP_PRIVATE, PROT_WRITE of VM_RESERVED regions is tentatively being\ndeprecated.  We never completely handled it correctly anyway, and is be\nreintroduced in future if required (Hugh has a proof of concept).\n\nOnce PageReserved() calls are removed from kernel/power/swsusp.c, and all\narch/ and driver code, the Set and Clear calls, and the PG_reserved bit can\nbe trivially removed.\n\nLast real user of PageReserved is swsusp, which uses PageReserved to\ndetermine whether a struct page points to valid memory or not.  This still\nneeds to be addressed (a generic page_is_ram() should work).\n\nA last caveat: the ZERO_PAGE is now refcounted and managed with rmap (and\nthus mapcounted and count towards shared rss).  These writes to the struct\npage could cause excessive cacheline bouncing on big systems.  There are a\nnumber of ways this could be addressed if it is an issue.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n\nRefcount bug fix for filemap_xip.c\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ae859762332f19bfc06f4c4a1b1fefb41e9e1084",
      "tree": "4f21583bb1441e5555ed199a40d5f679bb4506e9",
      "parents": [
        "4294621f41a85497019fae64341aa5351a1921b7"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: batch updating mm_counters\n\ntlb_finish_mmu used to batch zap_pte_range\u0027s update of mm rss, which may be\nworthwhile if the mm is contended, and would reduce atomic operations if the\ncounts were atomic.  Let zap_pte_range now batch its updates to file_rss and\nanon_rss, per page-table in case we drop the lock outside; and copy_pte_range\nbatch them too.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4294621f41a85497019fae64341aa5351a1921b7",
      "tree": "fdeb7eb44384a99d0679ffa6de5019bab0ea2166",
      "parents": [
        "404351e67a9facb475abf1492245374a28d13e90"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: rss \u003d file_rss + anon_rss\n\nI was lazy when we added anon_rss, and chose to change as few places as\npossible.  So currently each anonymous page has to be counted twice, in rss\nand in anon_rss.  Which won\u0027t be so good if those are atomic counts in some\nconfigurations.\n\nChange that around: keep file_rss and anon_rss separately, and add them\ntogether (with get_mm_rss macro) when the total is needed - reading two\natomics is much cheaper than updating two atomics.  And update anon_rss\nupfront, typically in memory.c, not tucked away in page_add_anon_rmap.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fc2acab31be8e869b2d5f6de12f557f6f054f19c",
      "tree": "60cf419f5e88c3c46d39675a14649ea1e5849f03",
      "parents": [
        "4d6ddfa9242bc3d27fb0f7248f6fdee0299c731f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: tlb_finish_mmu forget rss\n\nzap_pte_range has been counting the pages it frees in tlb-\u003efreed, then\ntlb_finish_mmu has used that to update the mm\u0027s rss.  That got stranger when I\nadded anon_rss, yet updated it by a different route; and stranger when rss and\nanon_rss became mm_counters with special access macros.  And it would no\nlonger be viable if we\u0027re relying on page_table_lock to stabilize the\nmm_counter, but calling tlb_finish_mmu outside that lock.\n\nRemove the mmu_gather\u0027s freed field, let tlb_finish_mmu stick to its own\nbusiness, just decrement the rss mm_counter in zap_pte_range (yes, there was\nsome point to batching the update, and a subsequent patch restores that).  And\nforget the anal paranoia of first reading the counter to avoid going negative\n- if rss does go negative, just fix that bug.\n\nRemove the mmu_gather\u0027s flushes and avoided_flushes from arm and arm26: no use\nwas being made of them.  But arm26 alone was actually using the freed, in the\nway some others use need_flush: give it a need_flush.  arm26 seems to prefer\nspaces to tabs here: respect that.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4d6ddfa9242bc3d27fb0f7248f6fdee0299c731f",
      "tree": "da5b753df64e7163a35487005e50a3b90b0b0b9b",
      "parents": [
        "15a23ffa2fc91cebdac44d4aee994f59d5c28dc0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: tlb_is_full_mm was obscure\n\ntlb_is_full_mm?  What does that mean?  The TLB is full?  No, it means that the\nmm\u0027s last user has gone and the whole mm is being torn down.  And it\u0027s an\ninline function because sparc64 uses a different (slightly better)\n\"tlb_frozen\" name for the flag others call \"fullmm\".\n\nAnd now the ptep_get_and_clear_full macro used in zap_pte_range refers\ndirectly to tlb-\u003efullmm, which would be wrong for sparc64.  Rather than\ncorrect that, I\u0027d prefer to scrap tlb_is_full_mm altogether, and change\nsparc64 to just use the same poor name as everyone else - is that okay?\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7be7a546994f1222b2312fd348da14e16b6b7b42",
      "tree": "e1f8dae8783274372a0f136be6eb64102877e9f6",
      "parents": [
        "65500d234e74fc4e8f18e1a429bc24e51e75de4a"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: move_page_tables by extents\n\nSpeeding up mremap\u0027s moving of ptes has never been a priority, but the locking\nwill get more complicated shortly, and is already too baroque.\n\nScrap the current one-by-one moving, do an extent at a time: curtailed by end\nof src and dst pmds (have to use PMD_SIZE: the way pmd_addr_end gets elided\ndoesn\u0027t match this usage), and by latency considerations.\n\nOne nice property of the old method is lost: it never allocated a page table\nunless absolutely necessary, so you could free empty page tables by mremapping\nto and fro.  Whereas this way, it allocates a dst table wherever there was a\nsrc table.  I keep diving in to reinstate the old behaviour, then come out\npreferring not to clutter how it now is.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65500d234e74fc4e8f18e1a429bc24e51e75de4a",
      "tree": "2bae8c3622b6537dbd142ba2744c7cc9430d3b69",
      "parents": [
        "7c1fd6b964860cdcf44b6b98d7dcd8cc16a0a26d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: page fault handlers tidyup\n\nImpose a little more consistency on the page fault handlers do_wp_page,\ndo_swap_page, do_anonymous_page, do_no_page, do_file_page: why not pass their\narguments in the same order, called the same names?\n\nbreak_cow is all very well, but what it did was inlined elsewhere: easier to\ncompare if it\u0027s brought back into do_wp_page.\n\ndo_file_page\u0027s fallback to do_no_page dates from a time when we were testing\npte_file by using it wherever possible: currently it\u0027s peculiar to nonlinear\nvmas, so just check that.  BUG_ON if not?  Better not, it\u0027s probably page\ntable corruption, so just show the pte: hmm, there\u0027s a pte_ERROR macro, let\u0027s\nuse that for do_wp_page\u0027s invalid pfn too.\n\nHah!  Someone in the ppc64 world noticed pte_ERROR was unused so removed it:\nrestored (and say \"pud\" not \"pmd\" in its pud_ERROR).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7c1fd6b964860cdcf44b6b98d7dcd8cc16a0a26d",
      "tree": "0193feec4e7a43ce2f15f659cd5c56776da60ce5",
      "parents": [
        "a8fb5618dab7e45c8990f3155628d772a9ed45f9"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:58 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: exit_mmap need not reset\n\nexit_mmap resets various mm_struct fields, but the mm is well on its way out,\nand none of those fields matter by this point.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a8fb5618dab7e45c8990f3155628d772a9ed45f9",
      "tree": "77977b8fb2f57c855da9e3168977521e8393776a",
      "parents": [
        "2c0b381467bc2997be9d741a152f3fc75785eedc"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:57 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: unlink_file_vma, remove_vma\n\nDivide remove_vm_struct into two parts: first anon_vma_unlink plus\nunlink_file_vma, to unlink the vma from the list and tree by which rmap or\nvmtruncate might find it; then remove_vma to close, fput and free.\n\nThe intention here is to do the anon_vma_unlink and unlink_file_vma earlier,\nin free_pgtables before freeing any page tables: so we can be sure that any\npage tables traversed by rmap and vmtruncate are stable (and other, ordinary\ncases are stabilized by holding mmap_sem).\n\nThis will be crucial to traversing pgd,pud,pmd without page_table_lock.  But\ntesting the split-out patch showed that lifting the page_table_lock is\nsymbiotically necessary to make this change - the lock ordering is wrong to\nmove those unlinks into free_pgtables while it\u0027s under ptlock.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2c0b381467bc2997be9d741a152f3fc75785eedc",
      "tree": "f87fffd93dc3f4b5ce9eba5e02fa4ffeb237924e",
      "parents": [
        "ab50b8ed818016cfecd747d6d4bb9139986bc029"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: remove_vma_list consolidation\n\nunmap_vma doesn\u0027t amount to much, let\u0027s put it inside unmap_vma_list.  Except\nit doesn\u0027t unmap anything, unmap_region just did the unmapping: rename it to\nremove_vma_list.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab50b8ed818016cfecd747d6d4bb9139986bc029",
      "tree": "33c666578c14dccce05b3f7a5538405098eebcc4",
      "parents": [
        "72866f6f277ec0ddd6df7a3b6ecdcf59a28de115"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: vm_stat_account unshackled\n\nThe original vm_stat_account has fallen into disuse, with only one user, and\nonly one user of vm_stat_unaccount.  It\u0027s easier to keep track if we convert\nthem all to __vm_stat_account, then free it from its __shackles.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72866f6f277ec0ddd6df7a3b6ecdcf59a28de115",
      "tree": "a76bb7fb8e092250c4399c20f0c7c973b77cb0bb",
      "parents": [
        "6237bcd94851e9cf0ecd2520d744779df0f5a9a6"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] mm: anon is already wrprotected\n\ndo_anonymous_page\u0027s pte_wrprotect causes some confusion: in such a case,\nvm_page_prot must already be forcing COW, so must omit write permission, and\nso the pte_wrprotect is redundant.  Replace it by a comment to that effect,\nand reword the comment on unuse_pte which also caused confusion.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6237bcd94851e9cf0ecd2520d744779df0f5a9a6",
      "tree": "5f34366cd527382489bd0bebbac8d39d59f1d5db",
      "parents": [
        "0c942a4539c09adf09097315cc174aefd0eeedf7"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] mm: zap_pte_range dont dirty anon\n\nzap_pte_range already avoids wasting time to mark_page_accessed on anon pages:\nit can also skip anon set_page_dirty - the page only needs to be marked dirty\nif shared with another mm, but that will say pte_dirty too.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0c942a4539c09adf09097315cc174aefd0eeedf7",
      "tree": "b9b7d5093ca0a130ef2221f8932fabcf4291f6a6",
      "parents": [
        "e040f218bb49a6965a5b77edce05fe47a62dda39"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] mm: msync_pte_range progress\n\nUse latency breaking in msync_pte_range like that in copy_pte_range, instead\nof the ugly CONFIG_PREEMPT filemap_msync alternatives.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e040f218bb49a6965a5b77edce05fe47a62dda39",
      "tree": "e5547e04fa312f1b87db66e4ac2b6eed885ca276",
      "parents": [
        "09ad4bbc3a5c93316d7f4ffc0c310d9cbb28c2f0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] mm: copy_pte_range progress fix\n\nMy latency breaking in copy_pte_range didn\u0027t work as intended: instead of\nchecking at regularish intervals, after the first interval it checked every\ntime around the loop, too impatient to be preempted.  Fix that.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "09ad4bbc3a5c93316d7f4ffc0c310d9cbb28c2f0",
      "tree": "b98d5390ceef3dcb8d1fe83b1ef7ffe0106d4c94",
      "parents": [
        "c340010e4bf824d969a89fa192ecc7a526c0cd24"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Oct 29 18:15:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] slab: add additional debugging to detect slabs from the wrong node\n\nThis patch adds some stack dumps if the slab logic is processing slab\nblocks from the wrong node.  This is necessary in order to detect\nsituations as encountered by Petr.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c340010e4bf824d969a89fa192ecc7a526c0cd24",
      "tree": "a459fba71b05b3b14dc1e32739cc2520dd0e57be",
      "parents": [
        "b57b98d147ef98758886a39efb94f3254542c39b"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Sat Oct 29 18:15:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] shrink_list(): skip anon pages if not may_swap\n\nMartin Hicks\u0027 page cache reclaim patch added the \u0027may_swap\u0027 flag to the\nscan_control struct; and modified shrink_list() not to add anon pages to\nthe swap cache if may_swap is not asserted.\n\nRef:  http://marc.theaimsgroup.com/?l\u003dlinux-mm\u0026m\u003d111461480725322\u0026w\u003d4\n\nHowever, further down, if the page is mapped, shrink_list() calls\ntry_to_unmap() which will call try_to_unmap_one() via try_to_unmap_anon ().\n try_to_unmap_one() will BUG_ON() an anon page that is NOT in the swap\ncache.  Martin says he never encountered this path in his testing, but\nagrees that it might happen.\n\nThis patch modifies shrink_list() to skip anon pages that are not already\nin the swap cache when !may_swap, rather than just not adding them to the\ncache.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b57b98d147ef98758886a39efb94f3254542c39b",
      "tree": "1aab53a2bb1add92d55fbce963e371527c05d281",
      "parents": [
        "662f3a0b94cc92bd708c27b80f8207cd7db93204"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sat Oct 29 18:15:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:36 2005 -0700"
      },
      "message": "[PATCH] mm/msync.c cleanup\n\nThis is not problem actually, but sync_page_range() is using for exported\nfunction to filesystems.\n\nThe msync_xxx is more readable at least to me.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "662f3a0b94cc92bd708c27b80f8207cd7db93204",
      "tree": "c7a42829efca15f7ccdcf510c80283f4c08e0343",
      "parents": [
        "dfcd3c0dc426bb75770c34b40e14f2da8845ea62"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Oct 29 18:15:49 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] Remove near all BUGs in mm/mempolicy.c\n\nMost of them can never be triggered and were only for development.\n\nSigned-off-by: \"Andi Kleen\" \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dfcd3c0dc426bb75770c34b40e14f2da8845ea62",
      "tree": "bd7e9f8463a18025c4775c6cdf22abbbd4236b64",
      "parents": [
        "e46a5e28c201f703c18b47b108bfddec44f897c4"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Oct 29 18:15:48 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] Convert mempolicies to nodemask_t\n\nThe NUMA policy code predated nodemask_t so it used open coded bitmaps.\nConvert everything to nodemask_t.  Big patch, but shouldn\u0027t have any actual\nbehaviour changes (except I removed one unnecessary check against\nnode_online_map and one unnecessary BUG_ON)\n\nSigned-off-by: \"Andi Kleen\" \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e46a5e28c201f703c18b47b108bfddec44f897c4",
      "tree": "b55f5c376533f2ecfedc8fed0d12a590bfb1387e",
      "parents": [
        "ba56e91c940146e99ac694c4c7cd7f2b4aaa565d"
      ],
      "author": {
        "name": "Seth, Rohit",
        "email": "rohit.seth@intel.com",
        "time": "Sat Oct 29 18:15:48 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] mm: set per-cpu-pages lower threshold to zero\n\nSet the low water mark for hot pages in pcp to zero.\n\n(akpm: for the life of me I cannot remember why we created pcp-\u003elow.  Neither\ncan Martin and the changelog is silent.  Maybe it was just a brainfart, but I\nhave this feeling that there was a reason.  If not, we should remove the\nfields completely.  We\u0027ll see.)\n\nSigned-off-by: Rohit Seth \u003crohit.seth@intel.com\u003e\nCc: \u003clinux-mm@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ba56e91c940146e99ac694c4c7cd7f2b4aaa565d",
      "tree": "5254f1ce8e2f39ccb58a74d0ff0120817b3b5c05",
      "parents": [
        "fcdae29aa7a5c79f245110f6680afdc1858d3626"
      ],
      "author": {
        "name": "Seth, Rohit",
        "email": "rohit.seth@intel.com",
        "time": "Sat Oct 29 18:15:47 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] mm: page_alloc: increase size of per-cpu-pages\n\nIncrease the page allocator\u0027s per-cpu magazines from 1/4MB to 1/2MB.\n\nOver 100+ runs for a workload, the difference in mean is about 2%.  The best\nresults for both are almost same.  Though the max variation in results with\n1/2MB is only 2.2%, whereas with 1/4MB it is 12%.\n\nSigned-off-by: Rohit Seth \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fcdae29aa7a5c79f245110f6680afdc1858d3626",
      "tree": "09634921c68dd82a661c1ba389133e7f805e2d0f",
      "parents": [
        "eb92f4ef320b738e41ad43476a5d05c8a20d5cc7"
      ],
      "author": {
        "name": "Rik Van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 29 18:15:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] swaptoken tuning\n\nIt turns out that the original swap token implementation, by Song Jiang, only\nenforced the swap token while the task holding the token is handling a page\nfault.  This patch approximates that, without adding an additional flag to the\nmm_struct, by checking whether the mm-\u003emmap_sem is held for reading, like the\npage fault code does.\n\nThis patch has the effect of automatically, and gradually, disabling the\nenforcement of the swap token when there is little or no paging going on, and\n\"turning up\" the intensity of the swap token code the more the task holding\nthe token is thrashing.\n\nThanks to Song Jiang for pointing out this aspect of the token based thrashing\ncontrol concept.\n\nThe new code shows a slight degradation over the old swap token code, but\nstill a big win over running without the swap token.\n\n2.6.12+ swap token disabled\n\n$ for i in `seq 10` ; do /usr/bin/time ./qsbench -n 30000000 -p 3 ; done\n101.74user 23.13system 8:26.91elapsed 24%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (38597major+430315minor)pagefaults 0swaps\n101.98user 24.91system 8:03.06elapsed 26%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (33939major+430457minor)pagefaults 0swaps\n101.93user 22.12system 7:34.90elapsed 27%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (33166major+421267minor)pagefaults 0swaps\n101.82user 22.38system 8:31.40elapsed 24%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (39338major+433262minor)pagefaults 0swaps\n\n2.6.12+ swap token enabled, timeout 300 seconds\n\n$ for i in `seq 4` ; do /usr/bin/time ./qsbench -n 30000000 -p 3 ; done\n102.58user 16.08system 3:41.44elapsed 53%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (19707major+285786minor)pagefaults 0swaps\n102.07user 19.56system 4:00.64elapsed 50%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (19012major+299259minor)pagefaults 0swaps\n102.64user 18.25system 4:07.31elapsed 48%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (21990major+304831minor)pagefaults 0swaps\n101.39user 19.41system 5:15.81elapsed 38%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (24850major+323321minor)pagefaults 0swaps\n\n2.6.12+ with new swap token code, timeout 300 seconds\n\n$ for i in `seq 4` ; do /usr/bin/time ./qsbench -n 30000000 -p 3 ; done\n101.87user 24.66system 5:53.20elapsed 35%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (26848major+363497minor)pagefaults 0swaps\n102.83user 19.95system 4:17.25elapsed 47%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (19946major+305722minor)pagefaults 0swaps\n102.09user 19.46system 5:12.57elapsed 38%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (25461major+334994minor)pagefaults 0swaps\n101.67user 20.61system 4:52.97elapsed 41%CPU (0avgtext+0avgdata 0maxresident)k\n0inputs+0outputs (22190major+329508minor)pagefaults 0swaps\n\nSigned-off-by: Rik Van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "930fc45a49ddebe7555cc5c837d82b9c27e65ff4",
      "tree": "f0e4b32bd4e2f951c4eb1bc1fcdeefdcbb8e6195",
      "parents": [
        "be15cd72d256e5eb3261a781b8507fac83ab33f6"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Oct 29 18:15:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] vmalloc_node\n\nThis patch adds\n\nvmalloc_node(size, node)\t-\u003e Allocate necessary memory on the specified node\n\nand\n\nget_vm_area_node(size, flags, node)\n\nand the other functions that it depends on.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "260b23674fdb570f3235ce55892246bef1c24c2a",
      "tree": "471e7b546cbf1f7ee4a165e5bd9a2de0770e53be",
      "parents": [
        "c4cdd038318863e912e9b992489f61497f98b442"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:22:44 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:51 2005 -0700"
      },
      "message": "[PATCH] gfp_t: the rest\n\nzone handling, mapping-\u003eflags handling\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6daa0e28627abf362138244a620a821a9027d816",
      "tree": "5ca9cbc421cc1adf228cdd30cd627bca8be6242c",
      "parents": [
        "af4ca457eaf2d6682059c18463eb106e2ce58198"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:18:50 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:47 2005 -0700"
      },
      "message": "[PATCH] gfp_t: mm/* (easy parts)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "af4ca457eaf2d6682059c18463eb106e2ce58198",
      "tree": "399ca5ab3b15d723a6aefd04c764a2a06089ed06",
      "parents": [
        "434f1d10c1adb6c2e333d501ce1e42be610e0723"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 02:55:38 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:46 2005 -0700"
      },
      "message": "[PATCH] gfp_t: infrastructure\n\nBeginning of gfp_t annotations:\n\n - -Wbitwise added to CHECKFLAGS\n - old __bitwise renamed to __bitwise__\n - __bitwise defined to either __bitwise__ or nothing, depending on\n   __CHECK_ENDIAN__ being defined\n - gfp_t switched from __nocast to __bitwise__\n - force cast to gfp_t added to __GFP_... constants\n - new helper - gfp_zone(); extracts zone bits out of gfp_t value and casts\n   the result to int\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1c6fe9465941df04a1ad8f009bd6d95b20072a58",
      "tree": "8a603129e3f5df909476d41c09c9d87939c2839f",
      "parents": [
        "8712e553562bbbed9b3a99370f08e9bc25908a76"
      ],
      "author": {
        "name": "Magnus Damm",
        "email": "magnus@valinux.co.jp",
        "time": "Wed Oct 26 01:58:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 10:39:43 2005 -0700"
      },
      "message": "[PATCH] NUMA: broken per cpu pageset counters\n\nThe NUMA counters in struct per_cpu_pageset (linux/mmzone.h) are never\ncleared today.  This works ok for CPU 0 on NUMA machines because\nboot_pageset[] is already zero, but for other CPU:s this results in\nuninitialized counters.\n\nSigned-off-by: Magnus Damm \u003cmagnus@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ac9b9c667c2e1194e22ebe0a441ae1c37aaa9b90",
      "tree": "3903d87d0b56a49ead39c0460b5bc0b86b040775",
      "parents": [
        "93918e9afc76717176e9e114e79cdbb602a45ae8"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Oct 20 16:24:28 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Oct 20 09:02:07 2005 -0700"
      },
      "message": "[PATCH] Fix handling spurious page fault for hugetlb region\n\nThis reverts commit 3359b54c8c07338f3a863d1109b42eebccdcf379 and\nreplaces it with a cleaner version that is purely based on page table\noperations, so that the synchronization between inode size and hugetlb\nmappings becomes moot.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "281dd25cdc0d6903929b79183816d151ea626341",
      "tree": "ed7898462492d853e422eb7f130f0b6e7efc0b69",
      "parents": [
        "51b190b304bbeb1090ba20b0623d39917fa62997"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Wed Oct 19 15:52:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 19 23:11:33 2005 -0700"
      },
      "message": "[PATCH] swiotlb: make sure initial DMA allocations really are in DMA memory\n\nThis introduces a limit parameter to the core bootmem allocator; The new\nparameter indicates that physical memory allocated by the bootmem\nallocator should be within the requested limit.\n\nWe also introduce alloc_bootmem_low_pages_limit, alloc_bootmem_node_limit,\nalloc_bootmem_low_pages_node_limit apis, but alloc_bootmem_low_pages_limit\nis the only api used for swiotlb.\n\nThe existing alloc_bootmem_low_pages() api could instead have been\nchanged and made to pass right limit to the core allocator.  But that\nwould make the patch more intrusive for 2.6.14, as other arches use\nalloc_bootmem_low_pages().  We may be done that post 2.6.14 as a\ncleanup.\n\nWith this, swiotlb gets memory within 4G for both x86_64 and ia64\narches.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Ravikiran G Thirumalai \u003ckiran@scalex86.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1c59827d1da9bcd6970800d4f8a031b5859e8b4c",
      "tree": "768e771e4da8f8f5a84d38b4b91d2fb852a4123a",
      "parents": [
        "e03d13e985d48ac4885382c9e3b1510c78bd047f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Oct 19 21:23:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 19 23:04:30 2005 -0700"
      },
      "message": "[PATCH] mm: hugetlb truncation fixes\n\nhugetlbfs allows truncation of its files (should it?), but hugetlb.c often\nforgets that: crashes and misaccounting ensue.\n\ncopy_hugetlb_page_range better grab the src page_table_lock since we don\u0027t\nwant to guess what happens if concurrently truncated.  unmap_hugepage_range\nrss accounting must not assume the full range was mapped.  follow_hugetlb_page\nmust guard with page_table_lock and be prepared to exit early.\n\nRestyle copy_hugetlb_page_range with a for loop like the others there.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3359b54c8c07338f3a863d1109b42eebccdcf379",
      "tree": "f91edd52c71e57ce4b46e3875c9054666ca4e24c",
      "parents": [
        "bb7e257ef8d8ba43cab356aa1cc1b20d0106d45f"
      ],
      "author": {
        "name": "Seth, Rohit",
        "email": "rohit.seth@intel.com",
        "time": "Tue Oct 18 14:15:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 19 13:56:27 2005 -0700"
      },
      "message": "[PATCH] Handle spurious page fault for hugetlb region\n\nThe hugetlb pages are currently pre-faulted.  At the time of mmap of\nhugepages, we populate the new PTEs.  It is possible that HW has already\ncached some of the unused PTEs internally.  These stale entries never\nget a chance to be purged in existing control flow.\n\nThis patch extends the check in page fault code for hugepages.  Check if\na faulted address falls with in size for the hugetlb file backing it.\nWe return VM_FAULT_MINOR for these cases (assuming that the arch\nspecific page-faulting code purges the stale entry for the archs that\nneed it).\n\nSigned-off-by: Rohit Seth \u003crohit.seth@intel.com\u003e\n\n[ This is apparently arguably an ia64 port bug. But the code won\u0027t\n  hurt, and for now it fixes a real problem on some ia64 machines ]\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3d80636a0d5f056ffc26472d05b6027a7a9f6e1c",
      "tree": "39b3dbae53938728c55b2312190561b858431d92",
      "parents": [
        "688ce17b8599abc548b406c00e4d18ae0dec954f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 16 17:36:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 16 17:36:06 2005 -0700"
      },
      "message": "Fix memory ordering bug in page reclaim\n\nAs noticed by Nick Piggin, we need to make sure that we check the page\ncount before we check for PageDirty, since the dirty check is only valid\nif the count implies that we\u0027re the only possible ones holding the page.\n\nWe always did do this, but the code needs a read-memory-barrier to make\nsure that the orderign is also honored by the CPU.\n\n(The writer side is ordered due to the atomic decrement and test on the\npage count, see the discussion on linux-kernel)\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5154a98a1931641f0448f6512294a15279110d7",
      "tree": "fd5ea19514d07338f58b2df4b2f87922b9975a04",
      "parents": [
        "9149ccfa3571eaa4a4b444777d67fc4ed3ebcf27"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Oct 11 19:16:26 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 11 12:03:47 2005 -0700"
      },
      "message": "[PATCH] Don\u0027t map the same page too much\n\nRefuse to install a page into a mapping if the mapping count is already\nridiculously large.\n\nYou probably cannot trigger this on 32-bit architectures, but on a\n64-bit setup we should protect against it.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1bef40032992320dd25a266fc166bfb8fa3f2f59",
      "tree": "e02d654b4db45b752e3201c3f6eec3f4c719b69f",
      "parents": [
        "22c1ea44f0d33eda532883858b6cdabc5f265b66"
      ],
      "author": {
        "name": "Suzuki",
        "email": "suzuki@in.ibm.com",
        "time": "Tue Oct 11 08:29:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 11 09:46:54 2005 -0700"
      },
      "message": "[PATCH] madvise: Avoid returning error code -EBADF for anonymous mappings\n\nRevert this recent correctness change: Douglas Crosher \u003cdcrosher@scieneer.com\u003e\nreported that it broke an existing application, and that madvise() works\nwithout error on anonymous mappings on Solaris.\n\nThis means that madvise() will remain non-standards-compliant: we should\nreturn -EBADF for all requests against non-file-backed vma\u0027s, but Linux only\ndoes this for MADV_WILLNEED requests.\n\nSigned-off-by: Suzuki K P \u003csuzuki@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6e3254c4e2927c117044a02acf5f5b56e1373053",
      "tree": "e5c4341cfac398fb57916ffeb0bf07d615662eb4",
      "parents": [
        "13402580021a52e49c6d1068ff28ade4d5a175f1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 30 12:38:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 30 12:38:27 2005 -0700"
      },
      "message": "Revert \"x86-64: Reverse order of bootmem lists\"\n\nAs requested by Thomas Gleixner \u003ctglx@linutronix.de\u003e:\n\n  \"5d3d0f7704ed0bc7eaca0501eeae3e5da1ea6c87 breaks a couple of ARM\n   boards, which depend on the historical bootmem allocation order.\n   There is a cleaner solution around to remove the pgdat list\n   completely, but this is a topic for post 2.6.14\n\n   Andi signalled ACK already.\"\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c382300876f2337f7b945c159ffcaf285f296ea",
      "tree": "d505f231c23d415f2609c6bf0ef7c196503dc161",
      "parents": [
        "0f9578b70a9f112bfb541e1d5ab486a376e64503"
      ],
      "author": {
        "name": "Alok N Kataria",
        "email": "alokk@calsoftinc.com",
        "time": "Tue Sep 27 21:45:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:42 2005 -0700"
      },
      "message": "[PATCH] kmalloc_node IRQ safety fix\n\nIn kmalloc_node we are checking if the allocation is for the same node when\ninterrupts are \"on\".  This may lead to an allocation on another node than\nintended.\n\nThis patch just shifts the check for the current node in __cache_alloc_node\nwhen interrupts are disabled.\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8b1f3124618b54cf125dea3a074b9cf469117723",
      "tree": "19ef8a7fe9cc5b1c46dc973ea151edab4aba2b8a",
      "parents": [
        "95001ee9256df846e374f116c92ca8e0beec1527"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Tue Sep 27 21:45:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:40 2005 -0700"
      },
      "message": "[PATCH] mm: move_pte to remap ZERO_PAGE\n\nMove the ZERO_PAGE remapping complexity to the move_pte macro in\nasm-generic, have it conditionally depend on\n__HAVE_ARCH_MULTIPLE_ZERO_PAGE, which gets defined for MIPS.\n\nFor architectures without __HAVE_ARCH_MULTIPLE_ZERO_PAGE, move_pte becomes\na noop.\n\nFrom: Hugh Dickins \u003chugh@veritas.com\u003e\n\nFix nasty little bug we\u0027ve missed in Nick\u0027s mremap move ZERO_PAGE patch.\nThe \"pte\" at that point may be a swap entry or a pte_file entry: we must\ncheck pte_present before perhaps corrupting such an entry.\n\nPatch below against 2.6.14-rc2-mm1, but the same bug is in 2.6.14-rc2\u0027s\nmm/mremap.c, and more dangerous there since it\u0027s affecting all arches: I\nthink the safest course is to send Nick\u0027s patch and Yoichi\u0027s build fix and\nthis fix (build tested) on to Linus - so only MIPS can be affected.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dbdb90450059e17e8e005ebd3ce0a1fd6008a0c8",
      "tree": "0dc0220667566698e5c602bcd408d4255c86037a",
      "parents": [
        "86513e726b494796175b6c4fdd705797f01b0ca2"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Sep 23 13:24:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 23 13:35:37 2005 -0700"
      },
      "message": "[PATCH] revert oversized kmalloc check\n\nAs davem points out, this wasn\u0027t such a great idea.  There may be some code\nwhich does:\n\n\tsize \u003d 1024*1024;\n\twhile (kmalloc(size, ...) \u003d\u003d 0)\n\t\tsize /\u003d 2;\n\nwhich will now explode.\n\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7b3a4359b25311fb5894c8809478a2df6bed480",
      "tree": "ef2e2a707f1b5d5095c9e2e1e6d760d77ad2b31b",
      "parents": [
        "8bdac5d1ed892da54b6b2069e50a47b3aa39460f"
      ],
      "author": {
        "name": "Rob Landley",
        "email": "rob@landley.net",
        "time": "Thu Sep 22 21:44:27 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:37 2005 -0700"
      },
      "message": "[PATCH] Fix bd_claim() error code.\n\nProblem: In some circumstances, bd_claim() is returning the wrong error\ncode.\n\nIf we try to swapon an unused block device that isn\u0027t swap formatted, we\nget -EINVAL.  But if that same block device is already mounted, we instead\nget -EBUSY, even though it still isn\u0027t a valid swap device.\n\nThis issue came up on the busybox list trying to get the error message\nfrom \"swapon -a\" right.  If a swap device is already enabled, we get -EBUSY,\nand we shouldn\u0027t report this as an error.  But we can\u0027t distinguish the two\n-EBUSY conditions, which are very different errors.\n\nIn the code, bd_claim() returns either 0 or -EBUSY, but in this case busy\nmeans \"somebody other than sys_swapon has already claimed this\", and\n_that_ means this block device can\u0027t be a valid swap device.  So return\n-EINVAL there.\n\nSigned-off-by: Rob Landley \u003crob@landley.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eafb42707b21beb42bba4eae7b742f837ee9d2e0",
      "tree": "a2b4f7042bb622ecbe8aaa003a96a6024d8bbc00",
      "parents": [
        "0cdc82ee1ae36c1ae4631fc3a782faeb0b90df38"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Sep 22 21:44:10 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:36 2005 -0700"
      },
      "message": "[PATCH] __kmalloc: Generate BUG if size requested is too large.\n\nI had an issue on ia64 where I got a bug in kernel/workqueue because\nkzalloc returned a NULL pointer due to the task structure getting too big\nfor the slab allocator.  Usually these cases are caught by the kmalloc\nmacro in include/linux/slab.h.\n\nCompilation will fail if a too big value is passed to kmalloc.\n\nHowever, kzalloc uses __kmalloc which has no check for that.  This patch\nmakes __kmalloc bug if a too large entity is requested.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ff69416e6323fe9d38c42a06ebdefeb58bbe9336",
      "tree": "c97b81660f38ff7a06196dc47b92bd5f44c26305",
      "parents": [
        "57487f4376e16558ccbe45a5b41d8cb5192309a4"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Thu Sep 22 21:44:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:35 2005 -0700"
      },
      "message": "[PATCH] slab: fix handling of pages from foreign NUMA nodes\n\nThe numa slab allocator may allocate pages from foreign nodes onto the\nlists for a particular node if a node runs out of memory.  Inspecting the\nslab-\u003enodeid field will not reflect that the page is now in use for the\nslabs of another node.\n\nThis patch fixes that issue by adding a node field to free_block so that\nthe caller can indicate which node currently uses a slab.\n\nAlso removes the check for the current node from kmalloc_cache_node since\nthe process may shift later to another node which may lead to an allocation\non another node than intended.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7243cc05bafdda4c4de77cba00cf87666bd237f7",
      "tree": "a893a19e774de07face851ace998830ea1487612",
      "parents": [
        "4b3c86a7452df8608c32a1c1f19c0cc0723c145f"
      ],
      "author": {
        "name": "Ivan Kokshaysky",
        "email": "ink@jurassic.park.msu.ru",
        "time": "Thu Sep 22 21:43:58 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 22 22:17:34 2005 -0700"
      },
      "message": "[PATCH] slab: alpha inlining fix\n\nIt is essential that index_of() be inlined.  But alpha undoes the gcc\ninlining hackery and index_of() ends up out-of-line.  So fiddle with things\nto make that function inline again.\n\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7e2cff42cfac27c25202648c5c89f9171e5bc085",
      "tree": "5579fa13b1fc8081201f05d687e6dc795d9d648f",
      "parents": [
        "7e871b6c8f1f4fda41e51ef86147facecac3be9f"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Wed Sep 21 09:55:39 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 21 10:11:55 2005 -0700"
      },
      "message": "[PATCH] mm: add a note about partially hardcoded VM_* flags\n\nHugh made me note this line for permission checking in mprotect():\n\n\t\tif ((newflags \u0026 ~(newflags \u003e\u003e 4)) \u0026 0xf) {\n\nafter figuring out what\u0027s that about, I decided it\u0027s nasty enough.  Btw\nHugh itself didn\u0027t like the 0xf.\n\nWe can safely change it to VM_READ|VM_WRITE|VM_EXEC because we never change\nVM_SHARED, so no need to check that.\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f10df6860498c7f52db4f00ff00a1ba334bcfea0",
      "tree": "aa1a75645a002e869886aaae9d09d332a69f8bba",
      "parents": [
        "8b20f6da20d874a58becc7a08b130c4382ea7325"
      ],
      "author": {
        "name": "Paolo \u0027Blaisorblade\u0027 Giarrusso",
        "email": "blaisorblade@yahoo.it",
        "time": "Wed Sep 21 09:55:37 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 21 10:11:55 2005 -0700"
      },
      "message": "[PATCH] fix locking comment in unmap_region()\n\nThat comment is plain wrong (we even take the pagetable lock inside\nunmap_region()).\n\nSigned-off-by: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f3519f91942f2b43942400348c16d63fe9327f04",
      "tree": "893fa3d0a6a936f0e3123539e3ea196a71006a07",
      "parents": [
        "b9491ac835829e6a34e2bbaa8adad261c71bf990"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Fri Sep 16 19:27:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 17 11:50:01 2005 -0700"
      },
      "message": "[PATCH] fix mm/Kconfig spelling\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c7e43c78ae4d8630c418ce3495787b995e61a580",
      "tree": "40ab6278393ebb5096d1cef7bf1e7a423f4193de",
      "parents": [
        "c7fb0b35ada6e0e691e70af5591a2006fbec85b5"
      ],
      "author": {
        "name": "Alok Kataria",
        "email": "alokk@calsoftinc.com",
        "time": "Wed Sep 14 12:17:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 14 12:31:45 2005 -0700"
      },
      "message": "[PATCH] Fix slab BUG_ON() triggered by change in array cache size\n\nWith the new changes that we made in the initialization of the slab\nallocator, we first setup the cache from which array caches are allocated,\nand then the cache, from which kmem_list3\u0027s are allocated.\n\nNow if the array cache comes from a cache in which objsize \u003e 32, (in this\ninstance size-64) then, first size-64 cache will be allocated and then the\nsize-128 (if this is the cache from which kmem_list3\u0027s are going to be\nallocated).\n\nSo with these new changes, we are not guaranteed that we will be\ninitializing the malloc_sizes array in a serialized order. Thus there is\na bug in __find_general_cachep, as we are checking whether the first\ncache_sizes ptr is NULL.\n\nThis is replaced by checking whether the array-cache cache is initialized.\nAttached is a patch which does that.  Boots fine on a x86-64, with\nDEBUG_SPIN, DEBUG_SLAB, and preempt.\n\nAttached is a patch which does that.  Boots fine on a x86-64, with\nDEBUG_SPIN, DEBUG_SLAB, and preempt.Thanks \u0026 Regards, Alok\n\nSigned-off-by: Alok N Kataria \u003calokk@calsoftinc.com\u003e\nSigned-off-by: Shobhit Dayal \u003cshobhitdayal.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Christoph Lameter \u003cchristoph@lameter.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2fd4ef85e0db9ed75c98e13953257a967ea55e03",
      "tree": "119dfe9f88a832f3db6ff66e631112626f268f18",
      "parents": [
        "fb085cf1d4294824571815d487daccc0609543f0"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Sep 14 06:13:02 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 14 11:18:13 2005 -0700"
      },
      "message": "[PATCH] error path in setup_arg_pages() misses vm_unacct_memory()\n\nPavel Emelianov and Kirill Korotaev observe that fs and arch users of\nsecurity_vm_enough_memory tend to forget to vm_unacct_memory when a\nfailure occurs further down (typically in setup_arg_pages variants).\n\nThese are all users of insert_vm_struct, and that reservation will only\nbe unaccounted on exit if the vma is marked VM_ACCOUNT: which in some\ncases it is (hidden inside VM_STACK_FLAGS) and in some cases it isn\u0027t.\n\nSo x86_64 32-bit and ppc64 vDSO ELFs have been leaking memory into\nCommitted_AS each time they\u0027re run.  But don\u0027t add VM_ACCOUNT to them,\nit\u0027s inappropriate to reserve against the very unlikely case that gdb\nbe used to COW a vDSO page - we ought to do something about that in\ndo_wp_page, but there are yet other inconsistencies to be resolved.\n\nThe safe and economical way to fix this is to let insert_vm_struct do\nthe security_vm_enough_memory check when it finds VM_ACCOUNT is set.\n\nAnd the MIPS irix_brk has been calling security_vm_enough_memory before\ncalling do_brk which repeats it, doubly accounting and so also leaking.\nRemove that, and all the fs and arch calls to security_vm_enough_memory:\ngive it a less misleading name later on.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-Off-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f1583339a6f52c0c26441d39a0deff8246800f7",
      "tree": "99efa7690d22a45bf87ec80beb5e2a2d43f6b26d",
      "parents": [
        "fb911ee849756fc6c609dddded92d9207ff3fb29"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Sep 13 01:25:16 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:29 2005 -0700"
      },
      "message": "[PATCH] use add_taint() for setting tainted bit flags\n\nUse the add_taint() interface for setting tainted bit flags instead of\ndoing it manually.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5b952b3c143660b6436fcb299b249cefde61c18d",
      "tree": "8b0abd6eba79f4fa0f4144ca94d272a0ef826266",
      "parents": [
        "8d0986e289a4b018fec87fcc49538945fb401f37"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Sep 13 01:25:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:28 2005 -0700"
      },
      "message": "[PATCH] Fix MPOL_F_VERIFY\n\nThere was a pretty bad bug in there that the code would always check the full\nVMA, not the range the user requested.\n\nWhen the VMA to be checked was merged with the previous VMA this could lead to\nspurious failures.\n\nSigned-off-by: \"Andi Kleen\" \u003cak@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d0986e289a4b018fec87fcc49538945fb401f37",
      "tree": "f81d6343e3722605eb662b85f0ad3ba25b71919a",
      "parents": [
        "7979aca38b78ffe6a65ef309f26721c527104eaf"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Tue Sep 13 01:25:07 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 13 08:22:28 2005 -0700"
      },
      "message": "[PATCH] vm: kswapd cleanup: use pgdat\n\nUse the pgdat pointer we\u0027ve already defined in wakeup_kswapd\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5d3d0f7704ed0bc7eaca0501eeae3e5da1ea6c87",
      "tree": "7f1f41450a6f1880488f7fd4554a1f2bbd71d391",
      "parents": [
        "6142891a0c0209c91aa4a98f725de0d6e2ed4918"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Mon Sep 12 18:49:24 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Sep 12 10:49:56 2005 -0700"
      },
      "message": "[PATCH] x86-64: Reverse order of bootmem lists\n\nThis leads to bootmem allocating first from node 0 instead\nof from the last node.  This avoids swiotlb allocating on the last node, which\ndoesn\u0027t really work on a machine with \u003e4GB.\n\nNote: there is a better patch around from someone else that gets\nrid of the pgdat list completely.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "66aa2b4b1cf9a61f1550251c56fc6f0d48287591",
      "tree": "b372d102e0f6a8071c2473c84343f7a1a9d4cf94",
      "parents": [
        "966cdb2fdf1776392c98f7d38e0eb9c6dd1c4715"
      ],
      "author": {
        "name": "Greg Ungerer",
        "email": "gerg@snapgear.com",
        "time": "Mon Sep 12 11:18:10 2005 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Sep 11 20:43:47 2005 -0700"
      },
      "message": "[PATCH] uclinux: add NULL check, 0 end valid check and some more exports to nommu.c\n\nMove call to get_mm_counter() in update_mem_hiwater() to be\ninside the check for tsk-\u003emm being null. Otherwise you can be\nfollowing a null pointer here. This patch submitted by\nJavier Herrero \u003cjherrero@hvsistemas.es\u003e.\n\nModify the end check for munmap regions to allow for the\nlegacy behavior of 0 being valid. Pretty much all current\nuClinux system libc malloc\u0027s pass in 0 as the end point.\nA hard check will fail on these, so change the check so\nthat if it is non-zero it must be valid otherwise it fails.\nA passed in value will always succeed (as it used too).\n\nAlso export a few more mm system functions - to be consistent\nwith the VM code exports.\n\nSigned-off-by: Greg Ungerer \u003cgerg@uclinux.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "13e4b57f6a4e23ceb99794a650d777e74831f4a6",
      "tree": "a585fdc3a2374dbedcf0114fa3c38d2fb7920774",
      "parents": [
        "75bcc8c5e1de78616b04ef9f317a293a7c1c163c"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:25 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:37 2005 -0700"
      },
      "message": "[PATCH] mm: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "207f36eec9e7b1077d7a0aaadb4800e2c9b4cfa4",
      "tree": "09fa4a6885ee6a1032a46b2409a13669a8d01459",
      "parents": [
        "9dcbb32f1654e79c212c20d9cd9d48509ee1eaf7"
      ],
      "author": {
        "name": "Renaud Lienhart",
        "email": "renaud.lienhart@free.fr",
        "time": "Sat Sep 10 00:26:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:31 2005 -0700"
      },
      "message": "[PATCH] remove invalid comment in mm/page_alloc.c\n\nfree_pages_bulk() doesn\u0027t free the entire list if count \u003d\u003d 0.\n\nSigned-off-by: Renaud Lienhart \u003crenaud.lienhart@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9de75d110c9681d4aaa7fe87b8db99d5562012a2",
      "tree": "33c4c1fcfc8ed6b38c062f0aaf31c8f84d8eb946",
      "parents": [
        "e776eba0feaea9a3eba7aff73f50701b9804b57f"
      ],
      "author": {
        "name": "Victor Fusco",
        "email": "victor@cetuc.puc-rio.br",
        "time": "Sat Sep 10 00:26:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:28 2005 -0700"
      },
      "message": "[PATCH] mm/swap_state: Fix \"nocast type\" warnings\n\nFix the sparse warning \"implicit cast to nocast type\"\n\nSigned-off-by: Victor Fusco \u003cvictor@cetuc.puc-rio.br\u003e\nSigned-off-by: Domen Puncer \u003cdomen@coderock.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "b2d550736f8b2186b8ef7e206d0bfbfec2238ae8"
}
