{"push_id":625790682,"size":154,"distinct_size":154,"ref":"refs/heads/cm-12.1","head":"1ffc097dd23d2ca5d9767b6c6889e9de76b8d3a5","before":"027c5304639ae6645887b3fca5acdb489de45867","commits":[{"sha":"2ae676c09321fcc00b99c888c21f8a0017314d70","author":{"email":"017adcb67eaa7bc3974e87882304023d2fcc0db7@oracle.com","name":"Dan Magenheimer"},"message":"mm: frontswap: add frontswap header file\n\nFrontswap is the alter ego of cleancache, the \"yang\" to cleancache's\n\"yin\"... and more precisely frontswap is the provider of anonymous\npages to transcendent memory to nicely complement cleancache's providing\nof clean pagecache pages to transcendent memory.  For optimal use\nof transcendent memory, both are necessary... because a kernel\nunder memory pressure first reclaims clean pagecache pages and,\nwhen under more memory pressure, starts swapping anonymous pages.\n\nFrontswap and cleancache (which was merged at 3.0) are the \"frontends\"\nand the only necessary changes to the core kernel for transcendent memory;\nall other supporting code -- the \"backends\" -- is implemented as drivers.\nSee the LWN.net article \"Transcendent memory in a nutshell\" for a detailed\noverview of frontswap and related kernel parts:\nhttps://lwn.net/Articles/454795/\n\nFrontswap code was first posted publicly in January 2009 and on LKML in\nMay 2009, and has remained functionally stable for nearly three years now.\nIt is barely invasive, touching only the swap subsystem and adds less\nthan 100 lines of code to existing swap subsystem code files.\nIt has improved syntactically substantially between V1 and this posting\nof V14, thanks to the review of a few kernel developers, and has adapted\neasily to at least one major swap subsystem change.  As of 3.4, there are\nthree in-tree users of frontswap patiently waiting for this patchset and\nfor CONFIG_FRONTSWAP to be enabled: zcache (staging driver merged at\n2.6.39), Xen tmem (merged at 3.0 and 3.1) and RAMster (staging driver\nmerged at 3.4).  In addition, a RFC has been posted for a KVM backend.\nThe frontswap patchset has been in linux-next since next-110603.  Earlier\nversions of frontswap already ship in the Oracle Unbreakable Enterprise Kernel\nand SuSE SLES.\n\nThis patch, 1of4, provides the header file for the core code for frontswap\nthat interfaces between the hooks in the swap subsystem and a frontswap\nbackend via frontswap_ops.\n---\nNew file added: include/linux/frontswap.h\n\n[v14: add support for writethrough, per suggestion by aarcange@redhat.com]\n[v14: rebase to 3.4-rc2]\n[v11: konrad.wilk@oracle.com: squashed s/flush/invalidate/ in]\n[v10: no change]\n[v9: akpm@linux-foundation.org: change \"flush\" to \"invalidate\", part 1]\n[v8: rebase to 3.0-rc4]\n[v7: rebase to 3.0-rc3]\n[v7: JBeulich@novell.com: new static inlines resolve to no-ops if not config'd]\n[v7: JBeulich@novell.com: avoid redundant shifts/divides for *_bit lib calls]\n[v6: rebase to 3.1-rc1]\n[v5: no change from v4]\n[v4: rebase to 2.6.39]\nSigned-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>\nReviewed-by: Andrew Morton <akpm@linux-foundation.org>\nAcked-by: Jan Beulich <JBeulich@novell.com>\nAcked-by: Seth Jennings <sjenning@linux.vnet.ibm.com>\nCc: Jeremy Fitzhardinge <jeremy@goop.org>\nCc: Hugh Dickins <hughd@google.com>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: Nitin Gupta <ngupta@vflare.org>\nCc: Matthew Wilcox <matthew@wil.cx>\nCc: Chris Mason <chris.mason@oracle.com>\nCc: Rik Riel <riel@redhat.com>\n[v15: int/bool on some functions]\nSigned-off-by: Konrad Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/2ae676c09321fcc00b99c888c21f8a0017314d70"},{"sha":"f340194722eed7683a117fb4ddc69742a924c657","author":{"email":"017adcb67eaa7bc3974e87882304023d2fcc0db7@oracle.com","name":"Dan Magenheimer"},"message":"mm: frontswap: core swap subsystem hooks and headers\n\nThis patch, 2of4, contains the changes to the core swap subsystem.\nThis includes:\n\n(1) makes available core swap data structures (swap_lock, swap_list and\nswap_info) that are needed by frontswap.c but we don't need to expose them\nto the dozens of files that include swap.h so we create a new swapfile.h\njust to extern-ify these and modify their declarations to non-static\n\n(2) adds frontswap-related elements to swap_info_struct.  Frontswap_map\npoints to vzalloc'ed one-bit-per-swap-page metadata that indicates\nwhether the swap page is in frontswap or in the device and frontswap_pages\ncounts how many pages are in frontswap.\n\n(3) adds hooks in the swap subsystem and extends try_to_unuse so that\nfrontswap_shrink can do a \"partial swapoff\".\n\nNote that a failed frontswap_map allocation is safe... failure is noted\nby lack of \"FS\" in the subsequent printk.\n\n---\n\n[v14: rebase to 3.4-rc2]\n[v10: no change]\n[v9: akpm@linux-foundation.org: mark some statics __read_mostly]\n[v9: akpm@linux-foundation.org: add clarifying comments]\n[v9: akpm@linux-foundation.org: no need to loop repeating try_to_unuse]\n[v9: error27@gmail.com: remove superfluous check for NULL]\n[v8: rebase to 3.0-rc4]\n[v8: kamezawa.hiroyu@jp.fujitsu.com: change counter to atomic_t to avoid races]\n[v8: kamezawa.hiroyu@jp.fujitsu.com: comment to clarify informational counters]\n[v7: rebase to 3.0-rc3]\n[v7: JBeulich@novell.com: add new swap struct elements only if config'd]\n[v6: rebase to 3.0-rc1]\n[v6: lliubbo@gmail.com: fix null pointer deref if vzalloc fails]\n[v6: konrad.wilk@oracl.com: various checks and code clarifications/comments]\n[v5: no change from v4]\n[v4: rebase to 2.6.39]\nSigned-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>\nReviewed-by: Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>\nAcked-by: Jan Beulich <JBeulich@novell.com>\nAcked-by: Seth Jennings <sjenning@linux.vnet.ibm.com>\nCc: Jeremy Fitzhardinge <jeremy@goop.org>\nCc: Hugh Dickins <hughd@google.com>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: Nitin Gupta <ngupta@vflare.org>\nCc: Matthew Wilcox <matthew@wil.cx>\nCc: Chris Mason <chris.mason@oracle.com>\nCc: Rik Riel <riel@redhat.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\n[v11: Rebased, fixed mm/swapfile.c context change]\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>\n\nConflicts:\n\tinclude/linux/swap.h\n\tmm/page_io.c\n\tmm/swapfile.c\n\nChange-Id: I13e5a7c839ad00a10af371f366a5b6d15881984e","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/f340194722eed7683a117fb4ddc69742a924c657"},{"sha":"8c21bb18453136e4c034a8a8676e3c150f46a41a","author":{"email":"017adcb67eaa7bc3974e87882304023d2fcc0db7@oracle.com","name":"Dan Magenheimer"},"message":"mm: frontswap: core frontswap functionality\n\nThis patch, 3of4, provides the core frontswap code that interfaces between\nthe hooks in the swap subsystem and a frontswap backend via frontswap_ops.\n\n---\nNew file added: mm/frontswap.c\n\n[v14: add support for writethrough, per suggestion by aarcange@redhat.com]\n[v11: sjenning@linux.vnet.ibm.com: s/puts/failed_puts/]\n[v10: sjenning@linux.vnet.ibm.com: fix debugfs calls on 32-bit]\n[v9: akpm@linux-foundation.org: change \"flush\" to \"invalidate\", part 1]\n[v9: akpm@linux-foundation.org: mark some statics __read_mostly]\n[v9: akpm@linux-foundation.org: add clarifying comments]\n[v9: akpm@linux-foundation.org: no need to loop repeating try_to_unuse]\n[v9: error27@gmail.com: remove superfluous check for NULL]\n[v8: rebase to 3.0-rc4]\n[v8: kamezawa.hiroyu@jp.fujitsu.com: add comment to clarify find_next_to_unuse]\n[v7: rebase to 3.0-rc3]\n[v7: JBeulich@novell.com: use new static inlines, no-ops if not config'd]\n[v6: rebase to 3.1-rc1]\n[v6: lliubbo@gmail.com: use vzalloc]\n[v6: lliubbo@gmail.com: fix null pointer deref if vzalloc fails]\n[v6: konrad.wilk@oracl.com: various checks and code clarifications/comments]\n[v4: rebase to 2.6.39]\nSigned-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>\nAcked-by: Jan Beulich <JBeulich@novell.com>\nAcked-by: Seth Jennings <sjenning@linux.vnet.ibm.com>\nCc: Jeremy Fitzhardinge <jeremy@goop.org>\nCc: Hugh Dickins <hughd@google.com>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: Nitin Gupta <ngupta@vflare.org>\nCc: Matthew Wilcox <matthew@wil.cx>\nCc: Chris Mason <chris.mason@oracle.com>\nCc: Rik Riel <riel@redhat.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\n[v12: Squashed s/flush/invalidate/ in]\n[v15: A bit of cleanup and seperate DEBUGFS]\nSigned-off-by: Konrad Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/8c21bb18453136e4c034a8a8676e3c150f46a41a"},{"sha":"57075d74dc7ab341c752c16c005bf199088921e5","author":{"email":"017adcb67eaa7bc3974e87882304023d2fcc0db7@oracle.com","name":"Dan Magenheimer"},"message":"mm: frontswap: config and doc files\n\nThis patch 4of4 adds configuration and documentation files including a FAQ.\n\nChange-Id: I0cd55e679568c8da13093adb5aedcecec657dc74\n[v14: updated docs/FAQ to use zcache and RAMster as examples]\n[v10: no change]\n[v9: akpm@linux-foundation.org: sysfs->debugfs; no longer need Doc/ABI file]\n[v8: rebase to 3.0-rc4]\n[v7: rebase to 3.0-rc3]\n[v6: rebase to 3.0-rc1]\n[v5: change config default to n]\n[v4: rebase to 2.6.39]\nSigned-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>\nAcked-by: Jan Beulich <JBeulich@novell.com>\nAcked-by: Seth Jennings <sjenning@linux.vnet.ibm.com>\nCc: Jeremy Fitzhardinge <jeremy@goop.org>\nCc: Hugh Dickins <hughd@google.com>\nCc: Johannes Weiner <hannes@cmpxchg.org>\nCc: Nitin Gupta <ngupta@vflare.org>\nCc: Matthew Wilcox <matthew@wil.cx>\nCc: Chris Mason <chris.mason@oracle.com>\nCc: Rik Riel <riel@redhat.com>\nCc: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/57075d74dc7ab341c752c16c005bf199088921e5"},{"sha":"3a1dc4de7178a1de6ae9b87fa4831e79ddc29891","author":{"email":"da3a51b335cef0eb0e2c329c5ef6bcd6acef687a@oracle.com","name":"Konrad Rzeszutek Wilk"},"message":"MAINTAINER: Add myself for the frontswap API\n\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/3a1dc4de7178a1de6ae9b87fa4831e79ddc29891"},{"sha":"e58dd54eb07638563307ebabda35563d80d4f941","author":{"email":"da3a51b335cef0eb0e2c329c5ef6bcd6acef687a@oracle.com","name":"Konrad Rzeszutek Wilk"},"message":"frontswap: s/put_page/store/g s/get_page/load\n\nSounds so much more natural.\n\nSuggested-by: Andrea Arcangeli <aarcange@redhat.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/e58dd54eb07638563307ebabda35563d80d4f941"},{"sha":"2d7d72deefa924681bd8cef921aa4b05843b6ed3","author":{"email":"611d453c03d02ce713e72b62ff6a901ea7e9cd77@gmail.com","name":"Sasha Levin"},"message":"mm: frontswap: remove casting from function calls through ops structure\n\nRemoves unneeded casts.\n\nReviewed-by: Minchan Kim <minchan@kernel.org>\nSigned-off-by: Sasha Levin <levinsasha928@gmail.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/2d7d72deefa924681bd8cef921aa4b05843b6ed3"},{"sha":"ed9004631682218733901dac4daa11cc9d590194","author":{"email":"611d453c03d02ce713e72b62ff6a901ea7e9cd77@gmail.com","name":"Sasha Levin"},"message":"mm: frontswap: trivial coding convention issues\n\nReviewed-by: Minchan Kim <minchan@kernel.org>\nSigned-off-by: Sasha Levin <levinsasha928@gmail.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/ed9004631682218733901dac4daa11cc9d590194"},{"sha":"25df3788483ced183d3fe955a60ffcacc28f25bc","author":{"email":"611d453c03d02ce713e72b62ff6a901ea7e9cd77@gmail.com","name":"Sasha Levin"},"message":"mm: frontswap: split out __frontswap_curr_pages\n\nCode was duplicated in two functions, clean it up.\n\nAlso, assert that the deduplicated code runs under the swap spinlock.\n\nReviewed-by: Minchan Kim <minchan@kernel.org>\nSigned-off-by: Sasha Levin <levinsasha928@gmail.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/25df3788483ced183d3fe955a60ffcacc28f25bc"},{"sha":"c62899e39f4787f14be5cbe9a915ee242258f2cd","author":{"email":"611d453c03d02ce713e72b62ff6a901ea7e9cd77@gmail.com","name":"Sasha Levin"},"message":"mm: frontswap: split out __frontswap_unuse_pages\n\nAn attempt at making frontswap_shrink shorter and more readable. This patch\nsplits out walking through the swap list to find an entry with enough\npages to unuse.\n\nAlso, assert that the internal __frontswap_unuse_pages is called under swap\nlock, since that part of code was previously directly happen inside the lock.\n\nSigned-off-by: Sasha Levin <levinsasha928@gmail.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/c62899e39f4787f14be5cbe9a915ee242258f2cd"},{"sha":"acb5f92385d4b7ea7218394861ac307e57900243","author":{"email":"611d453c03d02ce713e72b62ff6a901ea7e9cd77@gmail.com","name":"Sasha Levin"},"message":"mm: frontswap: split frontswap_shrink further to simplify locking\n\nSplit frontswap_shrink to simplify the locking in the original code.\n\nAlso, assert that the function that was split still runs under the\nswap spinlock.\n\nSigned-off-by: Sasha Levin <levinsasha928@gmail.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/acb5f92385d4b7ea7218394861ac307e57900243"},{"sha":"d7f50c213b4b1187e9a1f3da9a0b73ce9a0049e9","author":{"email":"611d453c03d02ce713e72b62ff6a901ea7e9cd77@gmail.com","name":"Sasha Levin"},"message":"mm: frontswap: make all branches of if statement in put page consistent\n\nCurrently it has a complex structure where different things are compared\nat each branch. Simplify that and make both branches look similar.\n\nReviewed-by: Minchan Kim <minchan@kernel.org>\nSigned-off-by: Sasha Levin <levinsasha928@gmail.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/d7f50c213b4b1187e9a1f3da9a0b73ce9a0049e9"},{"sha":"9da4093f9d0212e49724ef9287231c7b7bc37abb","author":{"email":"611d453c03d02ce713e72b62ff6a901ea7e9cd77@gmail.com","name":"Sasha Levin"},"message":"mm: frontswap: remove unnecessary check during initialization\n\nThe check whether frontswap is enabled or not is done in the API functions in\nthe frontswap header, before they are passed to the internal\ndouble-underscored frontswap functions.\n\nRemove the check from __frontswap_init for consistency.\n\nReviewed-by: Minchan Kim <minchan@kernel.org>\nSigned-off-by: Sasha Levin <levinsasha928@gmail.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/9da4093f9d0212e49724ef9287231c7b7bc37abb"},{"sha":"0948296d749dcadbb4c43cb89e243c112fde8e4c","author":{"email":"611d453c03d02ce713e72b62ff6a901ea7e9cd77@gmail.com","name":"Sasha Levin"},"message":"mm: frontswap: split out function to clear a page out\n\nSigned-off-by: Sasha Levin <levinsasha928@gmail.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/0948296d749dcadbb4c43cb89e243c112fde8e4c"},{"sha":"adee38b0995f14bf397d47ea4b25bf9cda2dad94","author":{"email":"611d453c03d02ce713e72b62ff6a901ea7e9cd77@gmail.com","name":"Sasha Levin"},"message":"mm: frontswap: remove unneeded headers\n\nSigned-off-by: Sasha Levin <levinsasha928@gmail.com>\n[v1: Rebased with tracing removed]\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/adee38b0995f14bf397d47ea4b25bf9cda2dad94"},{"sha":"d4e48a0b27f1f47fc30da1d68e6821896a6b3ca2","author":{"email":"d65ea3c90af7aca4df42e0739d75ec70ee406024@linux.vnet.ibm.com","name":"Wanpeng Li"},"message":"mm/frontswap: cleanup doc and comment error\n\nSigned-off-by: Wanpeng Li <liwp.linux@gmail.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/d4e48a0b27f1f47fc30da1d68e6821896a6b3ca2"},{"sha":"702e37d6b65e3d4237a75c5aa206e360b271deb4","author":{"email":"527af9e7c640877508ac9f4ddd8647c066bca6c6@linux.vnet.ibm.com","name":"Seth Jennings"},"message":"mm/frontswap: fix uninit'ed variable warning\n\nFixes uninitialized variable warning on 'type' in frontswap_shrink().\ntype is set before use by __frontswap_unuse_pages() called by\n__frontswap_shrink() called by frontswap_shrink() before use by\ntry_to_unuse().\n\nSigned-off-by: Seth Jennings <sjenning@linux.vnet.ibm.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/702e37d6b65e3d4237a75c5aa206e360b271deb4"},{"sha":"1c2c25b92d16ad774d21fedcdf6d1b1bb42945e6","author":{"email":"0a6aad489bf65c23415e55e6bee033aa588b7328@oracle.com","name":"Zhenzhong Duan"},"message":"mm: frontswap: fix a wrong if condition in frontswap_shrink\n\npages_to_unuse is set to 0 to unuse all frontswap pages\nBut that doesn't happen since a wrong condition in frontswap_shrink\ncancel it.\n\n-v2: Add comment to explain return value of __frontswap_shrink,\nas suggested by Dan Carpenter, thanks\n\nSigned-off-by: Zhenzhong Duan <zhenzhong.duan@oracle.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/1c2c25b92d16ad774d21fedcdf6d1b1bb42945e6"},{"sha":"56b24cfa01c51056d367b57b2c5cb2daf9025d75","author":{"email":"017adcb67eaa7bc3974e87882304023d2fcc0db7@oracle.com","name":"Dan Magenheimer"},"message":"frontswap: support exclusive gets if tmem backend is capable\n\nTmem, as originally specified, assumes that \"get\" operations\nperformed on persistent pools never flush the page of data out\nof tmem on a successful get, waiting instead for a flush\noperation.  This is intended to mimic the model of a swap\ndisk, where a disk read is non-destructive.  Unlike a\ndisk, however, freeing up the RAM can be valuable.  Over\nthe years that frontswap was in the review process, several\nreviewers (and notably Hugh Dickins in 2010) pointed out that\nthis would result, at least temporarily, in two copies of the\ndata in RAM: one (compressed for zcache) copy in tmem,\nand one copy in the swap cache.  We wondered if this could\nbe done differently, at least optionally.\n\nThis patch allows tmem backends to instruct the frontswap\ncode that this backend performs exclusive gets.  Zcache2\nalready contains hooks to support this feature.  Other\nbackends are completely unaffected unless/until they are\nupdated to support this feature.\n\nWhile it is not clear that exclusive gets are a performance\nwin on all workloads at all times, this small patch allows for\nexperimentation by backends.\n\nP.S. Let's not quibble about the naming of \"get\" vs \"read\" vs\n\"load\" etc.  The naming is currently horribly inconsistent between\ncleancache and frontswap and existing tmem backends, so will need\nto be straightened out as a separate patch.  \"Get\" is used\nby the tmem architecture spec, existing backends, and\nall documentation and presentation material so I am\nusing it in this patch.\n\nSigned-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/56b24cfa01c51056d367b57b2c5cb2daf9025d75"},{"sha":"a65bdd98e9ffceaa4114cdbe6669ac2a23d3eafa","author":{"email":"017adcb67eaa7bc3974e87882304023d2fcc0db7@oracle.com","name":"Dan Magenheimer"},"message":"mm: frontswap: lazy initialization to allow tmem backends to build/run as modules\n\nWith the goal of allowing tmem backends (zcache, ramster, Xen tmem) to\nbe built/loaded as modules rather than built-in and enabled by a boot\nparameter, this patch provides \"lazy initialization\", allowing backends\nto register to frontswap even after swapon was run.  Before a backend\nregisters all calls to init are recorded and the creation of tmem_pools\ndelayed until a backend registers or until a frontswap store is\nattempted.\n\nSigned-off-by: Stefan Hengelein <ilendir@googlemail.com>\nSigned-off-by: Florian Schmaus <fschmaus@gmail.com>\nSigned-off-by: Andor Daam <andor.daam@googlemail.com>\nSigned-off-by: Dan Magenheimer <dan.magenheimer@oracle.com>\n[v1: Fixes per Seth Jennings suggestions]\n[v2: Removed FRONTSWAP_HAS_.. ]\n[v3: Fix up per Bob Liu <lliubbo@gmail.com> recommendations]\n[v4: Fix up per Andrew's comments]\nSigned-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>\nSigned-off-by: Bob Liu <lliubbo@gmail.com>\nCc: Wanpeng Li <liwanp@linux.vnet.ibm.com>\nCc: Dan Magenheimer <dan.magenheimer@oracle.com>\nCc: Minchan Kim <minchan@kernel.org>\nSigned-off-by: Andrew Morton <akpm@linux-foundation.org>\nSigned-off-by: Linus Torvalds <torvalds@linux-foundation.org>","distinct":true,"url":"https://api.github.com/repos/CyanogenMod/android_kernel_motorola_msm8960dt-common/commits/a65bdd98e9ffceaa4114cdbe6669ac2a23d3eafa"}]}