)]}'
{
  "log": [
    {
      "commit": "4f89849da22db9d0edb378acea65e23fcd546173",
      "tree": "8af95a340c8d8605ad8f492ef0f6f98f2a4e4523",
      "parents": [
        "f066ea230a65f939afc354beae62716ab5f0e645"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Tue Apr 30 15:26:54 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 30 17:04:00 2013 -0700"
      },
      "message": "frontswap: get rid of swap_lock dependency\n\nFrontswap initialization routine depends on swap_lock, which want to be\natomic about frontswap\u0027s first appearance.  IOW, frontswap is not present\nand will fail all calls OR frontswap is fully functional but if new\nswap_info_struct isn\u0027t registered by enable_swap_info, swap subsystem\ndoesn\u0027t start I/O so there is no race between init procedure and page I/O\nworking on frontswap.\n\nSo let\u0027s remove unnecessary swap_lock dependency.\n\nCc: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\n[v1: Rebased on my branch, reworked to work with backends loading late]\n[v2: Added a check for !map]\n[v3: Made the invalidate path follow the init path]\n[v4: Address comments by Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e]\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad@darnok.org\u003e\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Andor Daam \u003candor.daam@googlemail.com\u003e\nCc: Florian Schmaus \u003cfschmaus@gmail.com\u003e\nCc: Stefan Hengelein \u003cilendir@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f066ea230a65f939afc354beae62716ab5f0e645",
      "tree": "1056e57d4b0c9819c74bd929006cf352994230d2",
      "parents": [
        "1e01c968db3d0aebd48e31db15f24516b03128df"
      ],
      "author": {
        "name": "Bob Liu",
        "email": "lliubbo@gmail.com",
        "time": "Tue Apr 30 15:26:53 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 30 17:04:00 2013 -0700"
      },
      "message": "mm: frontswap: cleanup code\n\nAfter allowing tmem backends to build/run as modules, frontswap_enabled\nalways true if defined CONFIG_FRONTSWAP.  But frontswap_test() depends on\nwhether backend is registered, mv it into frontswap.c using fronstswap_ops\nto make the decision.\n\nfrontswap_set/clear are not used outside frontswap, so don\u0027t export them.\n\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Andor Daam \u003candor.daam@googlemail.com\u003e\nCc: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nCc: Florian Schmaus \u003cfschmaus@gmail.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Stefan Hengelein \u003cilendir@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e01c968db3d0aebd48e31db15f24516b03128df",
      "tree": "6f8ebed201fdc426a6926b4a2235e8dd2538f025",
      "parents": [
        "905cd0e1bf9ffe82d6906a01fd974ea0f70be97a"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue Apr 30 15:26:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 30 17:04:00 2013 -0700"
      },
      "message": "frontswap: make frontswap_init use a pointer for the ops\n\nThis simplifies the code in the frontswap - we can get rid of the\n\u0027backend_registered\u0027 test and instead check against frontswap_ops.\n\n[v1: Rebase on top of 703ba7fe5e0 (ramster-\u003ezcache move]\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Bob Liu \u003clliubbo@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Andor Daam \u003candor.daam@googlemail.com\u003e\nCc: Dan Magenheimer \u003cdan.magenheimer@oracle.com\u003e\nCc: Florian Schmaus \u003cfschmaus@gmail.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Stefan Hengelein \u003cilendir@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3483a5f3a8ef448c229a2aceca9b2ad6a46b8ec",
      "tree": "86c7348334d87ec8d92999307379b39912f4bd86",
      "parents": [
        "a00bb1e9fc0925c0061e9d844523a3a47a7e2f7f"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Thu Sep 20 12:16:52 2012 -0700"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Fri Sep 21 10:38:12 2012 -0400"
      },
      "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\u0027s 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 \u003cdan.magenheimer@oracle.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "165c8aed5bbc6bdddbccae0ba9db451732558ff9",
      "tree": "a039053eb4bc7cd05096e307368b50426b412659",
      "parents": [
        "839a1f79ed0ce026e6d1106f202eaaae929b4200"
      ],
      "author": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue May 15 11:32:15 2012 -0400"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue May 15 11:34:08 2012 -0400"
      },
      "message": "frontswap: s/put_page/store/g s/get_page/load\n\nSounds so much more natural.\n\nSuggested-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    },
    {
      "commit": "c3ba9698152b17fdc2c7cd0f7cbeb571e3367e9d",
      "tree": "b919ee68c3def31afd8aeba49390785d5c635c89",
      "parents": [
        "0034102808e0dbbf3a2394b82b1bb40b5778de9e"
      ],
      "author": {
        "name": "Dan Magenheimer",
        "email": "dan.magenheimer@oracle.com",
        "time": "Mon Apr 09 17:06:54 2012 -0600"
      },
      "committer": {
        "name": "Konrad Rzeszutek Wilk",
        "email": "konrad.wilk@oracle.com",
        "time": "Tue May 15 11:33:46 2012 -0400"
      },
      "message": "mm: frontswap: add frontswap header file\n\nFrontswap is the alter ego of cleancache, the \"yang\" to cleancache\u0027s\n\"yin\"... and more precisely frontswap is the provider of anonymous\npages to transcendent memory to nicely complement cleancache\u0027s 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\u0027d]\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 \u003cdan.magenheimer@oracle.com\u003e\nReviewed-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Jan Beulich \u003cJBeulich@novell.com\u003e\nAcked-by: Seth Jennings \u003csjenning@linux.vnet.ibm.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nCc: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Rik Riel \u003criel@redhat.com\u003e\n[v15: int/bool on some functions]\nSigned-off-by: Konrad Wilk \u003ckonrad.wilk@oracle.com\u003e\n"
    }
  ]
}
