{"push_id":679131784,"size":7,"distinct_size":7,"ref":"refs/heads/zswap_842","head":"f8ff13a919d6b5df4d883ce4d88c18f88f3e4a38","before":"9df227a062f3bdefaa8bab93883403a38e679bdf","commits":[{"sha":"dda557429aeaa8cae85552bbb3935dbe0d6797b6","author":{"email":"9cf7b61c8faa5cbb1bbe4dcb6838d42eed5e6946@ieee.org","name":"Dan Streetman"},"message":"zpool: change pr_info to pr_debug\n\nChange the pr_info() calls to pr_debug().  There's no need for the extra\nverbosity in the log.  Also change the msg formats to be consistent.\n\nSigned-off-by: Dan Streetman <ddstreet@ieee.org>","distinct":true,"url":"https://api.github.com/repos/ddstreet/linux/commits/dda557429aeaa8cae85552bbb3935dbe0d6797b6"},{"sha":"d55d58091d3cf528c1ba58b4e1b518b5b8b9851f","author":{"email":"9cf7b61c8faa5cbb1bbe4dcb6838d42eed5e6946@ieee.org","name":"Dan Streetman"},"message":"zpool: add EXPORT_SYMBOL for functions\n\nExport the zpool functions that should be exported.\n\nSigned-off-by: Dan Streetman <ddstreet@ieee.org>","distinct":true,"url":"https://api.github.com/repos/ddstreet/linux/commits/d55d58091d3cf528c1ba58b4e1b518b5b8b9851f"},{"sha":"e2e81ba423fa19aa5b267e72e89cf5f08fe9e79a","author":{"email":"9cf7b61c8faa5cbb1bbe4dcb6838d42eed5e6946@ieee.org","name":"Dan Streetman"},"message":"zpool: add zpool_has_pool()\n\nAdd zpool_has_pool() function, indicating if the specified type of zpool\nis available (i.e. zsmalloc or zbud).  This allows checking if a pool is\navailable, without actually trying to allocate it, similar to\ncrypto_has_alg().\n\nSigned-off-by: Dan Streetman <ddstreet@ieee.org>","distinct":true,"url":"https://api.github.com/repos/ddstreet/linux/commits/e2e81ba423fa19aa5b267e72e89cf5f08fe9e79a"},{"sha":"e753088e15580eeb586599d87030c4e59d09fb50","author":{"email":"9cf7b61c8faa5cbb1bbe4dcb6838d42eed5e6946@ieee.org","name":"Dan Streetman"},"message":"module: add per-module params lock\n\nAdd a \"params_lock\" mutex to each module, and add a pointer to the owning\nmodule to struct kernel_param.  Then change the param sysfs modification\ncode to only use the global params_lock for built-ins, and use the\nper-module params_lock for all modules.  Also simplify the\nkernel_[un]block_sysfs_[read|write]() functions, to simply\nkernel_[un]block_sysfs().\n\nThe kernel param code currently uses a single global mutex to protect\nmodification of any and all kernel params.  While this generally works,\nthere is one specific problem with it; a module callback function\ncannot safely load another module, i.e. with request_module() or even\nwith indirect calls such as crypto_has_alg().  If the module to be\nloaded has any of its params configured (e.g. with a /etc/modprobe.d/*\nconfig file), then the attempt will result in a deadlock between the\nfirst module param callback waiting for modprobe, and modprobe trying to\nlock the global kernel param mutex to set the new module's param.\n\nThis fixes that by using per-module mutexes, so that each individual module\nis protected against concurrent changes in its own kernel params, but is\nnot blocked by changes to other module params.  All built-in modules\ncontinue to use the global mutex, since they will always be loaded at\nruntime and references (e.g. request_module(), crypto_has_alg()) to them\nwill never cause load-time param changing.\n\nThis also simplifies the interface used by modules to block sysfs access\nto their params; while there are currently functions to block and unblock\nsysfs param access (i.e. lock and unlock the mutex) which are split up\nby read and write, and each expect a single kernel param to be passed,\ntheir actual operation is identical and applies to all params, not just\nthe one passed to them.  They are thus replaced with simplified functions\nthat clearly indicate that all params for a module are being blocked, both\nfor read and write access.\n\nSigned-off-by: Dan Streetman <ddstreet@ieee.org>","distinct":true,"url":"https://api.github.com/repos/ddstreet/linux/commits/e753088e15580eeb586599d87030c4e59d09fb50"},{"sha":"c07a378067f7f217a46fcbc553fe6443d778ab05","author":{"email":"9cf7b61c8faa5cbb1bbe4dcb6838d42eed5e6946@ieee.org","name":"Dan Streetman"},"message":"zswap: runtime enable/disable\n\nChange the \"enabled\" parameter to be configurable at runtime.  Remove\nthe enabled check from init(), and move it to the frontswap store()\nfunction; when enabled, pages will be stored, and when disabled, pages\nwon't be stored.\n\nSigned-off-by: Dan Streetman <ddstreet@ieee.org>","distinct":true,"url":"https://api.github.com/repos/ddstreet/linux/commits/c07a378067f7f217a46fcbc553fe6443d778ab05"},{"sha":"904cbf50ae9fdf031742000150ea5a7907c97336","author":{"email":"9cf7b61c8faa5cbb1bbe4dcb6838d42eed5e6946@ieee.org","name":"Dan Streetman"},"message":"zswap: dynamic pool creation\n\nAdd dynamic creation of pools.  Move the static crypto compression\nper-cpu transforms into each pool.  Add a pointer to zswap_entry to\nthe pool it's in.\n\nThis is required by the following patch which enables changing the\nzswap zpool and compressor params at runtime.\n\nSigned-off-by: Dan Streetman <ddstreet@ieee.org>","distinct":true,"url":"https://api.github.com/repos/ddstreet/linux/commits/904cbf50ae9fdf031742000150ea5a7907c97336"},{"sha":"f8ff13a919d6b5df4d883ce4d88c18f88f3e4a38","author":{"email":"9cf7b61c8faa5cbb1bbe4dcb6838d42eed5e6946@ieee.org","name":"Dan Streetman"},"message":"zswap: change zpool/compressor at runtime\n\nChange the zpool and compressor parameters to be changable at runtime.\nWhen changed, a new pool is created with the requested zpool/compressor,\nand added as the current pool at the front of the pool list.  Previous\npools remain in the list only to remove existing compressed pages from.\nThe old pool(s) are removed once they become empty.\n\nSigned-off-by: Dan Streetman <ddstreet@ieee.org>","distinct":true,"url":"https://api.github.com/repos/ddstreet/linux/commits/f8ff13a919d6b5df4d883ce4d88c18f88f3e4a38"}]}