)]}'
{
  "log": [
    {
      "commit": "aee4faa499dc58fdb126885f68d447f2eba79b43",
      "tree": "f0987873eba0b2158386a5af80cda9846ca0006d",
      "parents": [
        "a47b53c5f9a690addbc094501e4ae083ec307f57"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:33 2012 -0800"
      },
      "message": "kthread: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a47b53c5f9a690addbc094501e4ae083ec307f57",
      "tree": "32c2b987aa129be898f40cb0657d4e367e4197b9",
      "parents": [
        "8cebfcd074a3044780f3f9af236fc8534d89e55e"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:33 2012 -0800"
      },
      "message": "vmstat: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8cebfcd074a3044780f3f9af236fc8534d89e55e",
      "tree": "38075cf409d3517e7b9ffce8e40eab2a4a9c3caa",
      "parents": [
        "01f13bd607346afa8911ac180588244698676e5c"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:33 2012 -0800"
      },
      "message": "hugetlb: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01f13bd607346afa8911ac180588244698676e5c",
      "tree": "f6f29f70b5312732fa9ab139e64901b41494ad54",
      "parents": [
        "389162c22dc373932089ce16cbab43e80a88b035"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:33 2012 -0800"
      },
      "message": "mempolicy: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "389162c22dc373932089ce16cbab43e80a88b035",
      "tree": "ec8fd802e886cf18e97a98a8a332457214c86423",
      "parents": [
        "bd3a66c1cdf31274489cc1b5ace879695a5a1797"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:33 2012 -0800"
      },
      "message": "mm,migrate: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd3a66c1cdf31274489cc1b5ace879695a5a1797",
      "tree": "981362da6a732ed7d0980d6fff3eba9a59c6d9b1",
      "parents": [
        "31aaea4aa1b267de52a44a72fd75990c79a9a433"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "oom: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31aaea4aa1b267de52a44a72fd75990c79a9a433",
      "tree": "efdaf2fc6caafb5757fb055bfb58735ef18a847b",
      "parents": [
        "4ff1b2c29326a2a3e130b46f69b7ab0e853d09d8"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:27 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "memcontrol: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ff1b2c29326a2a3e130b46f69b7ab0e853d09d8",
      "tree": "e5df1265586c331e299a9a57151d3f59f255a079",
      "parents": [
        "38d7bee9d24adf4c95676a3dc902827c72930ebb"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "procfs: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38d7bee9d24adf4c95676a3dc902827c72930ebb",
      "tree": "f61a6ae69f5976d31bfabe264dd36c8d4d7e3547",
      "parents": [
        "8219fc48adb3b09eabf502c560bf13f273ea69a3"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "cpuset: use N_MEMORY instead N_HIGH_MEMORY\n\nN_HIGH_MEMORY stands for the nodes that has normal or high memory.\nN_MEMORY stands for the nodes that has any memory.\n\nThe code here need to handle with the nodes which have memory, we should\nuse N_MEMORY instead.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8219fc48adb3b09eabf502c560bf13f273ea69a3",
      "tree": "3054133bbce79097ce4bad7c2667742fe1cd0469",
      "parents": [
        "be49a6e13537f32f85bd8c4ba04317ca36ca60ff"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed Dec 12 13:51:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "mm: node_states: introduce N_MEMORY\n\nWe have N_NORMAL_MEMORY for standing for the nodes that have normal memory\nwith zone_type \u003c\u003d ZONE_NORMAL.\n\nAnd we have N_HIGH_MEMORY for standing for the nodes that have normal or\nhigh memory.\n\nBut we don\u0027t have any word to stand for the nodes that have *any* memory.\n\nAnd we have N_CPU but without N_MEMORY.\n\nCurrent code reuse the N_HIGH_MEMORY for this purpose because any node\nwhich has memory must have high memory or normal memory currently.\n\nA)\tBut this reusing is bad for *readability*. Because the name\n\tN_HIGH_MEMORY just stands for high or normal:\n\nA.example 1)\n\tmem_cgroup_nr_lru_pages():\n\t\tfor_each_node_state(nid, N_HIGH_MEMORY)\n\n\tThe user will be confused(why this function just counts for high or\n\tnormal memory node? does it counts for ZONE_MOVABLE\u0027s lru pages?)\n\tuntil someone else tell them N_HIGH_MEMORY is reused to stand for\n\tnodes that have any memory.\n\nA.cont) If we introduce N_MEMORY, we can reduce this confusing\n\tAND make the code more clearly:\n\nA.example 2) mm/page_cgroup.c use N_HIGH_MEMORY twice:\n\n\tOne is in page_cgroup_init(void):\n\t\tfor_each_node_state(nid, N_HIGH_MEMORY) {\n\n\tIt means if the node have memory, we will allocate page_cgroup map for\n\tthe node. We should use N_MEMORY instead here to gaim more clearly.\n\n\tThe second using is in alloc_page_cgroup():\n\t\tif (node_state(nid, N_HIGH_MEMORY))\n\t\t\taddr \u003d vzalloc_node(size, nid);\n\n\tIt means if the node has high or normal memory that can be allocated\n\tfrom kernel. We should keep N_HIGH_MEMORY here, and it will be better\n\tif the \"any memory\" semantic of N_HIGH_MEMORY is removed.\n\nB)\tThis reusing is out-dated if we introduce MOVABLE-dedicated node.\n\tThe MOVABLE-dedicated node should not appear in\n\tnode_stats[N_HIGH_MEMORY] nor node_stats[N_NORMAL_MEMORY],\n\tbecause MOVABLE-dedicated node has no high or normal memory.\n\n\tIn x86_64, N_HIGH_MEMORY\u003dN_NORMAL_MEMORY, if a MOVABLE-dedicated node\n\tis in node_stats[N_HIGH_MEMORY], it is also means it is in\n\tnode_stats[N_NORMAL_MEMORY], it causes SLUB wrong.\n\n\tThe slub uses\n\t\tfor_each_node_state(nid, N_NORMAL_MEMORY)\n\tand creates kmem_cache_node for MOVABLE-dedicated node and cause problem.\n\nIn one word, we need a N_MEMORY.  We just intrude it as an alias to\nN_HIGH_MEMORY and fix all im-proper usages of N_HIGH_MEMORY in late\npatches.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be49a6e13537f32f85bd8c4ba04317ca36ca60ff",
      "tree": "00f629b7be8203ce1fef100ab8875e291033dc5d",
      "parents": [
        "c8bf2d8ba4fbc093de7c0d192fe5d2531f14b8b9"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Wed Dec 12 13:51:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "mm: use migrate_prep() instead of migrate_prep_local()\n\n__alloc_contig_migrate_range() should use all possible ways to get all the\npages migrated from the given memory range, so pruning per-cpu lru lists\nfor all CPUs is required, regadless the cost of such operation.  Otherwise\nsome pages which got stuck at per-cpu lru list might get missed by\nmigration procedure causing the contiguous allocation to fail.\n\nReported-by: SeongHwan Yoon \u003csunghwan.yun@samsung.com\u003e\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c8bf2d8ba4fbc093de7c0d192fe5d2531f14b8b9",
      "tree": "0b26144dd758cc6cdceee1b1d2972bfab76b094c",
      "parents": [
        "3ea41e6210fea3b234b6cb3e9443e75975850bbf"
      ],
      "author": {
        "name": "Thierry Reding",
        "email": "thierry.reding@avionic-design.de",
        "time": "Wed Dec 12 13:51:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "mm: compaction: Fix compiler warning\n\ncompact_capture_page() is only used if compaction is enabled so it should\nbe moved into the corresponding #ifdef.\n\nSigned-off-by: Thierry Reding \u003cthierry.reding@avionic-design.de\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3ea41e6210fea3b234b6cb3e9443e75975850bbf",
      "tree": "1c8490271a6cffa9b43858e0f29d6ddab0122fac",
      "parents": [
        "79da5407eeadc740fbf4b45d6df7d7f8e6adaf2c"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:51:14 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "thp: avoid race on multiple parallel page faults to the same page\n\npmd value is stable only with mm-\u003epage_table_lock taken. After taking\nthe lock we need to check that nobody modified the pmd before changing it.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: Bob Liu \u003clliubbo@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79da5407eeadc740fbf4b45d6df7d7f8e6adaf2c",
      "tree": "a9f1ca92b2711bb84a4707c904fcada24614d60e",
      "parents": [
        "d8a8e1f0da3d29d7268b3300c96a059d63901b76"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:51:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "thp: introduce sysfs knob to disable huge zero page\n\nBy default kernel tries to use huge zero page on read page fault.  It\u0027s\npossible to disable huge zero page by writing 0 or enable it back by\nwriting 1:\n\necho 0 \u003e/sys/kernel/mm/transparent_hugepage/khugepaged/use_zero_page\necho 1 \u003e/sys/kernel/mm/transparent_hugepage/khugepaged/use_zero_page\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d8a8e1f0da3d29d7268b3300c96a059d63901b76",
      "tree": "46bd195f1cf4fd66c87f7d16c6bf043ad7fda9ff",
      "parents": [
        "97ae17497e996ff09bf97b6db3b33f7fd4029092"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:51:09 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:32 2012 -0800"
      },
      "message": "thp, vmstat: implement HZP_ALLOC and HZP_ALLOC_FAILED events\n\nhzp_alloc is incremented every time a huge zero page is successfully\n\tallocated. It includes allocations which where dropped due\n\trace with other allocation. Note, it doesn\u0027t count every map\n\tof the huge zero page, only its allocation.\n\nhzp_alloc_failed is incremented if kernel fails to allocate huge zero\n\tpage and falls back to using small pages.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97ae17497e996ff09bf97b6db3b33f7fd4029092",
      "tree": "688ef847ee8114475d2da141a2ab054c5f13f52a",
      "parents": [
        "78ca0e679203bbf74f8febd9725a1c8dd083d073"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:51:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: implement refcounting for huge zero page\n\nH.  Peter Anvin doesn\u0027t like huge zero page which sticks in memory forever\nafter the first allocation.  Here\u0027s implementation of lockless refcounting\nfor huge zero page.\n\nWe have two basic primitives: {get,put}_huge_zero_page(). They\nmanipulate reference counter.\n\nIf counter is 0, get_huge_zero_page() allocates a new huge page and takes\ntwo references: one for caller and one for shrinker.  We free the page\nonly in shrinker callback if counter is 1 (only shrinker has the\nreference).\n\nput_huge_zero_page() only decrements counter.  Counter is never zero in\nput_huge_zero_page() since shrinker holds on reference.\n\nFreeing huge zero page in shrinker callback helps to avoid frequent\nallocate-free.\n\nRefcounting has cost.  On 4 socket machine I observe ~1% slowdown on\nparallel (40 processes) read page faulting comparing to lazy huge page\nallocation.  I think it\u0027s pretty reasonable for synthetic benchmark.\n\n[lliubbo@gmail.com: fix mismerge]\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78ca0e679203bbf74f8febd9725a1c8dd083d073",
      "tree": "6b2541d8cb1ee2697eb12a299447e5afc78f830c",
      "parents": [
        "80371957f09814d25c38733d2d08de47f59a13c2"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:51:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: lazy huge zero page allocation\n\nInstead of allocating huge zero page on hugepage_init() we can postpone it\nuntil first huge zero page map. It saves memory if THP is not in use.\n\ncmpxchg() is used to avoid race on huge_zero_pfn initialization.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80371957f09814d25c38733d2d08de47f59a13c2",
      "tree": "2ebdedfa3a10af22941e44729f1c4c2623e8da74",
      "parents": [
        "c5a647d09fe9fc3e0241c89845cf8e6220b916f5"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:51:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: setup huge zero page on non-write page fault\n\nAll code paths seems covered. Now we can map huge zero page on read page\nfault.\n\nWe setup it in do_huge_pmd_anonymous_page() if area around fault address\nis suitable for THP and we\u0027ve got read page fault.\n\nIf we fail to setup huge zero page (ENOMEM) we fallback to\nhandle_pte_fault() as we normally do in THP.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c5a647d09fe9fc3e0241c89845cf8e6220b916f5",
      "tree": "6d436d79bfb11b202da4de02a7cd1e6e3ee38847",
      "parents": [
        "e180377f1ae48b3cbc559c9875d9b038f7f000c6"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:51:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: implement splitting pmd for huge zero page\n\nWe can\u0027t split huge zero page itself (and it\u0027s bug if we try), but we\ncan split the pmd which points to it.\n\nOn splitting the pmd we create a table with all ptes set to normal zero\npage.\n\n[akpm@linux-foundation.org: fix build error]\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e180377f1ae48b3cbc559c9875d9b038f7f000c6",
      "tree": "c51e0db181acc0372479bce5cd68b99abca7d8bb",
      "parents": [
        "cad7f613c4d010e1d0f05c9a4fb33c7ae40ba115"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:50:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: change split_huge_page_pmd() interface\n\nPass vma instead of mm and add address parameter.\n\nIn most cases we already have vma on the stack. We provides\nsplit_huge_page_pmd_mm() for few cases when we have mm, but not vma.\n\nThis change is preparation to huge zero pmd splitting implementation.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cad7f613c4d010e1d0f05c9a4fb33c7ae40ba115",
      "tree": "9d3f13bfbec1215e2427bb1ef74d8471d4e0b995",
      "parents": [
        "93b4796dede916de74b21fbd637588da6a99a7ec"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:50:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: change_huge_pmd(): make sure we don\u0027t try to make a page writable\n\nmprotect core never tries to make page writable using change_huge_pmd().\nLet\u0027s add an assert that the assumption is true.  It\u0027s important to be\nsure we will not make huge zero page writable.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "93b4796dede916de74b21fbd637588da6a99a7ec",
      "tree": "3833de6051bb1b8d361a614743aafa56b43902e1",
      "parents": [
        "fc9fe822f7112db23e51e2be3b886f5d8f0afdb6"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:50:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: do_huge_pmd_wp_page(): handle huge zero page\n\nOn write access to huge zero page we alloc a new huge page and clear it.\n\nIf ENOMEM, graceful fallback: we create a new pmd table and set pte around\nfault address to newly allocated normal (4k) page.  All other ptes in the\npmd set to normal zero page.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc9fe822f7112db23e51e2be3b886f5d8f0afdb6",
      "tree": "5578922a977e964116767ffaee84533836a32128",
      "parents": [
        "479f0abbfd253d1117a35c1df12755d27a2a0705"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:50:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: copy_huge_pmd(): copy huge zero page\n\nIt\u0027s easy to copy huge zero page. Just set destination pmd to huge zero\npage.\n\nIt\u0027s safe to copy huge zero page since we have none yet :-p\n\n[rientjes@google.com: fix comment]\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "479f0abbfd253d1117a35c1df12755d27a2a0705",
      "tree": "28c90a3fb6ae4e6bc60f06b2b540fea8cbb155db",
      "parents": [
        "4a6c1297268c917e9c50701906ba2f7e06812299"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:50:50 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: zap_huge_pmd(): zap huge zero pmd\n\nWe don\u0027t have a mapped page to zap in huge zero page case.  Let\u0027s just clear\npmd and remove it from tlb.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a6c1297268c917e9c50701906ba2f7e06812299",
      "tree": "c8fecd1f6b20fe029f726bf8724dcfb68a3fcc60",
      "parents": [
        "3f7dfe24b84c0ad698c461fc9c4ba3544bbfcebf"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Wed Dec 12 13:50:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "thp: huge zero page: basic preparation\n\nDuring testing I noticed big (up to 2.5 times) memory consumption overhead\non some workloads (e.g.  ft.A from NPB) if THP is enabled.\n\nThe main reason for that big difference is lacking zero page in THP case.\nWe have to allocate a real page on read page fault.\n\nA program to demonstrate the issue:\n#include \u003cassert.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cunistd.h\u003e\n\n#define MB 1024*1024\n\nint main(int argc, char **argv)\n{\n        char *p;\n        int i;\n\n        posix_memalign((void **)\u0026p, 2 * MB, 200 * MB);\n        for (i \u003d 0; i \u003c 200 * MB; i+\u003d 4096)\n                assert(p[i] \u003d\u003d 0);\n        pause();\n        return 0;\n}\n\nWith thp-never RSS is about 400k, but with thp-always it\u0027s 200M.  After\nthe patcheset thp-always RSS is 400k too.\n\nDesign overview.\n\nHuge zero page (hzp) is a non-movable huge page (2M on x86-64) filled with\nzeros.  The way how we allocate it changes in the patchset:\n\n- [01/10] simplest way: hzp allocated on boot time in hugepage_init();\n- [09/10] lazy allocation on first use;\n- [10/10] lockless refcounting + shrinker-reclaimable hzp;\n\nWe setup it in do_huge_pmd_anonymous_page() if area around fault address\nis suitable for THP and we\u0027ve got read page fault.  If we fail to setup\nhzp (ENOMEM) we fallback to handle_pte_fault() as we normally do in THP.\n\nOn wp fault to hzp we allocate real memory for the huge page and clear it.\n If ENOMEM, graceful fallback: we create a new pmd table and set pte\naround fault address to newly allocated normal (4k) page.  All other ptes\nin the pmd set to normal zero page.\n\nWe cannot split hzp (and it\u0027s bug if we try), but we can split the pmd\nwhich points to it.  On splitting the pmd we create a table with all ptes\nset to normal zero page.\n\n\u003d\u003d\u003d\n\nBy hpa\u0027s request I\u0027ve tried alternative approach for hzp implementation\n(see Virtual huge zero page patchset): pmd table with all entries set to\nzero page.  This way should be more cache friendly, but it increases TLB\npressure.\n\nThe problem with virtual huge zero page: it requires per-arch enabling.\nWe need a way to mark that pmd table has all ptes set to zero page.\n\nSome numbers to compare two implementations (on 4s Westmere-EX):\n\nMirobenchmark1\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\ntest:\n        posix_memalign((void **)\u0026p, 2 * MB, 8 * GB);\n        for (i \u003d 0; i \u003c 100; i++) {\n                assert(memcmp(p, p + 4*GB, 4*GB) \u003d\u003d 0);\n                asm volatile (\"\": : :\"memory\");\n        }\n\nhzp:\n Performance counter stats for \u0027./test_memcmp\u0027 (5 runs):\n\n      32356.272845 task-clock                #    0.998 CPUs utilized            ( +-  0.13% )\n                40 context-switches          #    0.001 K/sec                    ( +-  0.94% )\n                 0 CPU-migrations            #    0.000 K/sec\n             4,218 page-faults               #    0.130 K/sec                    ( +-  0.00% )\n    76,712,481,765 cycles                    #    2.371 GHz                      ( +-  0.13% ) [83.31%]\n    36,279,577,636 stalled-cycles-frontend   #   47.29% frontend cycles idle     ( +-  0.28% ) [83.35%]\n     1,684,049,110 stalled-cycles-backend    #    2.20% backend  cycles idle     ( +-  2.96% ) [66.67%]\n   134,355,715,816 instructions              #    1.75  insns per cycle\n                                             #    0.27  stalled cycles per insn  ( +-  0.10% ) [83.35%]\n    13,526,169,702 branches                  #  418.039 M/sec                    ( +-  0.10% ) [83.31%]\n         1,058,230 branch-misses             #    0.01% of all branches          ( +-  0.91% ) [83.36%]\n\n      32.413866442 seconds time elapsed                                          ( +-  0.13% )\n\nvhzp:\n Performance counter stats for \u0027./test_memcmp\u0027 (5 runs):\n\n      30327.183829 task-clock                #    0.998 CPUs utilized            ( +-  0.13% )\n                38 context-switches          #    0.001 K/sec                    ( +-  1.53% )\n                 0 CPU-migrations            #    0.000 K/sec\n             4,218 page-faults               #    0.139 K/sec                    ( +-  0.01% )\n    71,964,773,660 cycles                    #    2.373 GHz                      ( +-  0.13% ) [83.35%]\n    31,191,284,231 stalled-cycles-frontend   #   43.34% frontend cycles idle     ( +-  0.40% ) [83.32%]\n       773,484,474 stalled-cycles-backend    #    1.07% backend  cycles idle     ( +-  6.61% ) [66.67%]\n   134,982,215,437 instructions              #    1.88  insns per cycle\n                                             #    0.23  stalled cycles per insn  ( +-  0.11% ) [83.32%]\n    13,509,150,683 branches                  #  445.447 M/sec                    ( +-  0.11% ) [83.34%]\n         1,017,667 branch-misses             #    0.01% of all branches          ( +-  1.07% ) [83.32%]\n\n      30.381324695 seconds time elapsed                                          ( +-  0.13% )\n\nMirobenchmark2\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\ntest:\n        posix_memalign((void **)\u0026p, 2 * MB, 8 * GB);\n        for (i \u003d 0; i \u003c 1000; i++) {\n                char *_p \u003d p;\n                while (_p \u003c p+4*GB) {\n                        assert(*_p \u003d\u003d *(_p+4*GB));\n                        _p +\u003d 4096;\n                        asm volatile (\"\": : :\"memory\");\n                }\n        }\n\nhzp:\n Performance counter stats for \u0027taskset -c 0 ./test_memcmp2\u0027 (5 runs):\n\n       3505.727639 task-clock                #    0.998 CPUs utilized            ( +-  0.26% )\n                 9 context-switches          #    0.003 K/sec                    ( +-  4.97% )\n             4,384 page-faults               #    0.001 M/sec                    ( +-  0.00% )\n     8,318,482,466 cycles                    #    2.373 GHz                      ( +-  0.26% ) [33.31%]\n     5,134,318,786 stalled-cycles-frontend   #   61.72% frontend cycles idle     ( +-  0.42% ) [33.32%]\n     2,193,266,208 stalled-cycles-backend    #   26.37% backend  cycles idle     ( +-  5.51% ) [33.33%]\n     9,494,670,537 instructions              #    1.14  insns per cycle\n                                             #    0.54  stalled cycles per insn  ( +-  0.13% ) [41.68%]\n     2,108,522,738 branches                  #  601.451 M/sec                    ( +-  0.09% ) [41.68%]\n           158,746 branch-misses             #    0.01% of all branches          ( +-  1.60% ) [41.71%]\n     3,168,102,115 L1-dcache-loads\n          #  903.693 M/sec                    ( +-  0.11% ) [41.70%]\n     1,048,710,998 L1-dcache-misses\n         #   33.10% of all L1-dcache hits    ( +-  0.11% ) [41.72%]\n     1,047,699,685 LLC-load\n                 #  298.854 M/sec                    ( +-  0.03% ) [33.38%]\n             2,287 LLC-misses\n               #    0.00% of all LL-cache hits     ( +-  8.27% ) [33.37%]\n     3,166,187,367 dTLB-loads\n               #  903.147 M/sec                    ( +-  0.02% ) [33.35%]\n         4,266,538 dTLB-misses\n              #    0.13% of all dTLB cache hits   ( +-  0.03% ) [33.33%]\n\n       3.513339813 seconds time elapsed                                          ( +-  0.26% )\n\nvhzp:\n Performance counter stats for \u0027taskset -c 0 ./test_memcmp2\u0027 (5 runs):\n\n      27313.891128 task-clock                #    0.998 CPUs utilized            ( +-  0.24% )\n                62 context-switches          #    0.002 K/sec                    ( +-  0.61% )\n             4,384 page-faults               #    0.160 K/sec                    ( +-  0.01% )\n    64,747,374,606 cycles                    #    2.370 GHz                      ( +-  0.24% ) [33.33%]\n    61,341,580,278 stalled-cycles-frontend   #   94.74% frontend cycles idle     ( +-  0.26% ) [33.33%]\n    56,702,237,511 stalled-cycles-backend    #   87.57% backend  cycles idle     ( +-  0.07% ) [33.33%]\n    10,033,724,846 instructions              #    0.15  insns per cycle\n                                             #    6.11  stalled cycles per insn  ( +-  0.09% ) [41.65%]\n     2,190,424,932 branches                  #   80.195 M/sec                    ( +-  0.12% ) [41.66%]\n         1,028,630 branch-misses             #    0.05% of all branches          ( +-  1.50% ) [41.66%]\n     3,302,006,540 L1-dcache-loads\n          #  120.891 M/sec                    ( +-  0.11% ) [41.68%]\n       271,374,358 L1-dcache-misses\n         #    8.22% of all L1-dcache hits    ( +-  0.04% ) [41.66%]\n        20,385,476 LLC-load\n                 #    0.746 M/sec                    ( +-  1.64% ) [33.34%]\n            76,754 LLC-misses\n               #    0.38% of all LL-cache hits     ( +-  2.35% ) [33.34%]\n     3,309,927,290 dTLB-loads\n               #  121.181 M/sec                    ( +-  0.03% ) [33.34%]\n     2,098,967,427 dTLB-misses\n              #   63.41% of all dTLB cache hits   ( +-  0.03% ) [33.34%]\n\n      27.364448741 seconds time elapsed                                          ( +-  0.24% )\n\n\u003d\u003d\u003d\n\nI personally prefer implementation present in this patchset. It doesn\u0027t\ntouch arch-specific code.\n\nThis patch:\n\nHuge zero page (hzp) is a non-movable huge page (2M on x86-64) filled with\nzeros.\n\nFor now let\u0027s allocate the page on hugepage_init().  We\u0027ll switch to lazy\nallocation later.\n\nWe are not going to map the huge zero page until we can handle it properly\non all code paths.\n\nis_huge_zero_{pfn,pmd}() functions will be used by following patches to\ncheck whether the pfn/pmd is huge zero page.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3f7dfe24b84c0ad698c461fc9c4ba3544bbfcebf",
      "tree": "b05abd7ad979dc4060c5e89e4078aa827e7efe82",
      "parents": [
        "2d7a695604556913d9ef1ead47881b804d6c52b4"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "js1304@gmail.com",
        "time": "Wed Dec 12 13:50:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:31 2012 -0800"
      },
      "message": "bootmem: remove alloc_arch_preferred_bootmem()\n\nThe name of this function is not suitable, and removing the function and\nopen-coding it into each call sites makes the code more understandable.\n\nAdditionally, we shouldn\u0027t do an allocation from bootmem when\nslab_is_available(), so directly return kmalloc()\u0027s return value.\n\nSigned-off-by: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2d7a695604556913d9ef1ead47881b804d6c52b4",
      "tree": "05685ea8ebf8c0dd14d1d6ec2d3b72df66c82810",
      "parents": [
        "9977d9b379cb77e0f67bd6f4563618106e58e11d"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "js1304@gmail.com",
        "time": "Wed Dec 12 13:50:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 17:38:30 2012 -0800"
      },
      "message": "bootmem: remove not implemented function call, bootmem_arch_preferred_node()\n\nThere is no implementation of bootmem_arch_preferred_node() and a call to\nthis function will cause a compilation error.  So remove it.\n\nSigned-off-by: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9977d9b379cb77e0f67bd6f4563618106e58e11d",
      "tree": "0191accfddf578edb52c69c933d64521e3dce297",
      "parents": [
        "cf4af01221579a4e895f43dbfc47598fbfc5a731",
        "541880d9a2c7871f6370071d55aa6662d329c51e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:22:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:22:13 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull big execve/kernel_thread/fork unification series from Al Viro:\n \"All architectures are converted to new model.  Quite a bit of that\n  stuff is actually shared with architecture trees; in such cases it\u0027s\n  literally shared branch pulled by both, not a cherry-pick.\n\n  A lot of ugliness and black magic is gone (-3KLoC total in this one):\n\n   - kernel_thread()/kernel_execve()/sys_execve() redesign.\n\n     We don\u0027t do syscalls from kernel anymore for either kernel_thread()\n     or kernel_execve():\n\n     kernel_thread() is essentially clone(2) with callback run before we\n     return to userland, the callbacks either never return or do\n     successful do_execve() before returning.\n\n     kernel_execve() is a wrapper for do_execve() - it doesn\u0027t need to\n     do transition to user mode anymore.\n\n     As a result kernel_thread() and kernel_execve() are\n     arch-independent now - they live in kernel/fork.c and fs/exec.c\n     resp.  sys_execve() is also in fs/exec.c and it\u0027s completely\n     architecture-independent.\n\n   - daemonize() is gone, along with its parts in fs/*.c\n\n   - struct pt_regs * is no longer passed to do_fork/copy_process/\n     copy_thread/do_execve/search_binary_handler/-\u003eload_binary/do_coredump.\n\n   - sys_fork()/sys_vfork()/sys_clone() unified; some architectures\n     still need wrappers (ones with callee-saved registers not saved in\n     pt_regs on syscall entry), but the main part of those suckers is in\n     kernel/fork.c now.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (113 commits)\n  do_coredump(): get rid of pt_regs argument\n  print_fatal_signal(): get rid of pt_regs argument\n  ptrace_signal(): get rid of unused arguments\n  get rid of ptrace_signal_deliver() arguments\n  new helper: signal_pt_regs()\n  unify default ptrace_signal_deliver\n  flagday: kill pt_regs argument of do_fork()\n  death to idle_regs()\n  don\u0027t pass regs to copy_process()\n  flagday: don\u0027t pass regs to copy_thread()\n  bfin: switch to generic vfork, get rid of pointless wrappers\n  xtensa: switch to generic clone()\n  openrisc: switch to use of generic fork and clone\n  unicore32: switch to generic clone(2)\n  score: switch to generic fork/vfork/clone\n  c6x: sanitize copy_thread(), get rid of clone(2) wrapper, switch to generic clone()\n  take sys_fork/sys_vfork/sys_clone prototypes to linux/syscalls.h\n  mn10300: switch to generic fork/vfork/clone\n  h8300: switch to generic fork/vfork/clone\n  tile: switch to generic clone()\n  ...\n\nConflicts:\n\tarch/microblaze/include/asm/Kbuild\n"
    },
    {
      "commit": "cf4af01221579a4e895f43dbfc47598fbfc5a731",
      "tree": "adc48fdc6ffb9d3d2a32a0f83df9e66066549963",
      "parents": [
        "d027db132b395dabfac208e52a7e510e441bb9d2",
        "006309132f57ccc20dd69e971e2041ebd2cbb7e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:14:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:14:06 2012 -0800"
      },
      "message": "Merge tag \u0027boards\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC board updates from Olof Johansson:\n \"This branch contains a set of various board updates for ARM platforms.\n\n  A few shmobile platforms that are stale have been removed, some\n  defconfig updates for various boards selecting new features such as\n  pinctrl subsystem support, and various updates enabling peripherals,\n  etc.\"\n\nFix up conflicts mostly as per Olof.\n\n* tag \u0027boards\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (58 commits)\n  ARM: S3C64XX: Add dummy supplies for Glenfarclas LDOs\n  ARM: S3C64XX: Add registration of WM2200 Bells device on Cragganmore\n  ARM: kirkwood: Add Plat\u0027Home OpenBlocks A6 support\n  ARM: Dove: update defconfig\n  ARM: Kirkwood: update defconfig for new boards\n  arm: orion5x: add DT related options in defconfig\n  arm: orion5x: convert \u0027LaCie Ethernet Disk mini v2\u0027 to Device Tree\n  arm: orion5x: basic Device Tree support\n  arm: orion5x: mechanical defconfig update\n  ARM: kirkwood: Add support for the MPL CEC4\n  arm: kirkwood: add support for ZyXEL NSA310\n  ARM: Kirkwood: new board USI Topkick\n  ARM: kirkwood: use gpio-fan DT binding on lsxl\n  ARM: Kirkwood: add Netspace boards to defconfig\n  ARM: kirkwood: DT board setup for Network Space Mini v2\n  ARM: kirkwood: DT board setup for Network Space Lite v2\n  ARM: kirkwood: DT board setup for Network Space v2 and parents\n  leds: leds-ns2: add device tree binding\n  ARM: Kirkwood: Enable the second I2C bus\n  ARM: mmp: select pinctrl driver\n  ...\n"
    },
    {
      "commit": "d027db132b395dabfac208e52a7e510e441bb9d2",
      "tree": "24b055b2385f9848e77e646ce475991d8675c3c4",
      "parents": [
        "d01e4afdbb65e030fd6f1f96c30a558e2eb0f279",
        "5faf7cbb848da827f6ea1458b5a1c26a44e7510a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:05:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 12:05:15 2012 -0800"
      },
      "message": "Merge tag \u0027soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC updates from Olof Johansson:\n \"This contains the bulk of new SoC development for this merge window.\n\n  Two new platforms have been added, the sunxi platforms (Allwinner A1x\n  SoCs) by Maxime Ripard, and a generic Broadcom platform for a new\n  series of ARMv7 platforms from them, where the hope is that we can\n  keep the platform code generic enough to have them all share one mach\n  directory.  The new Broadcom platform is contributed by Christian\n  Daudt.\n\n  Highbank has grown support for Calxeda\u0027s next generation of hardware,\n  ECX-2000.\n\n  clps711x has seen a lot of cleanup from Alexander Shiyan, and he\u0027s\n  also taken on maintainership of the platform.\n\n  Beyond this there has been a bunch of work from a number of people on\n  converting more platforms to IRQ domains, pinctrl conversion, cleanup\n  and general feature enablement across most of the active platforms.\"\n\nFix up trivial conflicts as per Olof.\n\n* tag \u0027soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (174 commits)\n  mfd: vexpress-sysreg: Remove LEDs code\n  irqchip: irq-sunxi: Add terminating entry for sunxi_irq_dt_ids\n  clocksource: sunxi_timer: Add terminating entry for sunxi_timer_dt_ids\n  irq: versatile: delete dangling variable\n  ARM: sunxi: add missing include for mdelay()\n  ARM: EXYNOS: Avoid early use of of_machine_is_compatible()\n  ARM: dts: add node for PL330 MDMA1 controller for exynos4\n  ARM: EXYNOS: Add support for secondary CPU bring-up on Exynos4412\n  ARM: EXYNOS: add UART3 to DEBUG_LL ports\n  ARM: S3C24XX: Add clkdev entry for camif-upll clock\n  ARM: SAMSUNG: Add s3c24xx/s3c64xx CAMIF GPIO setup helpers\n  ARM: sunxi: Add missing sun4i.dtsi file\n  pinctrl: samsung: Do not initialise statics to 0\n  ARM i.MX6: remove gate_mask from pllv3\n  ARM i.MX6: Fix ethernet PLL clocks\n  ARM i.MX6: rename PLLs according to datasheet\n  ARM i.MX6: Add pwm support\n  ARM i.MX51: Add pwm support\n  ARM i.MX53: Add pwm support\n  ARM: mx5: Replace clk_register_clkdev with clock DT lookup\n  ...\n"
    },
    {
      "commit": "d01e4afdbb65e030fd6f1f96c30a558e2eb0f279",
      "tree": "02ef82b2740cf93a98199eded5ef765fa6e03052",
      "parents": [
        "8287361abca36504da813638310d2547469283eb",
        "794b175fc0c0c4844dbb7b137a73bbfd01f6c608"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 11:51:39 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 11:51:39 2012 -0800"
      },
      "message": "Merge tag \u0027cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC cleanups on various subarchitectures from Olof Johansson:\n \"Cleanup patches for various ARM platforms and some of their associated\n  drivers.  There\u0027s also a branch in here that enables Freescale i.MX to\n  be part of the multiplatform support -- the first \"big\" SoC that is\n  moved over (more multiplatform work comes in a separate branch later\n  during the merge window).\"\n\nConflicts fixed as per Olof, including a silent semantic one in\narch/arm/mach-omap2/board-generic.c (omap_prcm_restart() was renamed to\nomap3xxx_restart(), and a new user of the old name was added).\n\n* tag \u0027cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (189 commits)\n  ARM: omap: fix typo on timer cleanup\n  ARM: EXYNOS: Remove unused regs-mem.h file\n  ARM: EXYNOS: Remove unused non-dt support for dwmci controller\n  ARM: Kirkwood: Use hw_pci.ops instead of hw_pci.scan\n  ARM: OMAP3: cm-t3517: use GPTIMER for system clock\n  ARM: OMAP2+: timer: remove CONFIG_OMAP_32K_TIMER\n  ARM: SAMSUNG: use devm_ functions for ADC driver\n  ARM: EXYNOS: no duplicate mask/unmask in eint0_15\n  ARM: S3C24XX: SPI clock channel setup is fixed for S3C2443\n  ARM: EXYNOS: Remove i2c0 resource information and setting of device names\n  ARM: Kirkwood: checkpatch cleanups\n  ARM: Kirkwood: Fix sparse warnings.\n  ARM: Kirkwood: Remove unused includes\n  ARM: kirkwood: cleanup lsxl board includes\n  ARM: integrator: use BUG_ON where possible\n  ARM: integrator: push down SC dependencies\n  ARM: integrator: delete static UART1 mapping\n  ARM: integrator: delete SC mapping on the CP\n  ARM: integrator: remove static CP syscon mapping\n  ARM: integrator: remove static AP syscon mapping\n  ...\n"
    },
    {
      "commit": "8287361abca36504da813638310d2547469283eb",
      "tree": "8d98e9a910885efdb09ae5390a3ae44040557e2f",
      "parents": [
        "2989950cea13711f0cc573c26cde8fe08a36be03",
        "8556650dd3370a927217f16444aac5cc0c71e61b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 11:45:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 11:45:16 2012 -0800"
      },
      "message": "Merge tag \u0027headers\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC Header cleanups from Olof Johansson:\n \"This is a collection of header file cleanups, mostly for OMAP and\n  AT91, that keeps moving the platforms in the direction of\n  multiplatform by removing the need for mach-dependent header files\n  used in drivers and other places.\"\n\nFix up mostly trivial conflicts as per Olof.\n\n* tag \u0027headers\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (106 commits)\n  ARM: OMAP2+: Move iommu/iovmm headers to platform_data\n  ARM: OMAP2+: Make some definitions local\n  ARM: OMAP2+: Move iommu2 to drivers/iommu/omap-iommu2.c\n  ARM: OMAP2+: Move plat/iovmm.h to include/linux/omap-iommu.h\n  ARM: OMAP2+: Move iopgtable header to drivers/iommu/\n  ARM: OMAP: Merge iommu2.h into iommu.h\n  atmel: move ATMEL_MAX_UART to platform_data/atmel.h\n  ARM: OMAP: Remove omap_init_consistent_dma_size()\n  arm: at91: move at91rm9200 rtc header in drivers/rtc\n  arm: at91: move reset controller header to arm/arm/mach-at91\n  arm: at91: move pit define to the driver\n  arm: at91: move at91_shdwc.h to arch/arm/mach-at91\n  arm: at91: move board header to arch/arm/mach-at91\n  arn: at91: move at91_tc.h to arch/arm/mach-at91\n  arm: at91 move at91_aic.h to arch/arm/mach-at91\n  arm: at91 move board.h to arch/arm/mach-at91\n  arm: at91: move platfarm_data to include/linux/platform_data/atmel.h\n  arm: at91: drop machine defconfig\n  ARM: OMAP: Remove NEED_MACH_GPIO_H\n  ARM: OMAP: Remove unnecessary mach and plat includes\n  ...\n"
    },
    {
      "commit": "2989950cea13711f0cc573c26cde8fe08a36be03",
      "tree": "33d7f099beb7167c2a404fc4e444bd15769e715a",
      "parents": [
        "b1286f4e9ac14c8973140b338b4d3c5691264d3b",
        "0a9995e46f3f9cb28360c89892b939420ac3fa2e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 11:32:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 11:32:16 2012 -0800"
      },
      "message": "Merge tag \u0027fixes-non-critical\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC Non-critical bug fixes from Olof Johansson:\n \"Simple bug fixes that were not considered important enough for\n  inclusion into 3.7, especially those that arrived late during the\n  merge window.\n\n  There\u0027s also a MAINTAINERS update for the Renesas platforms in here,\n  marking Simon Horman as a maintainer and changing the git url to his\n  tree.\"\n\n* tag \u0027fixes-non-critical\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:\n  Update ARM/SHMOBILE section of MAINTAINERS\n  ARM: Fix Kconfig symbols typo for LEDS\n  ARM: pxa: add dummy SA1100 rtc clock in pxa25x\n  ARM: pxa: fix pxa25x gpio wakeup setting\n  ARM: OMAP4: PM: fix errata handling when CONFIG_PM\u003dn\n  ARM: cns3xxx: drop unnecessary symbol selection\n  ARM: vexpress: fix ll debug code when building multiplatform\n  ARM: OMAP4: retrigger localtimers after re-enabling gic\n  ARM: OMAP4460: Workaround for ROM bug because of CA9 r2pX GIC control register change.\n  ARM: OMAP4: PM: add errata support\n  ARM: davinci: fix return value check by using IS_ERR in tnetv107x_devices_init()\n  ARM: davinci: uncompress.h: bail out if uart not initialized\n  ARM: davinci: serial.h: fix uart number in the comment\n  ARM: davinci: dm644x evm: move pointer dereference below NULL check\n  ARM: vexpress: Make the debug UART detection more specific\n"
    },
    {
      "commit": "b1286f4e9ac14c8973140b338b4d3c5691264d3b",
      "tree": "5a67788bb2276cd67230d24b5a6994ddafb10707",
      "parents": [
        "6facac1ab68fbf9cbad31a9d521f3a0d6aa9470e",
        "0fa5d3996dbda1ee9653c43d39b7ef159fb57ee7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 11:30:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 11:30:02 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull ARM updates from Russell King:\n \"Here\u0027s the updates for ARM for this merge window, which cover quite a\n  variety of areas.\n\n  There\u0027s a bunch of patch series from Will tackling various bugs like\n  the PROT_NONE handling, ASID allocation, cluster boot protocol and\n  ASID TLB tagging updates.\n\n  We move to a build-time sorted exception table rather than doing the\n  sorting at run-time, add support for the secure computing filter, and\n  some updates to the perf code.  We also have sorted out the placement\n  of some headers, fixed some build warnings, fixed some hotplug\n  problems with the per-cpu TWD code.\"\n\n* \u0027for-linus\u0027 of git://git.linaro.org/people/rmk/linux-arm: (73 commits)\n  ARM: 7594/1: Add .smp entry for REALVIEW_EB\n  ARM: 7599/1: head: Remove boot-time HYP mode check for v5 and below\n  ARM: 7598/1: net: bpf_jit_32: fix sp-relative load/stores offsets.\n  ARM: 7595/1: syscall: rework ordering in syscall_trace_exit\n  ARM: 7596/1: mmci: replace readsl/writesl with ioread32_rep/iowrite32_rep\n  ARM: 7597/1: net: bpf_jit_32: fix kzalloc gfp/size mismatch.\n  ARM: 7593/1: nommu: do not enable DCACHE_WORD_ACCESS when !CONFIG_MMU\n  ARM: 7592/1: nommu: prevent generation of kernel unaligned memory accesses\n  ARM: 7591/1: nommu: Enable the strict alignment (CR_A) bit only if ARCH \u003c v6\n  ARM: 7590/1: /proc/interrupts: limit the display of IPIs to online CPUs only\n  ARM: 7587/1: implement optimized percpu variable access\n  ARM: 7589/1: integrator: pass the lm resource to amba\n  ARM: 7588/1: amba: create a resource parent registrator\n  ARM: 7582/2: rename kvm_seq to vmalloc_seq so to avoid confusion with KVM\n  ARM: 7585/1: kernel: fix nr_cpu_ids check in DT logical map init\n  ARM: 7584/1: perf: fix link error when CONFIG_HW_PERF_EVENTS is not selected\n  ARM: gic: use a private mapping for CPU target interfaces\n  ARM: kernel: add logical mappings look-up\n  ARM: kernel: add cpu logical map DT init in setup_arch\n  ARM: kernel: add device tree init map function\n  ...\n"
    },
    {
      "commit": "6facac1ab68fbf9cbad31a9d521f3a0d6aa9470e",
      "tree": "1b00b4d9aab6c5567036157044da98857a84237a",
      "parents": [
        "3f1c64f410e4394ecefadd7a597a7c20368a65fc",
        "c299dd0e2d3dd61d0048a9d9b021aa01f023ed0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 09:24:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 09:24:13 2012 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fixes from Steve French:\n \"This includes a set of misc.  cifs fixes (most importantly some byte\n  range lock related write fixes from Pavel, and some ACL and idmap\n  related fixes from Jeff) but also includes the SMB2.02 dialect\n  enablement, and a key fix for SMB3 mounts.\n\n  Default authentication upgraded to ntlmv2 for cifs (it was already\n  ntlmv2 for smb2)\"\n\n* \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6: (43 commits)\n  CIFS: Fix write after setting a read lock for read oplock files\n  cifs: parse the device name into UNC and prepath\n  cifs: fix up handling of prefixpath\u003d option\n  cifs: clean up handling of unc\u003d option\n  cifs: fix SID binary to string conversion\n  fix \"disabling echoes and oplocks\" on SMB2 mounts\n  Do not send SMB2 signatures for SMB3 frames\n  cifs: deal with id_to_sid embedded sid reply corner case\n  cifs: fix hardcoded default security descriptor length\n  cifs: extra sanity checking for cifs.idmap keys\n  cifs: avoid extra allocation for small cifs.idmap keys\n  cifs: simplify id_to_sid and sid_to_id mapping code\n  CIFS: Fix possible data coherency problem after oplock break to None\n  CIFS: Do not permit write to a range mandatory locked with a read lock\n  cifs: rename cifs_readdir_lookup to cifs_prime_dcache and make it void return\n  cifs: Add CONFIG_CIFS_DEBUG and rename use of CIFS_DEBUG\n  cifs: Make CIFS_DEBUG possible to undefine\n  SMB3 mounts fail with access denied to some servers\n  cifs: Remove unused cEVENT macro\n  cifs: always zero out smb_vol before parsing options\n  ...\n"
    },
    {
      "commit": "3f1c64f410e4394ecefadd7a597a7c20368a65fc",
      "tree": "10f15d6a222b15a34831f2d7d1e3ac26f1436638",
      "parents": [
        "22a40fd9a60388aec8106b0baffc8f59f83bb1b4",
        "f9668a09e32ac6d2aa22f44cc310e430a8f4a40f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 09:19:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 09:19:45 2012 -0800"
      },
      "message": "Merge tag \u0027for-linus-v3.8-rc1\u0027 of git://oss.sgi.com/xfs/xfs\n\nPull xfs update from Ben Myers:\n \"There is plenty going on, including the cleanup of xfssyncd, metadata\n  verifiers, CRC infrastructure for the log, tracking of inodes with\n  speculative allocation, a cleanup of xfs_fs_subr.c, fixes for\n  XFS_IOC_ZERO_RANGE, and important fix related to log replay (only\n  update the last_sync_lsn when a transaction completes), a fix for\n  deadlock on AGF buffers, documentation and comment updates, and a few\n  more cleanups and fixes.\n\n  Details:\n   - remove the xfssyncd mess\n   - only update the last_sync_lsn when a transaction completes\n   - zero allocation_args on the kernel stack\n   - fix AGF/alloc workqueue deadlock\n   - silence uninitialised f.file warning\n   - Update inode alloc comments\n   - Update mount options documentation\n   - report projid32bit feature in geometry call\n   - speculative preallocation inode tracking\n   - fix attr tree double split corruption\n   - fix broken error handling in xfs_vm_writepage\n   - drop buffer io reference when a bad bio is built\n   - add more attribute tree trace points\n   - growfs infrastructure changes for 3.8\n   - fs/xfs/xfs_fs_subr.c die die die\n   - add CRC infrastructure\n   - add CRC checks to the log\n   - Remove description of nodelaylog mount option from xfs.txt\n   - inode allocation should use unmapped buffers\n   - byte range granularity for XFS_IOC_ZERO_RANGE\n   - fix direct IO nested transaction deadlock\n   - fix stray dquot unlock when reclaiming dquots\n   - fix sparse reported log CRC endian issue\"\n\nFix up trivial conflict in fs/xfs/xfs_fsops.c due to the same patch\nhaving been applied twice (commits eaef854335ce and 1375cb65e87b: \"xfs:\ngrowfs: don\u0027t read garbage for new secondary superblocks\") with later\nupdates to the affected code in the XFS tree.\n\n* tag \u0027for-linus-v3.8-rc1\u0027 of git://oss.sgi.com/xfs/xfs: (78 commits)\n  xfs: fix sparse reported log CRC endian issue\n  xfs: fix stray dquot unlock when reclaiming dquots\n  xfs: fix direct IO nested transaction deadlock.\n  xfs: byte range granularity for XFS_IOC_ZERO_RANGE\n  xfs: inode allocation should use unmapped buffers.\n  xfs: Remove the description of nodelaylog mount option from xfs.txt\n  xfs: add CRC checks to the log\n  xfs: add CRC infrastructure\n  xfs: convert buffer verifiers to an ops structure.\n  xfs: connect up write verifiers to new buffers\n  xfs: add pre-write metadata buffer verifier callbacks\n  xfs: add buffer pre-write callback\n  xfs: Add verifiers to dir2 data readahead.\n  xfs: add xfs_da_node verification\n  xfs: factor and verify attr leaf reads\n  xfs: factor dir2 leaf read\n  xfs: factor out dir2 data block reading\n  xfs: factor dir2 free block reading\n  xfs: verify dir2 block format buffers\n  xfs: factor dir2 block read operations\n  ...\n"
    },
    {
      "commit": "22a40fd9a60388aec8106b0baffc8f59f83bb1b4",
      "tree": "8dae550ae938aac1d1d8ce25a98ca7642d43a0df",
      "parents": [
        "d206e09036d6201f90b2719484c8a59526c46125",
        "da8c66638ae684c99abcb30e89d2803402e7ca20"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 09:15:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 09:15:45 2012 -0800"
      },
      "message": "Merge tag \u0027dlm-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm\n\nPull dlm updates from David Teigland:\n \"This set fixes some conditions in which value blocks are invalidated,\n  and includes two trivial cleanups.\"\n\n* tag \u0027dlm-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:\n  dlm: fix lvb invalidation conditions\n  fs/dlm: remove CONFIG_EXPERIMENTAL\n  dlm: remove unused variable in *dlm_lowcomms_get_buffer()\n"
    },
    {
      "commit": "d206e09036d6201f90b2719484c8a59526c46125",
      "tree": "84b9057919bcb8cfd1cff47baa5fc74457e77d6d",
      "parents": [
        "fef3ff2eb777e76cfa5ae67591982d902c17139c",
        "15ef4ffaa797034d5ff82844daf8f595d7c6d53c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:18:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:18:24 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup changes from Tejun Heo:\n \"A lot of activities on cgroup side.  The big changes are focused on\n  making cgroup hierarchy handling saner.\n\n   - cgroup_rmdir() had peculiar semantics - it allowed cgroup\n     destruction to be vetoed by individual controllers and tried to\n     drain refcnt synchronously.  The vetoing never worked properly and\n     caused good deal of contortions in cgroup.  memcg was the last\n     reamining user.  Michal Hocko removed the usage and cgroup_rmdir()\n     path has been simplified significantly.  This was done in a\n     separate branch so that the memcg people can base further memcg\n     changes on top.\n\n   - The above allowed cleaning up cgroup lifecycle management and\n     implementation of generic cgroup iterators which are used to\n     improve hierarchy support.\n\n   - cgroup_freezer updated to allow migration in and out of a frozen\n     cgroup and handle hierarchy.  If a cgroup is frozen, all descendant\n     cgroups are frozen.\n\n   - netcls_cgroup and netprio_cgroup updated to handle hierarchy\n     properly.\n\n   - Various fixes and cleanups.\n\n   - Two merge commits.  One to pull in memcg and rmdir cleanups (needed\n     to build iterators).  The other pulled in cgroup/for-3.7-fixes for\n     device_cgroup fixes so that further device_cgroup patches can be\n     stacked on top.\"\n\nFixed up a trivial conflict in mm/memcontrol.c as per Tejun (due to\ncommit bea8c150a7 (\"memcg: fix hotplugged memory zone oops\") in master\ntouching code close to commit 2ef37d3fe4 (\"memcg: Simplify\nmem_cgroup_force_empty_list error handling\") in for-3.8)\n\n* \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (65 commits)\n  cgroup: update Documentation/cgroups/00-INDEX\n  cgroup_rm_file: don\u0027t delete the uncreated files\n  cgroup: remove subsystem files when remounting cgroup\n  cgroup: use cgroup_addrm_files() in cgroup_clear_directory()\n  cgroup: warn about broken hierarchies only after css_online\n  cgroup: list_del_init() on removed events\n  cgroup: fix lockdep warning for event_control\n  cgroup: move list add after list head initilization\n  netprio_cgroup: allow nesting and inherit config on cgroup creation\n  netprio_cgroup: implement netprio[_set]_prio() helpers\n  netprio_cgroup: use cgroup-\u003eid instead of cgroup_netprio_state-\u003eprioidx\n  netprio_cgroup: reimplement priomap expansion\n  netprio_cgroup: shorten variable names in extend_netdev_table()\n  netprio_cgroup: simplify write_priomap()\n  netcls_cgroup: move config inheritance to -\u003ecss_online() and remove .broken_hierarchy marking\n  cgroup: remove obsolete guarantee from cgroup_task_migrate.\n  cgroup: add cgroup-\u003eid\n  cgroup, cpuset: remove cgroup_subsys-\u003epost_clone()\n  cgroup: s/CGRP_CLONE_CHILDREN/CGRP_CPUSET_CLONE_CHILDREN/\n  cgroup: rename -\u003ecreate/post_create/pre_destroy/destroy() to -\u003ecss_alloc/online/offline/free()\n  ...\n"
    },
    {
      "commit": "fef3ff2eb777e76cfa5ae67591982d902c17139c",
      "tree": "70ec1ae7b5db98dfc5efa2adfabf798dfb9e7694",
      "parents": [
        "e7b55b8fcd3a32ba1f95ccd95fb9a11ccfa63563",
        "5479c78ac6f688ea5ea8c49b44cf90ea87b63931"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:15:53 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:15:53 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\nPull percpu changes from Tejun Heo:\n \"Nothing exciting here either.  Joonsoo\u0027s is almost cosmetic.  Cyrill\u0027s\n  patch fixes \"percpu_alloc\" early kernel param handling so that the\n  kernel doesn\u0027t crash when the parameter is specified w/o any argument.\"\n\n* \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  mm, percpu: Make sure percpu_alloc early parameter has an argument\n  percpu: make pcpu_free_chunk() use pcpu_mem_free() instead of kfree()\n"
    },
    {
      "commit": "e7b55b8fcd3a32ba1f95ccd95fb9a11ccfa63563",
      "tree": "04d6191dcc1110074c48d569747e3ac94b595f45",
      "parents": [
        "50851c6248e1a13c45d97c41f6ebcf716093aa5e",
        "3657600040a7279e52252af3f9d7e253f4f49ef0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:15:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 08:15:13 2012 -0800"
      },
      "message": "Merge branch \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue changes from Tejun Heo:\n \"Nothing exciting.  Just two trivial changes.\"\n\n* \u0027for-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: add WARN_ON_ONCE() on CPU number to wq_worker_waking_up()\n  workqueue: trivial fix for return statement in work_busy()\n"
    },
    {
      "commit": "50851c6248e1a13c45d97c41f6ebcf716093aa5e",
      "tree": "792c5721aab6669ca14716a1220222a99c0a3fc3",
      "parents": [
        "99b8f42ee2ab93077154f09d397cdc1dfb15926e",
        "1f53ef17d3ed6c34868cc8e7aa7c1d351c2fdc95"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:57:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:57:13 2012 -0800"
      },
      "message": "Merge branch \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux\n\nPull thermal management update from Zhang Rui:\n \"Highlights:\n\n   - Introduction of thermal policy support, together with three new\n     thermal governors, including step_wise, user_space, fire_share.\n\n   - Introduction of ST-Ericsson db8500_thermal driver and ST-Ericsson\n     db8500_cpufreq_cooling driver.\n\n   - Thermal Kconfig file and Makefile refactor.\n\n   - Fixes for generic thermal layer, generic cpucooling, rcar thermal\n     driver and Exynos thermal driver.\"\n\n* \u0027release\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: (36 commits)\n  Thermal: Fix DEFAULT_THERMAL_GOVERNOR\n  Thermal: fix a NULL pointer dereference when generic thermal layer is built as a module\n  thermal: rcar: add rcar_zone_to_priv() macro\n  thermal: rcar: fixup the unit of temperature\n  thermal: cpu cooling: allow module builds\n  thermal: cpu cooling: use const parameter while registering\n  Thermal: Add ST-Ericsson DB8500 thermal properties and platform data.\n  Thermal: Add ST-Ericsson DB8500 thermal driver.\n  drivers/thermal/Makefile refactor\n  Exynos: Add missing dependency\n  Refactor drivers/thermal/Kconfig\n  thermal: cpu_cooling: Make \u0027notify_device\u0027 static\n  Thermal: Remove the cooling_cpufreq_list.\n  Thermal: fix bug of counting cpu frequencies.\n  Thermal: add indent for code alignment.\n  thermal: rcar_thermal: remove explicitly used devm_kfree/iounap()\n  thermal: user_space: Add missing static storage class specifiers\n  thermal: fair_share: Add missing static storage class specifiers\n  thermal: step_wise: Add missing static storage class specifiers\n  Thermal: Fix oops and unlocking in thermal_sys.c\n  ...\n"
    },
    {
      "commit": "99b8f42ee2ab93077154f09d397cdc1dfb15926e",
      "tree": "5a76a94a568fcf306743f9708b940410fab1ad14",
      "parents": [
        "139353ffbe42ac7abda42f3259c1c374cbf4b779",
        "7c8a2994309214cbb6dba33cd72ec85f91fd6fcd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:55:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:55:48 2012 -0800"
      },
      "message": "Merge tag \u0027regmap-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap\n\nPull regmap updates from Mark Brown:\n \"Quite a few enhancements this time around, helpers and diagnostics for\n  the most part which is good to see:\n\n   - Addition of table based lookups for the register access checks from\n     Davide Ciminaghi, making life easier for drivers with big blocks of\n     similar registers.\n   - Allow drivers to get the irqdomain for regmap irq_chips, allowing\n     the domain to be used with other APIs.\n   - Debug improvements for paged register maps.\n   - Performance improvments for some of the diagnostic infrastructure,\n     very helpful for devices with large register maps.\"\n\n* tag \u0027regmap-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:\n  regmap: debugfs: Cache offsets of valid regions for dump\n  regmap: debugfs: Factor out initial seek\n  regmap: debugfs: Avoid overflows for very small reads\n  regmap: Cache register and value sizes for debugfs\n  regmap: introduce tables for readable/writeable/volatile/precious checks\n  regmap: core: Report registers in hex when we can\u0027t cache\n  regmap: Fix printing of size_t variable\n  regmap: make lock/unlock functions customizable\n  regmap: silence GCC warning\n  regmap: Split raw writes that cross window boundaries\n  regmap: Make return code checks consistent\n  regmap: Factor range lookup out of page selection\n  regmap: Provide debugfs read of register ranges\n  regmap: Factor out debugfs register read\n  regmap: Allow ranges to be named\n  regmap: When we sanity check during range adds say what errors we find\n  regmap: Rename n_ranges to num_ranges\n  regmap: irq: Allow users to retrieve the irq_domain\n"
    },
    {
      "commit": "139353ffbe42ac7abda42f3259c1c374cbf4b779",
      "tree": "64208b3f2432e1e2bff5c09a860cb6065b9a6427",
      "parents": [
        "251a8cfeda7c8a0ff26c62659a2358d3b4ff32df",
        "112f1fc08d0b3f81c594af617d88c0db6ce0873c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:54:53 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:54:53 2012 -0800"
      },
      "message": "Merge tag \u0027please-pull-einj-fix-for-acpi5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras\n\nPull ACPI5 error injection fix from Tony Luck:\n \"Trivial fix for error injection code using ACPI5 version of EINJ\"\n\n* tag \u0027please-pull-einj-fix-for-acpi5\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:\n  ACPI, APEI, EINJ: Add missed ACPI5 support for error trigger table\n"
    },
    {
      "commit": "251a8cfeda7c8a0ff26c62659a2358d3b4ff32df",
      "tree": "8bff8895744c4eb159124a62750e89dadd9d17f8",
      "parents": [
        "70f2836d023237868f2fef3625da84643e5aaf33",
        "f94ec0c0594ef73ab3a2f1f32735aca8ddaf65e2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:50:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:50:59 2012 -0800"
      },
      "message": "Merge tag \u0027please-pull-pstore_mevent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux\n\nPull pstore fixes from Tony Luck:\n \"Patch series to allow EFI variable backend to pstore to hold multiple\n  records.\"\n\n* tag \u0027please-pull-pstore_mevent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:\n  efi_pstore: Add a format check for an existing variable name at erasing time\n  efi_pstore: Add a format check for an existing variable name at reading time\n  efi_pstore: Add a sequence counter to a variable name\n  efi_pstore: Add ctime to argument of erase callback\n  efi_pstore: Remove a logic erasing entries from a write callback to hold multiple logs\n  efi_pstore: Add a logic erasing entries to an erase callback\n  efi_pstore: Check remaining space with QueryVariableInfo() before writing data\n"
    },
    {
      "commit": "70f2836d023237868f2fef3625da84643e5aaf33",
      "tree": "982331c1a7980003123566d1ad7280d3a2c86e42",
      "parents": [
        "97ebe8f55ae99059c0ad3d3be5c0417647f5e3e0",
        "4fafc8c21487f6b5259d462e9bee98661a02390d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:50:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:50:18 2012 -0800"
      },
      "message": "Merge tag \u0027please-pull-misc-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux\n\nPull ia64 fix from Tony Luck:\n \"Miscellaneous ia64 fix for 3.8.  Just need to avoid a pending\n  namespace collision from other work being merged.\"\n\n* tag \u0027please-pull-misc-3.8\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:\n  [IA64] Resolve name space collision for cache_show()\n"
    },
    {
      "commit": "97ebe8f55ae99059c0ad3d3be5c0417647f5e3e0",
      "tree": "fa87910a23cf2ba0f245e49c055fa7d646fce830",
      "parents": [
        "d07e43d70eef15a44a2c328a913d8d633a90e088",
        "d19766ec52218007d45888860dd40a24bb7f6651"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:49:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:49:02 2012 -0800"
      },
      "message": "Merge tag \u0027arm64-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64\n\nPull ARM64 updates from Catalin Marinas:\n\n - Generic execve, kernel_thread, fork/vfork/clone.\n\n - Preparatory patches for KVM support (initialising EL2 mode for later\n   installing KVM support, hypervisor stub).\n\n - Signal handling corner case fix (alternative signal stack set up for\n   a SEGV handler, which is raised in response to RLIMIT_STACK being\n   reached).\n\n - Sub-nanosecond timer error fix.\n\n* tag \u0027arm64-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: (30 commits)\n  arm64: Update the MAINTAINERS entry\n  arm64: compat for clock_adjtime(2) is miswired\n  arm64: move FP-SIMD save/restore code to a macro\n  arm64: hyp: initialize vttbr_el2 to zero\n  arm64: add hypervisor stub\n  arm64: record boot mode when entering the kernel\n  arm64: move vector entry macro to assembler.h\n  arm64: add AArch32 execution modes to ptrace.h\n  arm64: expand register mapping between AArch32 and AArch64\n  arm64: generic timer: use virtual counter instead of physical at EL0\n  arm64: vdso: defer shifting of nanosecond component of timespec\n  arm64: vdso: rework __do_get_tspec register allocation and return shift\n  arm64: vdso: check sequence counter even for coarse realtime operations\n  arm64: vdso: fix clocksource mask when extracting bottom 56 bits\n  ARM64: Remove incorrect Kconfig symbol HAVE_SPARSE_IRQ\n  Documentation: Fixes a word in Documentation/arm64/memory.txt\n  arm64: Make !dirty ptes read-only\n  arm64: Convert empty flush_cache_{mm,page} functions to static inline\n  arm64: signal: let the compiler inline compat_get_sigframe\n  arm64: signal: return struct rt_sigframe from get_sigframe\n  ...\n\nConflicts:\n\tarch/arm64/include/asm/unistd32.h\n"
    },
    {
      "commit": "d07e43d70eef15a44a2c328a913d8d633a90e088",
      "tree": "7a7cac7c90f4b8f19edfb2aecfa27d77e266eafc",
      "parents": [
        "1ebaf4f4e6912199f8a4e30ba3ab55da2b71bcdf",
        "3af08bd7adb09b0806c51c06b87db08cc7075568"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:45:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 12 07:45:16 2012 -0800"
      },
      "message": "Merge branch \u0027omap-serial\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull ARM OMAP serial updates from Russell King:\n \"This series is a major reworking of the OMAP serial driver code fixing\n  various bugs in the hardware-assisted flow control, extending up into\n  serial_core for a couple of issues.  These fixes have been done as a\n  set of progressive changes and transformations in the hope that no new\n  bugs will be introduced by this series.\n\n  The problems are many-fold, from the driver not being informed about\n  updated settings, to the driver not knowing what the intentions of the\n  upper layers are.\n\n  The first four patches tackle the serial_core layer, allowing it to\n  provide the necessary information to drivers, and the remaining\n  patches allow the OMAP serial driver to take advantage of this.\n\n  This brings hardware assisted RTS/CTS and XON/OFF flow control into a\n  useful state.\n\n  These patches have been in linux-next for most of the last cycle;\n  indeed they predate the previous merge window.  They\u0027ve also been\n  posted to the OMAP people.\"\n\n* \u0027omap-serial\u0027 of git://git.linaro.org/people/rmk/linux-arm: (21 commits)\n  SERIAL: omap: fix hardware assisted flow control\n  SERIAL: omap: simplify (2)\n  SERIAL: omap: move xon/xoff setting earlier\n  SERIAL: omap: always set TCR\n  SERIAL: omap: simplify\n  SERIAL: omap: don\u0027t read back LCR/MCR/EFR\n  SERIAL: omap: serial_omap_configure_xonxoff() contents into set_termios\n  SERIAL: omap: configure xon/xoff before setting modem control lines\n  SERIAL: omap: remove OMAP_UART_SYSC_RESET and OMAP_UART_FIFO_CLR\n  SERIAL: omap: move driver private definitions and structures to driver\n  SERIAL: omap: remove \u0027irq_pending\u0027 bitfield\n  SERIAL: omap: fix MCR TCRTLR bit handling\n  SERIAL: omap: fix set_mctrl() breakage\n  SERIAL: omap: no need to re-read EFR\n  SERIAL: omap: remove setting of EFR SCD bit\n  SERIAL: omap: allow hardware assisted IXANY mode to be disabled\n  SERIAL: omap: allow hardware assisted rts/cts modes to be disabled\n  SERIAL: core: add throttle/unthrottle callbacks for hardware assisted flow control\n  SERIAL: core: add hardware assisted h/w flow control support\n  SERIAL: core: add hardware assisted s/w flow control support\n  ...\n\nConflicts:\n\tdrivers/tty/serial/omap-serial.c\n"
    },
    {
      "commit": "1f53ef17d3ed6c34868cc8e7aa7c1d351c2fdc95",
      "tree": "1f26888dcdd55e44293124344c64a219b928958e",
      "parents": [
        "d567c686aebc7140f73318ee250236bda39c04eb"
      ],
      "author": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Wed Dec 12 15:31:37 2012 +0800"
      },
      "committer": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Wed Dec 12 15:34:48 2012 +0800"
      },
      "message": "Thermal: Fix DEFAULT_THERMAL_GOVERNOR\n\nFix DEFAULT_THERMAL_GOVERNOR to be consistant with the\ndefault governor selected in kernel config file.\n\nSigned-off-by: Zhang Rui \u003crui.zhang@intel.com\u003e\n"
    },
    {
      "commit": "d567c686aebc7140f73318ee250236bda39c04eb",
      "tree": "41ee46bf4bb9c03c8de5f2b0d4a3286b65d84d7a",
      "parents": [
        "d12250ef8dc1bbc811d505776be053e358ba82f5"
      ],
      "author": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Wed Dec 12 15:23:54 2012 +0800"
      },
      "committer": {
        "name": "Zhang Rui",
        "email": "rui.zhang@intel.com",
        "time": "Wed Dec 12 15:23:54 2012 +0800"
      },
      "message": "Thermal: fix a NULL pointer dereference when generic thermal layer is built as a module\n\n[   12.761956] BUG: unable to handle kernel NULL pointer dereference at 0000000000000018\n[   12.762016] IP: [\u003cffffffffa0005277\u003e] handle_thermal_trip+0x47/0x130 [thermal_sys]\n[   12.762060] PGD 1fec74067 PUD 1fee5b067 PMD 0\n[   12.762127] Oops: 0000 [#1] SMP\n[   12.762177] Modules linked in: hid_generic crc32c_intel usbhid hid firewire_ohci(+) e1000e(+) firewire_core crc_itu_t xhci_hcd(+) thermal(+) fan thermal_sys hwmon\n[   12.762423] CPU 1\n[   12.762443] Pid: 187, comm: modprobe Tainted: G       A     3.7.0-thermal-module+ #25                  /DH77DF\n[   12.762496] RIP: 0010:[\u003cffffffffa0005277\u003e]  [\u003cffffffffa0005277\u003e] handle_thermal_trip+0x47/0x130 [thermal_sys]\n[   12.762682] RSP: 0018:ffff8801fe7ddc18  EFLAGS: 00010282\n[   12.762704] RAX: 0000000000000000 RBX: ffff8801ff3e9c00 RCX: ffff8801fdc39800\n[   12.762728] RDX: ffff8801fe7ddc24 RSI: 0000000000000001 RDI: ffff8801ff3e9c00\n[   12.762764] RBP: ffff8801fe7ddc48 R08: 0000000004000000 R09: ffffffffa001f568\n[   12.762797] R10: ffffffff81363083 R11: 0000000000000001 R12: 0000000000000001\n[   12.762832] R13: 0000000000000000 R14: 0000000000000001 R15: ffff8801fde73e68\n[   12.762866] FS:  00007f5548516700(0000) GS:ffff88021f240000(0000) knlGS:0000000000000000\n[   12.762912] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n[   12.762946] CR2: 0000000000000018 CR3: 00000001fefe2000 CR4: 00000000001407e0\n[   12.762979] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n[   12.763014] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\n[   12.763048] Process modprobe (pid: 187, threadinfo ffff8801fe7dc000, task ffff8801fe5bdb40)\n[   12.763095] Stack:\n[   12.763122]  0000000000019640 00000000fdc39800 ffff8801fe7ddc48 ffff8801ff3e9c00\n[   12.763225]  0000000000000002 0000000000000000 ffff8801fe7ddc78 ffffffffa00053e7\n[   12.763338]  ffff8801ff3e9c00 0000000000006c98 ffffffffa0007480 ffff8801ff3e9c00\n[   12.763440] Call Trace:\n[   12.763470]  [\u003cffffffffa00053e7\u003e] thermal_zone_device_update+0x77/0xa0 [thermal_sys]\n[   12.763515]  [\u003cffffffffa0006d38\u003e] thermal_zone_device_register+0x788/0xa88 [thermal_sys]\n[   12.763562]  [\u003cffffffffa001f394\u003e] acpi_thermal_add+0x360/0x4c8 [thermal]\n[   12.763598]  [\u003cffffffff8133902a\u003e] acpi_device_probe+0x50/0x190\n[   12.763632]  [\u003cffffffff811bd793\u003e] ? sysfs_create_link+0x13/0x20\n[   12.763666]  [\u003cffffffff813cc41b\u003e] driver_probe_device+0x7b/0x240\n[   12.763699]  [\u003cffffffff813cc68b\u003e] __driver_attach+0xab/0xb0\n[   12.763732]  [\u003cffffffff813cc5e0\u003e] ? driver_probe_device+0x240/0x240\n[   12.763766]  [\u003cffffffff813ca836\u003e] bus_for_each_dev+0x56/0x90\n[   12.763799]  [\u003cffffffff813cbf4e\u003e] driver_attach+0x1e/0x20\n[   12.763831]  [\u003cffffffff813cbac0\u003e] bus_add_driver+0x190/0x290\n[   12.763864]  [\u003cffffffffa0022000\u003e] ? 0xffffffffa0021fff\n[   12.763896]  [\u003cffffffff813ccbea\u003e] driver_register+0x7a/0x160\n[   12.763928]  [\u003cffffffffa0022000\u003e] ? 0xffffffffa0021fff\n[   12.763960]  [\u003cffffffff813399fb\u003e] acpi_bus_register_driver+0x43/0x45\n[   12.763995]  [\u003cffffffffa002203a\u003e] acpi_thermal_init+0x3a/0x42 [thermal]\n[   12.764029]  [\u003cffffffff8100207f\u003e] do_one_initcall+0x3f/0x170\n[   12.764063]  [\u003cffffffff810b1a5f\u003e] sys_init_module+0x8f/0x200\n[   12.764097]  [\u003cffffffff815ff259\u003e] system_call_fastpath+0x16/0x1b\n[   12.764129] Code: 48 8b 87 c8 02 00 00 41 89 f4 48 8d 55 dc ff 50 28 44 8b 6d dc 41 8d 45 fe 83 f8 01 76 5e 48 8b 83 d8 02 00 00 44 89 e6 48 89 df \u003cff\u003e 50 18 4c 8d a3 10 03 00 00 4c 89 e7 e8 87 f1 5e e1 8b 83 bc\n[   12.765164] RIP  [\u003cffffffffa0005277\u003e] handle_thermal_trip+0x47/0x130 [thermal_sys]\n[   12.765223]  RSP \u003cffff8801fe7ddc18\u003e\n[   12.765252] CR2: 0000000000000018\n[   12.765284] ---[ end trace 7723294cdfb00d2a ]---\n\nThis is because thermal_zone_device_update() is invoked before\nany thermal governors being registered.\n\nSigned-off-by: Zhang Rui \u003crui.zhang@intel.com\u003e\n"
    },
    {
      "commit": "1ebaf4f4e6912199f8a4e30ba3ab55da2b71bcdf",
      "tree": "d2073d669e6eaf15ece6fc6ce563438d74824412",
      "parents": [
        "743aa456c1834f76982af44e8b71d1a0b2a82e21",
        "5074b85bdd3a464efe7b6de2ec163f4c07696a20"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 20:01:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 20:01:33 2012 -0800"
      },
      "message": "Merge branch \u0027x86-timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 timer update from Ingo Molnar:\n \"This tree includes HPET fixes and also implements a calibration-free,\n  TSC match driven APIC timer interrupt mode: \u0027TSC deadline mode\u0027\n  supported in SandyBridge and later CPUs.\"\n\n* \u0027x86-timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: hpet: Fix inverted return value check in arch_setup_hpet_msi()\n  x86: hpet: Fix masking of MSI interrupts\n  x86: apic: Use tsc deadline for oneshot when available\n"
    },
    {
      "commit": "743aa456c1834f76982af44e8b71d1a0b2a82e21",
      "tree": "f240782115da675496c8d9d5328722933d0ef601",
      "parents": [
        "a05a4e24dcd73c2de4ef3f8d520b8bbb44570c60",
        "11af32b69ef7ee64c7d8848cad71a6f3749d9e37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:59:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:59:32 2012 -0800"
      },
      "message": "Merge branch \u0027x86-nuke386-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull \"Nuke 386-DX/SX support\" from Ingo Molnar:\n \"This tree removes ancient-386-CPUs support and thus zaps quite a bit\n  of complexity:\n\n    24 files changed, 56 insertions(+), 425 deletions(-)\n\n  ... which complexity has plagued us with extra work whenever we wanted\n  to change SMP primitives, for years.\n\n  Unfortunately there\u0027s a nostalgic cost: your old original 386 DX33\n  system from early 1991 won\u0027t be able to boot modern Linux kernels\n  anymore.  Sniff.\"\n\nI\u0027m not sentimental.  Good riddance.\n\n* \u0027x86-nuke386-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, 386 removal: Document Nx586 as a 386 and thus unsupported\n  x86, cleanups: Simplify sync_core() in the case of no CPUID\n  x86, 386 removal: Remove CONFIG_X86_POPAD_OK\n  x86, 386 removal: Remove CONFIG_X86_WP_WORKS_OK\n  x86, 386 removal: Remove CONFIG_INVLPG\n  x86, 386 removal: Remove CONFIG_BSWAP\n  x86, 386 removal: Remove CONFIG_XADD\n  x86, 386 removal: Remove CONFIG_CMPXCHG\n  x86, 386 removal: Remove CONFIG_M386 from Kconfig\n"
    },
    {
      "commit": "a05a4e24dcd73c2de4ef3f8d520b8bbb44570c60",
      "tree": "f9f8c12829e82c95b26b2bb19e0818ca6fcd836c",
      "parents": [
        "e9a5a919719673b932ac968dfb4332b6f892b025",
        "27d3a8a26ada7660116fdd6830096008c063ee96"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:58:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:58:29 2012 -0800"
      },
      "message": "Merge branch \u0027x86-cpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 topology discovery improvements from Ingo Molnar:\n \"These changes improve topology discovery on AMD CPUs.\n\n  Right now this feeds information displayed in\n  /sys/devices/system/cpu/cpuX/cache/indexY/* - but in the future we\n  could use this to set up a better scheduling topology.\"\n\n* \u0027x86-cpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, cacheinfo: Base cache sharing info on CPUID 0x8000001d on AMD\n  x86, cacheinfo: Make use of CPUID 0x8000001d for cache information on AMD\n  x86, cacheinfo: Determine number of cache leafs using CPUID 0x8000001d on AMD\n  x86: Add cpu_has_topoext\n"
    },
    {
      "commit": "e9a5a919719673b932ac968dfb4332b6f892b025",
      "tree": "b7ea17340055a6a41aa55736ec2b3cd36663ed64",
      "parents": [
        "74b84233458e9db7c160cec67638efdbec748ca9",
        "28a793892296ca3367193c7a7de1714f80049fd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:57:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:57:56 2012 -0800"
      },
      "message": "Merge branch \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 cleanups from Ingo Molnar:\n \"Small cleanups.\"\n\n* \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86: Fix the error of using \"const\" in gen-insn-attr-x86.awk\n  x86, apic: Cleanup cfg-\u003edomain setup for legacy interrupts\n  x86: Remove dead hlt_use_halt code\n"
    },
    {
      "commit": "74b84233458e9db7c160cec67638efdbec748ca9",
      "tree": "0d174c7386386dca17f494396d7febc300ffa3dd",
      "parents": [
        "507447473756e316f3f182324071389a51736a83",
        "a71c8bc5dfefbbf80ef90739791554ef7ea4401b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:56:33 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:56:33 2012 -0800"
      },
      "message": "Merge branch \u0027x86-bsp-hotplug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 BSP hotplug changes from Ingo Molnar:\n \"This tree enables CPU#0 (the boot processor) to be onlined/offlined on\n  x86, just like any other CPU.  Enabled on Intel CPUs for now.\n\n  Allowing this required the identification and fixing of latent CPU#0\n  assumptions (such as CPU#0 initializations, etc.) in the x86\n  architecture code, plus the identification of barriers to\n  BSP-offlining, such as active PIC interrupts which can only be\n  serviced on the BSP.\n\n  It\u0027s behind a default-off option, and there\u0027s a debug option that\n  allows the automatic testing of this feature.\n\n  The motivation of this feature is to allow and prepare for true\n  CPU-hotplug hardware support: recent changes to MCE support enable us\n  to detect a deteriorating but not yet hard-failing L1/L2 cache on a\n  CPU that could be soft-unplugged - or a failing L3 cache on a\n  multi-socket system.\n\n  Note that true hardware hot-plug is not yet fully enabled by this,\n  because that requires a special platform wakeup sequence to be sent to\n  the freshly powered up CPU#0.  Future patches for this are planned,\n  once such a platform exists.  Chicken and egg\"\n\n* \u0027x86-bsp-hotplug-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, topology: Debug CPU0 hotplug\n  x86/i387.c: Initialize thread xstate only on CPU0 only once\n  x86, hotplug: Handle retrigger irq by the first available CPU\n  x86, hotplug: The first online processor saves the MTRR state\n  x86, hotplug: During CPU0 online, enable x2apic, set_numa_node.\n  x86, hotplug: Wake up CPU0 via NMI instead of INIT, SIPI, SIPI\n  x86-32, hotplug: Add start_cpu0() entry point to head_32.S\n  x86-64, hotplug: Add start_cpu0() entry point to head_64.S\n  kernel/cpu.c: Add comment for priority in cpu_hotplug_pm_callback\n  x86, hotplug, suspend: Online CPU0 for suspend or hibernate\n  x86, hotplug: Support functions for CPU0 online/offline\n  x86, topology: Don\u0027t offline CPU0 if any PIC irq can not be migrated out of it\n  x86, Kconfig: Add config switch for CPU0 hotplug\n  doc: Add x86 CPU0 online/offline feature\n"
    },
    {
      "commit": "507447473756e316f3f182324071389a51736a83",
      "tree": "39afec5235c3309179ee4da23866f20604a3d1e2",
      "parents": [
        "0019fab3558c8c8135c88c3d38f24ab0a5408aa6",
        "6e87f9b7e48e165cb8e6092b9abe682e7065614a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:55:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:55:58 2012 -0800"
      },
      "message": "Merge branch \u0027x86-boot-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 boot changes from Ingo Molnar:\n \"Two small changes: a cleanup and allow CONFIG_X86_MPPARSE to be turned\n  off on SFI as well.\"\n\n* \u0027x86-boot-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  arch/x86/Kconfig: Allow turning off CONFIG_X86_MPPARSE when either ACPI or SFI is present\n  x86/boot/doc: Fix grammar and typo in boot.txt\n"
    },
    {
      "commit": "0019fab3558c8c8135c88c3d38f24ab0a5408aa6",
      "tree": "d51fe9edb3e05efe5089e3360510f513cccb6b0b",
      "parents": [
        "b64c5fda3868cb29d5dae0909561aa7d93fb7330",
        "6c8d8b3c69cef1330e0c5cbc2a8b9268024927a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:55:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 19:55:20 2012 -0800"
      },
      "message": "Merge branch \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 asm changes from Ingo Molnar:\n \"Two fixlets and a cleanup.\"\n\n* \u0027x86-asm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86_32: Return actual stack when requesting sp from regs\n  x86: Don\u0027t clobber top of pt_regs in nested NMI\n  x86/asm: Clean up copy_page_*() comments and code\n"
    },
    {
      "commit": "b64c5fda3868cb29d5dae0909561aa7d93fb7330",
      "tree": "2ac4be822f32fe5a8e8f33138be81b221ff52384",
      "parents": [
        "f57d54bab696133fae569c5f01352249c36fc74f",
        "9c3f9e281697d02889c3b08922f3b30be75f56c2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:22:46 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:22:46 2012 -0800"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull core timer changes from Ingo Molnar:\n \"It contains continued generic-NOHZ work by Frederic and smaller\n  cleanups.\"\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  time: Kill xtime_lock, replacing it with jiffies_lock\n  clocksource: arm_generic: use this_cpu_ptr per-cpu helper\n  clocksource: arm_generic: use integer math helpers\n  time/jiffies: Make clocksource_jiffies static\n  clocksource: clean up parse_pmtmr()\n  tick: Correct the comments for tick_sched_timer()\n  tick: Conditionally build nohz specific code in tick handler\n  tick: Consolidate tick handling for high and low res handlers\n  tick: Consolidate timekeeping handling code\n"
    },
    {
      "commit": "f57d54bab696133fae569c5f01352249c36fc74f",
      "tree": "8ebe3c6deaf95c424c86843c3d290fbf2a9e80d2",
      "parents": [
        "da830e589a45f0c42eef6f3cbd07275f8893f181",
        "c1ad41f1f7270c1956da13fa8fd59d8d5929d56e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:21:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:21:38 2012 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler updates from Ingo Molnar:\n \"The biggest change affects group scheduling: we now track the runnable\n  average on a per-task entity basis, allowing a smoother, exponential\n  decay average based load/weight estimation instead of the previous\n  binary on-the-runqueue/off-the-runqueue load weight method.\n\n  This will inevitably disturb workloads that were in some sort of\n  borderline balancing state or unstable equilibrium, so an eye has to\n  be kept on regressions.\n\n  For that reason the new load average is only limited to group\n  scheduling (shares distribution) at the moment (which was also hurting\n  the most from the prior, crude weight calculation and whose scheduling\n  quality wins most from this change) - but we plan to extend this to\n  regular SMP balancing as well in the future, which will simplify and\n  speed up things a bit.\n\n  Other changes involve ongoing preparatory work to extend NOHZ to the\n  scheduler as well, eventually allowing completely irq-free user-space\n  execution.\"\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)\n  Revert \"sched/autogroup: Fix crash on reboot when autogroup is disabled\"\n  cputime: Comment cputime\u0027s adjusting code\n  cputime: Consolidate cputime adjustment code\n  cputime: Rename thread_group_times to thread_group_cputime_adjusted\n  cputime: Move thread_group_cputime() to sched code\n  vtime: Warn if irqs aren\u0027t disabled on system time accounting APIs\n  vtime: No need to disable irqs on vtime_account()\n  vtime: Consolidate a bit the ctx switch code\n  vtime: Explicitly account pending user time on process tick\n  vtime: Remove the underscore prefix invasion\n  sched/autogroup: Fix crash on reboot when autogroup is disabled\n  cputime: Separate irqtime accounting from generic vtime\n  cputime: Specialize irq vtime hooks\n  kvm: Directly account vtime to system on guest switch\n  vtime: Make vtime_account_system() irqsafe\n  vtime: Gather vtime declarations to their own header file\n  sched: Describe CFS load-balancer\n  sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking\n  sched: Make __update_entity_runnable_avg() fast\n  sched: Update_cfs_shares at period edge\n  ...\n"
    },
    {
      "commit": "da830e589a45f0c42eef6f3cbd07275f8893f181",
      "tree": "b241c86b8a0f9acdef4b90f69ddd200548e91f2c",
      "parents": [
        "090f8ccba37034cec5a5972a70abeaae7eb0222b",
        "08cd2a6960ae2e1aa7f44b44ebafa84f503a2dd1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:18:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:18:58 2012 -0800"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf fixes from Ingo Molnar:\n \"These are late-v3.7 pending fixes for tracing.\"\n\nFix up trivial conflict in kernel/trace/ring_buffer.c: the NULL pointer\nfix clashed with the change of type of the \u0027ret\u0027 variable.\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  ring-buffer: Fix race between integrity check and readers\n  ring-buffer: Fix NULL pointer if rb_set_head_page() fails\n  ftrace: Clear bits properly in reset_iter_read()\n"
    },
    {
      "commit": "090f8ccba37034cec5a5972a70abeaae7eb0222b",
      "tree": "0b7cf8a4bb94601816399acfb336835fbf309a2a",
      "parents": [
        "aefb058b0c27dafb15072406fbfd92d2ac2c8790",
        "cc1b39dbf9f55a438e8a21a694394c20e6a17129"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:14:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:14:31 2012 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf updates from Ingo Molnar:\n \"Lots of activity:\n\n   211 files changed, 8328 insertions(+), 4116 deletions(-)\n\n  most of it on the tooling side.\n\n  Main changes:\n\n   * ftrace enhancements and fixes from Steve Rostedt.\n\n   * uprobes fixes, cleanups and preparation for the ARM port from Oleg\n     Nesterov.\n\n   * UAPI fixes, from David Howels - prepares the arch/x86 UAPI\n     transition\n\n   * Separate perf tests into multiple objects, one per test, from Jiri\n     Olsa.\n\n   * Make hardware event translations available in sysfs, from Jiri\n     Olsa.\n\n   * Fixes to /proc/pid/maps parsing, preparatory to supporting data\n     maps, from Namhyung Kim\n\n   * Implement ui_progress for GTK, from Namhyung Kim\n\n   * Add framework for automated perf_event_attr tests, where tools with\n     different command line options will be run from a \u0027perf test\u0027, via\n     python glue, and the perf syscall will be intercepted to verify\n     that the perf_event_attr fields set by the tool are those expected,\n     from Jiri Olsa\n\n   * Add a \u0027link\u0027 method for hists, so that we can have the leader with\n     buckets for all the entries in all the hists.  This new method is\n     now used in the default \u0027diff\u0027 output, making the sum of the\n     \u0027baseline\u0027 column be 100%, eliminating blind spots.\n\n   * libtraceevent fixes for compiler warnings trying to make perf it\n     build on some distros, like fedora 14, 32-bit, some of the warnings\n     really pointed to real bugs.\n\n   * Add a browser for \u0027perf script\u0027 and make it available from the\n     report and annotate browsers.  It does filtering to find the\n     scripts that handle events found in the perf.data file used.  From\n     Feng Tang\n\n   * perf inject changes to allow showing where a task sleeps, from\n     Andrew Vagin.\n\n   * Makefile improvements from Namhyung Kim.\n\n   * Add --pre and --post command hooks in \u0027stat\u0027, from Peter Zijlstra.\n\n   * Don\u0027t stop synthesizing threads when one vanishes, this is for the\n     existing threads when we start a tool like trace.\n\n   * Use sched:sched_stat_runtime to provide a thread summary, this\n     produces the same output as the \u0027trace summary\u0027 subcommand of\n     tglx\u0027s original \"trace\" tool.\n\n   * Support interrupted syscalls in \u0027trace\u0027\n\n   * Add an event duration column and filter in \u0027trace\u0027.\n\n   * There are references to the man pages in some tools, so try to\n     build Documentation when installing, warning the user if that is\n     not possible, from Borislav Petkov.\n\n   * Give user better message if precise is not supported, from David\n     Ahern.\n\n   * Try to find cross-built objdump path by using the session\n     environment information in the perf.data file header, from Irina\n     Tirdea, original patch and idea by Namhyung Kim.\n\n   * Diplays more output on features check for make V\u003d1, so that one can\n     figure out what is happening by looking at gcc output, etc.  From\n     Jiri Olsa.\n\n   * Add on_exit implementation for systems without one, e.g.  Android,\n     from Bernhard Rosenkraenzer.\n\n   * Only process events for vcpus of interest, helps handling large\n     number of events, from David Ahern.\n\n   * Cross compilation fixes for Android, from Irina Tirdea.\n\n   * Add documentation on compiling for Android, from Irina Tirdea.\n\n   * perf diff improvements from Jiri Olsa.\n\n   * Target (task/user/cpu/syswide) handling improvements, from Namhyung\n     Kim.\n\n   * Add support in \u0027trace\u0027 for tracing workload given by command line,\n     from Namhyung Kim.\n\n   * ... and much more.\"\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (194 commits)\n  uprobes: Use percpu_rw_semaphore to fix register/unregister vs dup_mmap() race\n  perf evsel: Introduce is_group_member method\n  perf powerpc: Use uapi/unistd.h to fix build error\n  tools: Pass the target in descend\n  tools: Honour the O\u003d flag when tool build called from a higher Makefile\n  tools: Define a Makefile function to do subdir processing\n  perf ui: Always compile browser setup code\n  perf ui: Add ui_progress__finish()\n  perf ui gtk: Implement ui_progress functions\n  perf ui: Introduce generic ui_progress helper\n  perf ui tui: Move progress.c under ui/tui directory\n  perf tools: Add basic event modifier sanity check\n  perf tools: Omit group members from perf_evlist__disable/enable\n  perf tools: Ensure single disable call per event in record comand\n  perf tools: Fix \u0027disabled\u0027 attribute config for record command\n  perf tools: Fix attributes for \u0027{}\u0027 defined event groups\n  perf tools: Use sscanf for parsing /proc/pid/maps\n  perf tools: Add gtk.\u003ccommand\u003e config option for launching GTK browser\n  perf tools: Fix compile error on NO_NEWT\u003d1 build\n  perf hists: Initialize all of he-\u003estat with zeroes\n  ...\n"
    },
    {
      "commit": "aefb058b0c27dafb15072406fbfd92d2ac2c8790",
      "tree": "de24b50221cfdbd8ebedb2add38c6125de604c3d",
      "parents": [
        "37ea95a959d4a49846ecbf2dd45326b6b34bf049",
        "04aa530ec04f61875b99c12721162e2964e3318c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:12:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:12:06 2012 -0800"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull irq fixes from Ingo Molnar:\n \"Affinity fixes and a nested threaded IRQ handling fix.\"\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  genirq: Always force thread affinity\n  irq: Set CPU affinity right on thread creation\n  genirq: Provide means to retrigger parent\n"
    },
    {
      "commit": "37ea95a959d4a49846ecbf2dd45326b6b34bf049",
      "tree": "43791e1244ce06d8ca18ecbfd0b0f6dcb86ebb8b",
      "parents": [
        "de0c276b31538fcd56611132f20b63eae2891876",
        "630e1e0bcddfda9566462d4f9a0d58b31c29d467"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:10:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:10:49 2012 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU update from Ingo Molnar:\n \"The major features of this tree are:\n\n     1. A first version of no-callbacks CPUs.  This version prohibits\n        offlining CPU 0, but only when enabled via CONFIG_RCU_NOCB_CPU\u003dy.\n        Relaxing this constraint is in progress, but not yet ready\n        for prime time.  These commits were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/724.\n\n     2. Changes to SRCU that allows statically initialized srcu_struct\n        structures.  These commits were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/296.\n\n     3. Restructuring of RCU\u0027s debugfs output.  These commits were posted\n        to LKML at https://lkml.org/lkml/2012/10/30/341.\n\n     4. Additional CPU-hotplug/RCU improvements, posted to LKML at\n        https://lkml.org/lkml/2012/10/30/327.\n        Note that the commit eliminating __stop_machine() was judged to\n        be too-high of risk, so is deferred to 3.9.\n\n     5. Changes to RCU\u0027s idle interface, most notably a new module\n        parameter that redirects normal grace-period operations to\n        their expedited equivalents.  These were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/739.\n\n     6. Additional diagnostics for RCU\u0027s CPU stall warning facility,\n        posted to LKML at https://lkml.org/lkml/2012/10/30/315.\n        The most notable change reduces the\n        default RCU CPU stall-warning time from 60 seconds to 21 seconds,\n        so that it once again happens sooner than the softlockup timeout.\n\n     7. Documentation updates, which were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/280.\n        A couple of late-breaking changes were posted at\n        https://lkml.org/lkml/2012/11/16/634 and\n        https://lkml.org/lkml/2012/11/16/547.\n\n     8. Miscellaneous fixes, which were posted to LKML at\n        https://lkml.org/lkml/2012/10/30/309.\n\n     9. Finally, a fix for an lockdep-RCU splat was posted to LKML\n        at https://lkml.org/lkml/2012/11/7/486.\"\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (49 commits)\n  context_tracking: New context tracking susbsystem\n  sched: Mark RCU reader in sched_show_task()\n  rcu: Separate accounting of callbacks from callback-free CPUs\n  rcu: Add callback-free CPUs\n  rcu: Add documentation for the new rcuexp debugfs trace file\n  rcu: Update documentation for TREE_RCU debugfs tracing\n  rcu: Reduce default RCU CPU stall warning timeout\n  rcu: Fix TINY_RCU rcu_is_cpu_rrupt_from_idle check\n  rcu: Clarify memory-ordering properties of grace-period primitives\n  rcu: Add new rcutorture module parameters to start/end test messages\n  rcu: Remove list_for_each_continue_rcu()\n  rcu: Fix batch-limit size problem\n  rcu: Add tracing for synchronize_sched_expedited()\n  rcu: Remove old debugfs interfaces and also RCU flavor name\n  rcu: split \u0027rcuhier\u0027 to each flavor\n  rcu: split \u0027rcugp\u0027 to each flavor\n  rcu: split \u0027rcuboost\u0027 to each flavor\n  rcu: split \u0027rcubarrier\u0027 to each flavor\n  rcu: Fix tracing formatting\n  rcu: Remove the interface \"rcudata.csv\"\n  ...\n"
    },
    {
      "commit": "de0c276b31538fcd56611132f20b63eae2891876",
      "tree": "f46b45fee74d0789a094ba8cda4797d4317d0219",
      "parents": [
        "608ff1a210ab0e8b969399039bf8e18693605910",
        "99fb4a122e96203dfd6c67d99d908aafd20f4753",
        "351f181f9134d71efd46ddf0c0abca31b58cd79b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:09:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:09:18 2012 -0800"
      },
      "message": "Merge branches \u0027core-locking-for-linus\u0027 and \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull trivial fix branches from Ingo Molnar.\n\nCleanup in __get_key_name, and a timer comment fixlet.\n\n* \u0027core-locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  lockdep: Use KSYM_NAME_LEN\u0027ed buffer for __get_key_name()\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timers, sched: Correct the comments for tick_sched_timer()\n"
    },
    {
      "commit": "608ff1a210ab0e8b969399039bf8e18693605910",
      "tree": "faea7bb1764461c73d0953089bd5439d91733a03",
      "parents": [
        "414a6750e59b0b687034764c464e9ddecac0f7a6",
        "74d42d8fe146e870c52bde3b1c692f86cc8ff844"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:05:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 18:05:37 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patchbomb)\n\nMerge misc updates from Andrew Morton:\n \"About half of most of MM.  Going very early this time due to\n  uncertainty over the coreautounifiednumasched things.  I\u0027ll send the\n  other half of most of MM tomorrow.  The rest of MM awaits a slab merge\n  from Pekka.\"\n\n* emailed patches from Andrew Morton: (71 commits)\n  memory_hotplug: ensure every online node has NORMAL memory\n  memory_hotplug: handle empty zone when online_movable/online_kernel\n  mm, memory-hotplug: dynamic configure movable memory and portion memory\n  drivers/base/node.c: cleanup node_state_attr[]\n  bootmem: fix wrong call parameter for free_bootmem()\n  avr32, kconfig: remove HAVE_ARCH_BOOTMEM\n  mm: cma: remove watermark hacks\n  mm: cma: skip watermarks check for already isolated blocks in split_free_page()\n  mm, oom: fix race when specifying a thread as the oom origin\n  mm, oom: change type of oom_score_adj to short\n  mm: cleanup register_node()\n  mm, mempolicy: remove duplicate code\n  mm/vmscan.c: try_to_freeze() returns boolean\n  mm: introduce putback_movable_pages()\n  virtio_balloon: introduce migration primitives to balloon pages\n  mm: introduce compaction and migration for ballooned pages\n  mm: introduce a common interface for balloon pages mobility\n  mm: redefine address_space.assoc_mapping\n  mm: adjust address_space_operations.migratepage() return code\n  arch/sparc/kernel/sys_sparc_64.c: s/COLOUR/COLOR/\n  ...\n"
    },
    {
      "commit": "74d42d8fe146e870c52bde3b1c692f86cc8ff844",
      "tree": "0b17084ef171572fb9f1c6f01bcb667e638607ed",
      "parents": [
        "e455a9b92d6e19a3f0f7eb6f6241efa566a7e81a"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 11 16:03:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:28 2012 -0800"
      },
      "message": "memory_hotplug: ensure every online node has NORMAL memory\n\nOld memory hotplug code and new online/movable may cause a online node\ndon\u0027t have any normal memory, but memory-management acts bad when we have\nnodes which is online but don\u0027t have any normal memory.  Example: it may\ncause a bound task fail on all kernel allocation and cause the task can\u0027t\ncreate task or create other kernel object.\n\nSo we disable non-normal-memory-node here, we will enable it when we\nprepared.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e455a9b92d6e19a3f0f7eb6f6241efa566a7e81a",
      "tree": "f920832f9e55ecf3e178e498f8894363748bb6c7",
      "parents": [
        "511c2aba8f07fc45bdcba548cb63f7b8a450c6dc"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 11 16:03:20 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:28 2012 -0800"
      },
      "message": "memory_hotplug: handle empty zone when online_movable/online_kernel\n\nMake online_movable/online_kernel can empty a zone or can move memory to a\nempty zone.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "511c2aba8f07fc45bdcba548cb63f7b8a450c6dc",
      "tree": "6a1a853e60e0004f5895d78231ed1bea33fecaac",
      "parents": [
        "fcf07d22f089856631b52a75c35ba3c33b70a1b4"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 11 16:03:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:28 2012 -0800"
      },
      "message": "mm, memory-hotplug: dynamic configure movable memory and portion memory\n\nAdd online_movable and online_kernel for logic memory hotplug.  This is\nthe dynamic version of \"movablecore\" \u0026 \"kernelcore\".\n\nWe have the same reason to introduce it as to introduce \"movablecore\" \u0026\n\"kernelcore\".  It has the same motive as \"movablecore\" \u0026 \"kernelcore\", but\nit is dynamic/running-time:\n\no We can configure memory as kernelcore or movablecore after boot.\n\n  Userspace workload is increased, we need more hugepage, we can\u0027t use\n  \"online_movable\" to add memory and allow the system use more\n  THP(transparent-huge-page), vice-verse when kernel workload is increase.\n\n  Also help for virtualization to dynamic configure host/guest\u0027s memory,\n  to save/(reduce waste) memory.\n\n  Memory capacity on Demand\n\no When a new node is physically online after boot, we need to use\n  \"online_movable\" or \"online_kernel\" to configure/portion it as we\n  expected when we logic-online it.\n\n  This configuration also helps for physically-memory-migrate.\n\no all benefit as the same as existed \"movablecore\" \u0026 \"kernelcore\".\n\no Preparing for movable-node, which is very important for power-saving,\n  hardware partitioning and high-available-system(hardware fault\n  management).\n\n(Note, we don\u0027t introduce movable-node here.)\n\nAction behavior:\nWhen a memoryblock/memorysection is onlined by \"online_movable\", the kernel\nwill not have directly reference to the page of the memoryblock,\nthus we can remove that memory any time when needed.\n\nWhen it is online by \"online_kernel\", the kernel can use it.\nWhen it is online by \"online\", the zone type doesn\u0027t changed.\n\nCurrent constraints:\nOnly the memoryblock which is adjacent to the ZONE_MOVABLE\ncan be online from ZONE_NORMAL to ZONE_MOVABLE.\n\n[akpm@linux-foundation.org: use min_t, cleanups]\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fcf07d22f089856631b52a75c35ba3c33b70a1b4",
      "tree": "f826fde071ac174764e12e95d903e2e0bd98734f",
      "parents": [
        "81df9bff2609f07cef4690ac2ebda1611b55b05a"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Dec 11 16:03:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:28 2012 -0800"
      },
      "message": "drivers/base/node.c: cleanup node_state_attr[]\n\nuse [index] \u003d init_value\nuse N_xxxxx instead of hardcode.\n\nMake it more readability and easier to add new state.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81df9bff2609f07cef4690ac2ebda1611b55b05a",
      "tree": "52c5ebc7e9e5efd93040cba5f0439e043eec368e",
      "parents": [
        "e9b2e78c6a4247b1bb3e89c61e7d73636d2e48d1"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "js1304@gmail.com",
        "time": "Tue Dec 11 16:03:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:28 2012 -0800"
      },
      "message": "bootmem: fix wrong call parameter for free_bootmem()\n\nIt is strange that alloc_bootmem() returns a virtual address and\nfree_bootmem() requires a physical address.  Anyway, free_bootmem()\u0027s\nfirst parameter should be physical address.\n\nThere are some call sites for free_bootmem() with virtual address.  So fix\nthem.\n\n[akpm@linux-foundation.org: improve free_bootmem() and free_bootmem_pate() documentation]\nSigned-off-by: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9b2e78c6a4247b1bb3e89c61e7d73636d2e48d1",
      "tree": "fab83eb41d994ed57684f95e7098302b7e630e0b",
      "parents": [
        "bc357f431c836c6631751e3ef7dfe7882394ad67"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "js1304@gmail.com",
        "time": "Tue Dec 11 16:03:05 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:28 2012 -0800"
      },
      "message": "avr32, kconfig: remove HAVE_ARCH_BOOTMEM\n\nThere is no code for CONFIG_HAVE_ARCH_BOOTMEM, so remove it.\n\nSigned-off-by: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc357f431c836c6631751e3ef7dfe7882394ad67",
      "tree": "b67904e354a30c9ecc0a53b8288a3a74c37b9bc2",
      "parents": [
        "2e30abd1730751d58463d88bc0844ab8fd7112a9"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Tue Dec 11 16:02:59 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm: cma: remove watermark hacks\n\nCommits 2139cbe627b8 (\"cma: fix counting of isolated pages\") and\nd95ea5d18e69 (\"cma: fix watermark checking\") introduced a reliable\nmethod of free page accounting when memory is being allocated from CMA\nregions, so the workaround introduced earlier by commit 49f223a9cd96\n(\"mm: trigger page reclaim in alloc_contig_range() to stabilise\nwatermarks\") can be finally removed.\n\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2e30abd1730751d58463d88bc0844ab8fd7112a9",
      "tree": "e87bb4b492c1b504dbf5d250fca738e6bdafad12",
      "parents": [
        "e1e12d2f3104be886073ac6c5c4678f30b1b9e51"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Tue Dec 11 16:02:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm: cma: skip watermarks check for already isolated blocks in split_free_page()\n\nSince commit 2139cbe627b8 (\"cma: fix counting of isolated pages\") free\npages in isolated pageblocks are not accounted to NR_FREE_PAGES counters,\nso watermarks check is not required if one operates on a free page in\nisolated pageblock.\n\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1e12d2f3104be886073ac6c5c4678f30b1b9e51",
      "tree": "b08cba1dba28e18cf7c2ffd8d076ce744e368b5f",
      "parents": [
        "a9c58b907dbc6821533dfc295b63caf111ff1f16"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Dec 11 16:02:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm, oom: fix race when specifying a thread as the oom origin\n\ntest_set_oom_score_adj() and compare_swap_oom_score_adj() are used to\nspecify that current should be killed first if an oom condition occurs in\nbetween the two calls.\n\nThe usage is\n\n\tshort oom_score_adj \u003d test_set_oom_score_adj(OOM_SCORE_ADJ_MAX);\n\t...\n\tcompare_swap_oom_score_adj(OOM_SCORE_ADJ_MAX, oom_score_adj);\n\nto store the thread\u0027s oom_score_adj, temporarily change it to the maximum\nscore possible, and then restore the old value if it is still the same.\n\nThis happens to still be racy, however, if the user writes\nOOM_SCORE_ADJ_MAX to /proc/pid/oom_score_adj in between the two calls.\nThe compare_swap_oom_score_adj() will then incorrectly reset the old value\nprior to the write of OOM_SCORE_ADJ_MAX.\n\nTo fix this, introduce a new oom_flags_t member in struct signal_struct\nthat will be used for per-thread oom killer flags.  KSM and swapoff can\nnow use a bit in this member to specify that threads should be killed\nfirst in oom conditions without playing around with oom_score_adj.\n\nThis also allows the correct oom_score_adj to always be shown when reading\n/proc/pid/oom_score.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9c58b907dbc6821533dfc295b63caf111ff1f16",
      "tree": "e50714c48de89400a02a8e92ef4e240c5206bbcc",
      "parents": [
        "fa264375175a382621c5344a6508e02ec4d1c3c0"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Dec 11 16:02:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm, oom: change type of oom_score_adj to short\n\nThe maximum oom_score_adj is 1000 and the minimum oom_score_adj is -1000,\nso this range can be represented by the signed short type with no\nfunctional change.  The extra space this frees up in struct signal_struct\nwill be used for per-thread oom kill flags in the next patch.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa264375175a382621c5344a6508e02ec4d1c3c0",
      "tree": "e0641d14919f69c39db1e53353e3b5e21c1b455f",
      "parents": [
        "212a0a6f28dda0a1e732d20d57abb465750d473c"
      ],
      "author": {
        "name": "Yasuaki Ishimatsu",
        "email": "isimatu.yasuaki@jp.fujitsu.com",
        "time": "Tue Dec 11 16:02:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm: cleanup register_node()\n\nregister_node() is defined as extern in include/linux/node.h.  But the\nfunction is only called from register_one_node() in driver/base/node.c.\n\nSo the patch defines register_node() as static.\n\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "212a0a6f28dda0a1e732d20d57abb465750d473c",
      "tree": "0a6bf85ca746d0e3a4001f3905c0ecd2dcbc0b89",
      "parents": [
        "6f6313d4870f9642cb3ea8ec892cf6da81331b9c"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Dec 11 16:02:51 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm, mempolicy: remove duplicate code\n\nRemove some duplicate code and simplify alloc_pages_vma().  No functional\nchange.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f6313d4870f9642cb3ea8ec892cf6da81331b9c",
      "tree": "c06cc439e95cbaa0b6d654def61738c1953b40a0",
      "parents": [
        "5733c7d11dff44e98d2ca16617886a78086b354f"
      ],
      "author": {
        "name": "Jeff Liu",
        "email": "jeff.liu@oracle.com",
        "time": "Tue Dec 11 16:02:48 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm/vmscan.c: try_to_freeze() returns boolean\n\nkswapd()-\u003etry_to_freeze() is defined to return a boolean, so it\u0027s better\nto use a bool to hold its return value.\n\nSigned-off-by: Jie Liu \u003cjeff.liu@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5733c7d11dff44e98d2ca16617886a78086b354f",
      "tree": "2d7b982297b3be46b765123fad9d7d446b4cbdb3",
      "parents": [
        "e22504296d4f64fbbbd741602ab47ee874649c18"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Tue Dec 11 16:02:47 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm: introduce putback_movable_pages()\n\nThe PATCH \"mm: introduce compaction and migration for virtio ballooned pages\"\nhacks around putback_lru_pages() in order to allow ballooned pages to be\nre-inserted on balloon page list as if a ballooned page was like a LRU page.\n\nAs ballooned pages are not legitimate LRU pages, this patch introduces\nputback_movable_pages() to properly cope with cases where the isolated\npageset contains ballooned pages and LRU pages, thus fixing the mentioned\ninelegant hack around putback_lru_pages().\n\nSigned-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e22504296d4f64fbbbd741602ab47ee874649c18",
      "tree": "a21e72dfae575091beb338aaedc939a3777e8828",
      "parents": [
        "bf6bddf1924eaebf2beb85e4249a89dd16d4eed6"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Tue Dec 11 16:02:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "virtio_balloon: introduce migration primitives to balloon pages\n\nMemory fragmentation introduced by ballooning might reduce significantly\nthe number of 2MB contiguous memory blocks that can be used within a guest,\nthus imposing performance penalties associated with the reduced number of\ntransparent huge pages that could be used by the guest workload.\n\nBesides making balloon pages movable at allocation time and introducing\nthe necessary primitives to perform balloon page migration/compaction,\nthis patch also introduces the following locking scheme, in order to\nenhance the syncronization methods for accessing elements of struct\nvirtio_balloon, thus providing protection against concurrent access\nintroduced by parallel memory migration threads.\n\n - balloon_lock (mutex) : synchronizes the access demand to elements of\n                          struct virtio_balloon and its queue operations;\n\n[yongjun_wei@trendmicro.com.cn: fix missing unlock on error in fill_balloon()]\n[akpm@linux-foundation.org: avoid having multiple return points in fill_balloon()]\n[akpm@linux-foundation.org: fix printk warning]Signed-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nAcked-by: Michael S. Tsirkin \u003cmst@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Wei Yongjun \u003cyongjun_wei@trendmicro.com.cn\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf6bddf1924eaebf2beb85e4249a89dd16d4eed6",
      "tree": "e03b66a6779727a44f40c4e8f43a06c52d39a6ef",
      "parents": [
        "18468d93e53b037e1a04ec58398eab763d054064"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Tue Dec 11 16:02:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:27 2012 -0800"
      },
      "message": "mm: introduce compaction and migration for ballooned pages\n\nMemory fragmentation introduced by ballooning might reduce significantly\nthe number of 2MB contiguous memory blocks that can be used within a guest,\nthus imposing performance penalties associated with the reduced number of\ntransparent huge pages that could be used by the guest workload.\n\nThis patch introduces the helper functions as well as the necessary changes\nto teach compaction and migration bits how to cope with pages which are\npart of a guest memory balloon, in order to make them movable by memory\ncompaction procedures.\n\nSigned-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18468d93e53b037e1a04ec58398eab763d054064",
      "tree": "74392b876400391567f55bb5292107b65e3791a2",
      "parents": [
        "252aa6f5be64c90c67b9f066ccff880f6b487d32"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Tue Dec 11 16:02:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: introduce a common interface for balloon pages mobility\n\nMemory fragmentation introduced by ballooning might reduce significantly\nthe number of 2MB contiguous memory blocks that can be used within a guest,\nthus imposing performance penalties associated with the reduced number of\ntransparent huge pages that could be used by the guest workload.\n\nThis patch introduces a common interface to help a balloon driver on\nmaking its page set movable to compaction, and thus allowing the system\nto better leverage the compation efforts on memory defragmentation.\n\n[akpm@linux-foundation.org: use PAGE_FLAGS_CHECK_AT_PREP, s/__balloon_page_flags/page_flags_cleared/, small cleanups]\n[rientjes@google.com: allow balloon compaction for any system with memory compaction enabled, which is the defconfig]\nSigned-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "252aa6f5be64c90c67b9f066ccff880f6b487d32",
      "tree": "9bb13ada4d838d232d761f45aa9e1a0b26a40cff",
      "parents": [
        "78bd52097d04205a33a8014a1b8ac01cf1ae9d06"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Tue Dec 11 16:02:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: redefine address_space.assoc_mapping\n\nOverhaul struct address_space.assoc_mapping renaming it to\naddress_space.private_data and its type is redefined to void*.  By this\napproach we consistently name the .private_* elements from struct\naddress_space as well as allow extended usage for address_space\nassociation with other data structures through -\u003eprivate_data.\n\nAlso, all users of old -\u003eassoc_mapping element are converted to reflect\nits new name and type change (-\u003eprivate_data).\n\nSigned-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78bd52097d04205a33a8014a1b8ac01cf1ae9d06",
      "tree": "4f86e6e56a9e3a3d49e9c46042b3ce980cc04dbc",
      "parents": [
        "748ba883ba2818890a73461ef7dde1eed17ad89f"
      ],
      "author": {
        "name": "Rafael Aquini",
        "email": "aquini@redhat.com",
        "time": "Tue Dec 11 16:02:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: adjust address_space_operations.migratepage() return code\n\nMemory fragmentation introduced by ballooning might reduce significantly\nthe number of 2MB contiguous memory blocks that can be used within a\nguest, thus imposing performance penalties associated with the reduced\nnumber of transparent huge pages that could be used by the guest workload.\n\nThis patch-set follows the main idea discussed at 2012 LSFMMS session:\n\"Ballooning for transparent huge pages\" -- http://lwn.net/Articles/490114/\nto introduce the required changes to the virtio_balloon driver, as well as\nthe changes to the core compaction \u0026 migration bits, in order to make\nthose subsystems aware of ballooned pages and allow memory balloon pages\nbecome movable within a guest, thus avoiding the aforementioned\nfragmentation issue\n\nFollowing are numbers that prove this patch benefits on allowing\ncompaction to be more effective at memory ballooned guests.\n\nResults for STRESS-HIGHALLOC benchmark, from Mel Gorman\u0027s mmtests suite,\nrunning on a 4gB RAM KVM guest which was ballooning 512mB RAM in 64mB\nchunks, at every minute (inflating/deflating), while test was running:\n\n\u003d\u003d\u003dBEGIN stress-highalloc\n\nSTRESS-HIGHALLOC\n                 highalloc-3.7     highalloc-3.7\n                     rc4-clean         rc4-patch\nPass 1          55.00 ( 0.00%)    62.00 ( 7.00%)\nPass 2          54.00 ( 0.00%)    62.00 ( 8.00%)\nwhile Rested    75.00 ( 0.00%)    80.00 ( 5.00%)\n\nMMTests Statistics: duration\n                 3.7         3.7\n           rc4-clean   rc4-patch\nUser         1207.59     1207.46\nSystem       1300.55     1299.61\nElapsed      2273.72     2157.06\n\nMMTests Statistics: vmstat\n                                3.7         3.7\n                          rc4-clean   rc4-patch\nPage Ins                    3581516     2374368\nPage Outs                  11148692    10410332\nSwap Ins                         80          47\nSwap Outs                      3641         476\nDirect pages scanned          37978       33826\nKswapd pages scanned        1828245     1342869\nKswapd pages reclaimed      1710236     1304099\nDirect pages reclaimed        32207       31005\nKswapd efficiency               93%         97%\nKswapd velocity             804.077     622.546\nDirect efficiency               84%         91%\nDirect velocity              16.703      15.682\nPercentage direct scans          2%          2%\nPage writes by reclaim        79252        9704\nPage writes file              75611        9228\nPage writes anon               3641         476\nPage reclaim immediate        16764       11014\nPage rescued immediate            0           0\nSlabs scanned               2171904     2152448\nDirect inode steals             385        2261\nKswapd inode steals          659137      609670\nKswapd skipped wait               1          69\nTHP fault alloc                 546         631\nTHP collapse alloc              361         339\nTHP splits                      259         263\nTHP fault fallback               98          50\nTHP collapse fail                20          17\nCompaction stalls               747         499\nCompaction success              244         145\nCompaction failures             503         354\nCompaction pages moved       370888      474837\nCompaction move failure       77378       65259\n\n\u003d\u003d\u003dEND stress-highalloc\n\nThis patch:\n\nIntroduce MIGRATEPAGE_SUCCESS as the default return code for\naddress_space_operations.migratepage() method and documents the expected\nreturn code for the same method in failure cases.\n\nSigned-off-by: Rafael Aquini \u003caquini@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "748ba883ba2818890a73461ef7dde1eed17ad89f",
      "tree": "941afcafc9e7e1d00ccb5486988d326e3d042262",
      "parents": [
        "2aea28b975ad1fbc7448e964d147fe96e3544998"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 11 16:02:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "arch/sparc/kernel/sys_sparc_64.c: s/COLOUR/COLOR/\n\nConsistently spell this word across arch/sparc/mm and arch/sparc/kernel.\n\nAcked-by: David Miller \u003cdavem@davemloft.net\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2aea28b975ad1fbc7448e964d147fe96e3544998",
      "tree": "df94f0b4638c907a6e86714e6e9c8d2f5eebe0cf",
      "parents": [
        "bb64f55019c7b0971cdcfbf3af9fb6376dd01ead"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:02:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() in hugetlbfs on sparc64 architecture\n\nUpdate the sparc64 hugetlb_get_unmapped_area function to make use of\nvm_unmapped_area() instead of implementing a brute force search.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb64f55019c7b0971cdcfbf3af9fb6376dd01ead",
      "tree": "76384613ef13f4f859e9bd2a0a9449aa44cfbbe1",
      "parents": [
        "dd5295965b77e5da6705953ef8a7fc528ea328a1"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:02:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() on sparc64 architecture\n\nUpdate the sparc64 arch_get_unmapped_area[_topdown] functions to make use\nof vm_unmapped_area() instead of implementing a brute force search.\n\n[akpm@linux-foundation.org: remove now-unused COLOUR_ALIGN_DOWN()]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd5295965b77e5da6705953ef8a7fc528ea328a1",
      "tree": "3c03f9811af136639572a44443c582ae5fd2ec25",
      "parents": [
        "a046be3d3ce33c747340b0716fda31f8f63a48b9"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:02:17 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() in hugetlbfs on tile architecture\n\nUpdate the tile hugetlb_get_unmapped_area function to make use of\nvm_unmapped_area() instead of implementing a brute force search.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a046be3d3ce33c747340b0716fda31f8f63a48b9",
      "tree": "42f6dc17c987ffa31b5acdc719809a65bb6de77a",
      "parents": [
        "b4265f12340f809447b9a48055e88c444b480c89"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:02:15 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() on sparc32 architecture\n\nUpdate the sparc32 arch_get_unmapped_area function to make use of\nvm_unmapped_area() instead of implementing a brute force search.\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: remove now-unused COLOUR_ALIGN()]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nAcked-by: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4265f12340f809447b9a48055e88c444b480c89",
      "tree": "dd4914d4a5d10cb19cec2eee36fc40ec6a0b080e",
      "parents": [
        "394ef6403abc36900d9303395a49a72d32666f2a"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:02:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() on sh architecture\n\nUpdate the sh arch_get_unmapped_area[_topdown] functions to make use of\nvm_unmapped_area() instead of implementing a brute force search.\n\n[akpm@linux-foundation.org: remove now-unused COLOUR_ALIGN_DOWN()]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "394ef6403abc36900d9303395a49a72d32666f2a",
      "tree": "74d061c96c5ef1aa9250aa152e27058bc19f5324",
      "parents": [
        "b6661861777940b05934169d8a3f9207cd718996"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:02:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() on arm architecture\n\nUpdate the arm arch_get_unmapped_area[_topdown] functions to make use of\nvm_unmapped_area() instead of implementing a brute force search.\n\n[akpm@linux-foundation.org: remove now-unused COLOUR_ALIGN_DOWN()]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6661861777940b05934169d8a3f9207cd718996",
      "tree": "0205e6835a8032a2fef80155d6b4aaea16904dd4",
      "parents": [
        "cdc17344959e30ba8d0b98448832514024282e14"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:02:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:26 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() on mips architecture\n\nUpdate the mips arch_get_unmapped_area[_topdown] functions to make use of\nvm_unmapped_area() instead of implementing a brute force search.\n\n[akpm@linux-foundation.org: remove now-unused COLOUR_ALIGN_DOWN()]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cdc17344959e30ba8d0b98448832514024282e14",
      "tree": "bbf87178fefae76c606a704b7efe32fafbc9de1a",
      "parents": [
        "0865935598bb112a02f40017e8aaa6bce8577f23"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:02:02 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() in hugetlbfs on i386 architecture\n\nUpdate the i386 hugetlb_get_unmapped_area function to make use of\nvm_unmapped_area() instead of implementing a brute force search.\n\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0865935598bb112a02f40017e8aaa6bce8577f23",
      "tree": "93460e1539ba63dc3aea857e1aaf2b9fa9429ce5",
      "parents": [
        "7d025059650f1c41a427173789ac14b74212b361"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:02:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() in hugetlbfs\n\nUpdate the hugetlb_get_unmapped_area function to make use of\nvm_unmapped_area() instead of implementing a brute force search.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d025059650f1c41a427173789ac14b74212b361",
      "tree": "5905f22f0ff11f96850d7caeec90c8ae898c6d47",
      "parents": [
        "f99024729e689f5de4534fde5400e3b035f068de"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:01:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: fix cache coloring on x86_64 architecture\n\nFix the x86-64 cache alignment code to take pgoff into account.  Use the\nx86 and MIPS cache alignment code as the basis for a generic cache\nalignment function.\n\nThe old x86 code will always align the mmap to aliasing boundaries,\neven if the program mmaps the file with a non-zero pgoff.\n\nIf program A mmaps the file with pgoff 0, and program B mmaps the file\nwith pgoff 1.  The old code would align the mmaps, resulting in misaligned\npages:\n\n  A:  0123\n  B:  123\n\nAfter this patch, they are aligned so the pages line up:\n\n  A: 0123\n  B:  123\n\nProposed by Rik van Riel.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f99024729e689f5de4534fde5400e3b035f068de",
      "tree": "a0a568f6cc6df064b67c9594715a0d505726df3a",
      "parents": [
        "db4fbfb9523c93583c339e66023506f651c1d54b"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:01:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: use vm_unmapped_area() on x86_64 architecture\n\nUpdate the x86_64 arch_get_unmapped_area[_topdown] functions to make use\nof vm_unmapped_area() instead of implementing a brute force search.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db4fbfb9523c93583c339e66023506f651c1d54b",
      "tree": "8dfc250bb2249feaafe27c11cc4de5a654815833",
      "parents": [
        "e4c6bfd2d79d063017ab19a18915f0bc759f32d9"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:01:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: vm_unmapped_area() lookup function\n\nImplement vm_unmapped_area() using the rb_subtree_gap and highest_vm_end\ninformation to look up for suitable virtual address space gaps.\n\nstruct vm_unmapped_area_info is used to define the desired allocation\nrequest:\n - lowest or highest possible address matching the remaining constraints\n - desired gap length\n - low/high address limits that the gap must fit into\n - alignment mask and offset\n\nAlso update the generic arch_get_unmapped_area[_topdown] functions to make\nuse of vm_unmapped_area() instead of implementing a brute force search.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4c6bfd2d79d063017ab19a18915f0bc759f32d9",
      "tree": "4f97a0303f939a7846a86c7ade2533a8e2712f29",
      "parents": [
        "5a0768f641a5bad844860e67250baf0d1aa5e03c"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@surriel.com",
        "time": "Tue Dec 11 16:01:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: rearrange vm_area_struct for fewer cache misses\n\nThe kernel walks the VMA rbtree in various places, including the page\nfault path.  However, the vm_rb node spanned two cache lines, on 64 bit\nsystems with 64 byte cache lines (most x86 systems).\n\nRearrange vm_area_struct a little, so all the information we need to do a\nVMA tree walk is in the first cache line.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5a0768f641a5bad844860e67250baf0d1aa5e03c",
      "tree": "3bb26ec05c4aede8ff37474dc27b5af49892c95e",
      "parents": [
        "d37371870ceb1d2165397dc36114725b6dca946c"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:01:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: check rb_subtree_gap correctness\n\nWhen CONFIG_DEBUG_VM_RB is enabled, check that rb_subtree_gap is correctly\nset for every vma and that mm-\u003ehighest_vm_end is also correct.\n\nAlso add an explicit \u0027bug\u0027 variable to track if browse_rb() detected any\ninvalid condition.\n\n[akpm@linux-foundation.org: repair innovative coding-style inventions]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d37371870ceb1d2165397dc36114725b6dca946c",
      "tree": "907bed40a8b2b3a66da1531fe8ff7183639a5cc3",
      "parents": [
        "fcc1f2d5dd3480214ab52e06d081d123019814ed"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:01:38 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: augment vma rbtree with rb_subtree_gap\n\nDefine vma-\u003erb_subtree_gap as the largest gap between any vma in the\nsubtree rooted at that vma, and their predecessor.  Or, for a recursive\ndefinition, vma-\u003erb_subtree_gap is the max of:\n\n - vma-\u003evm_start - vma-\u003evm_prev-\u003evm_end\n - rb_subtree_gap fields of the vmas pointed by vma-\u003erb.rb_left and\n   vma-\u003erb.rb_right\n\nThis will allow get_unmapped_area_* to find a free area of the right\nsize in O(log(N)) time, instead of potentially having to do a linear\nwalk across all the VMAs.\n\nAlso define mm-\u003ehighest_vm_end as the vm_end field of the highest vma,\nso that we can easily check if the following gap is suitable.\n\nThis does have the potential to make unmapping VMAs more expensive,\nespecially for processes with very large numbers of VMAs, where the VMA\nrbtree can grow quite deep.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fcc1f2d5dd3480214ab52e06d081d123019814ed",
      "tree": "03e658ebec4942124bc1cde9b132dbecb22a2421",
      "parents": [
        "42d7395feb56f0655cd8b68e06fc6063823449f8"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue Dec 11 16:01:36 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "selftests: add a test program for variable huge page sizes in mmap/shmget\n\nAlso remove -Wextra because gcc-4.6 emits lots of irritating\nsigned/unsigned comparison warnings.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "42d7395feb56f0655cd8b68e06fc6063823449f8"
}
