{"push_id":2440995707,"size":32,"distinct_size":32,"ref":"refs/heads/for-4.17/core","head":"794def145e7966ad9f320663175a996a16bf5861","before":"40a04f5e58040be74e94a7568f3138eff71f4b41","commits":[{"sha":"0500351762260bffb5de8338fb9557be6ad87000","author":{"name":"Hans Holmberg","email":"bd4b8543b6a6e8377ee63c4863de56fd4d0e6dc0@cnexlabs.com"},"message":"lightnvm: pblk: export write amplification counters to sysfs\n\nIn a SSD, write amplification, WA, is defined as the average\nnumber of page writes per user page write. Write amplification\nnegatively affects write performance and decreases the lifetime\nof the disk, so it's a useful metric to add to sysfs.\n\nIn plkb's case, the number of writes per user sector is the sum of:\n\n    (1) number of user writes\n    (2) number of sectors written by the garbage collector\n    (3) number of sectors padded (i.e. due to syncs)\n\nThis patch adds persistent counters for 1-3 and two sysfs attributes\nto export these along with WA calculated with five decimals:\n\n    write_amp_mileage: the accumulated write amplification stats\n                      for the lifetime of the pblk instance\n\n    write_amp_trip: resetable stats to facilitate delta measurements,\n                    values reset at creation and if 0 is written\n                    to the attribute.\n\n64-bit counters are used as a 32 bit counter would wrap around\nalready after about 17 TB worth of user data. It will take a\nlong long time before the 64 bit sector counters wrap around.\n\nThe counters are stored after the bad block bitmap in the first\nemeta sector of each written line. There is plenty of space in the\nfirst emeta sector, so we don't need to bump the major version of\nthe line data format.\n\nSigned-off-by: Hans Holmberg <hans.holmberg@cnexlabs.com>\nSigned-off-by: Javier González <javier@cnexlabs.com>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/0500351762260bffb5de8338fb9557be6ad87000"},{"sha":"0c35e3f46c94d7763e9fd655dddc59640ea13fc0","author":{"name":"Matias Bjørling","email":"819729f12474eb20b8f9b28b812b3f0e9113b42e@bjorling.me"},"message":"lightnvm: remove mlc pairs structure\n\nThe known implementations of the 1.2 specification, and upcoming 2.0\nimplementation all expose a sequential list of pages to write.\nRemove the data structure, as it is no longer needed.\n\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/0c35e3f46c94d7763e9fd655dddc59640ea13fc0"},{"sha":"45f3e5878fc54d11a647d917d5a5076b6fb68ffe","author":{"name":"Matias Bjørling","email":"819729f12474eb20b8f9b28b812b3f0e9113b42e@bjorling.me"},"message":"lightnvm: remove multiple groups in 1.2 data structure\n\nOnly one id group from the 1.2 specification is supported. Make\nsure that only the first group is accessible.\n\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/45f3e5878fc54d11a647d917d5a5076b6fb68ffe"},{"sha":"fbd6687e00a15ad42e7014657b4a7823a2e3da6b","author":{"name":"Hans Holmberg","email":"bd4b8543b6a6e8377ee63c4863de56fd4d0e6dc0@cnexlabs.com"},"message":"lightnvm: pblk: add padding distribution sysfs attribute\n\nWhen pblk receives a sync, all data up to that point in the write buffer\nmust be comitted to persistent storage, and as flash memory comes with a\nminimal write size there is a significant cost involved both in terms\nof time for completing the sync and in terms of write amplification\npadded sectors for filling up to the minimal write size.\n\nIn order to get a better understanding of the costs involved for syncs,\nAdd a sysfs attribute to pblk: padded_dist, showing a normalized\ndistribution of sectors padded. In order to facilitate measurements of\nspecific workloads during the lifetime of the pblk instance, the\ndistribution can be reset by writing 0 to the attribute.\n\nDo this by introducing counters for each possible padding:\n{0..(minimal write size - 1)} and calculate the normalized distribution\nwhen showing the attribute.\n\nSigned-off-by: Hans Holmberg <hans.holmberg@cnexlabs.com>\nSigned-off-by: Javier González <javier@cnexlabs.com>\nRearranged total_buckets statement in pblk_sysfs_get_padding_dist\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/fbd6687e00a15ad42e7014657b4a7823a2e3da6b"},{"sha":"d633bafeecbe2bc7c3f2518780dc026ed1169075","author":{"name":"Hans Holmberg","email":"bd4b8543b6a6e8377ee63c4863de56fd4d0e6dc0@cnexlabs.com"},"message":"lightnvm: pblk: delete writer kick timer before stopping thread\n\nUnless we delete the timer that wakes up the write thread\nbefore we stop the thread we risk re-starting the thread, so\ndelete the timer first.\n\nSigned-off-by: Hans Holmberg <hans.holmberg@cnexlabs.com>\nReviewed-by: Javier González <javier@cnexlabs.com>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/d633bafeecbe2bc7c3f2518780dc026ed1169075"},{"sha":"6f75a11a8d4d7394d64e387b5d9df5ca280d1cef","author":{"name":"Hans Holmberg","email":"bd4b8543b6a6e8377ee63c4863de56fd4d0e6dc0@cnexlabs.com"},"message":"lightnvm: pblk: allow allocation of new lines during shutdown\n\nWhen shutting down pblk the write buffer is flushed and if the\ncurrent line can't fit the data in the write buffer we need\nto allocate a new line, so remove the check that prevents this.\n\nSigned-off-by: Hans Holmberg <hans.holmberg@cnexlabs.com>\nReviewed-by: Javier González <javier@cnexlabs.com>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/6f75a11a8d4d7394d64e387b5d9df5ca280d1cef"},{"sha":"5f8d6454c8497fbfc66e386b5969f2f4e1550d10","author":{"name":"Hans Holmberg","email":"bd4b8543b6a6e8377ee63c4863de56fd4d0e6dc0@cnexlabs.com"},"message":"lightnvm: pblk: prevent race in pblk_rb_flush_point_set\n\nMake sure that we are not advancing the sync pointer while\nwe're adding bios to the write buffer entry completion list.\n\nThis race condition results in bios not completing and was identified\nby a hang when running xfstest generic/113.\n\nSigned-off-by: Hans Holmberg <hans.holmberg@cnexlabs.com>\nReviewed-by: Javier González <javier@cnexlabs.com>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/5f8d6454c8497fbfc66e386b5969f2f4e1550d10"},{"sha":"d2d5d9f5ef7885de9009ae429329c7361c3fd60c","author":{"name":"Javier González","email":"844d1b02d1782524ac06c3d5a467531a4b7d49ab@lightnvm.io"},"message":"lightnvm: pblk: refactor bad block identification\n\nIn preparation for the OCSSD 2.0 spec. bad block identification,\nrefactor the current code to generalize bad block get/set functions and\nstructures.\n\nSigned-off-by: Javier González <javier@cnexlabs.com>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/d2d5d9f5ef7885de9009ae429329c7361c3fd60c"},{"sha":"2cfcb0c04c7ac994cf30e73db921544443182914","author":{"name":"Matias Bjørling","email":"f5afc1d95ec3b8ab050f1fa144a9efeee9a29c73@lightnvm.io"},"message":"lightnvm: make 1.2 data structures explicit\n\nMake the 1.2 data structures explicit, so it will be easy to identify\nthe 2.0 data structures. Also fix the order of which the nvme_nvm_*\nare declared, such that they follow the nvme_nvm_command order.\n\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/2cfcb0c04c7ac994cf30e73db921544443182914"},{"sha":"dc9a95f995921e102dc213b1d9c6819b48768bcf","author":{"name":"Matias Bjørling","email":"f5afc1d95ec3b8ab050f1fa144a9efeee9a29c73@lightnvm.io"},"message":"lightnvm: flatten nvm_id_group into nvm_id\n\nThere are no groups in the 2.0 specification, make sure that the\nnvm_id structure is flattened before 2.0 data structures are added.\n\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/dc9a95f995921e102dc213b1d9c6819b48768bcf"},{"sha":"04821145cf8097480a9a6c8f8f3c522b7adbd1e9","author":{"name":"Matias Bjørling","email":"f5afc1d95ec3b8ab050f1fa144a9efeee9a29c73@lightnvm.io"},"message":"lightnvm: add 2.0 geometry identification\n\nImplement the geometry data structures for 2.0 and enable a drive\nto be identified as one, including exposing the appropriate 2.0\nsysfs entries.\n\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/04821145cf8097480a9a6c8f8f3c522b7adbd1e9"},{"sha":"b28b9dfb689db182e9945aebc85665c2ca565914","author":{"name":"Matias Bjørling","email":"f5afc1d95ec3b8ab050f1fa144a9efeee9a29c73@lightnvm.io"},"message":"lightnvm: remove max_rq_size\n\nThe field is no longer used.\n\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/b28b9dfb689db182e9945aebc85665c2ca565914"},{"sha":"51ec0eb66db48f56548cb7f00a248f6e9eebc91e","author":{"name":"Matias Bjørling","email":"f5afc1d95ec3b8ab050f1fa144a9efeee9a29c73@lightnvm.io"},"message":"lightnvm: remove nvm_dev_ops->max_phys_sect\n\nThe value of max_phys_sect is always static. Instead of\ndefining it in the nvm_dev_ops structure, declare it as a global\nvalue.\n\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/51ec0eb66db48f56548cb7f00a248f6e9eebc91e"},{"sha":"85dbaa6f930b74d4312ce1e2d950a39aeba62b53","author":{"name":"Matias Bjørling","email":"f5afc1d95ec3b8ab050f1fa144a9efeee9a29c73@lightnvm.io"},"message":"nvme: lightnvm: add late setup of block size and metadata\n\nThe nvme driver sets up the size of the nvme namespace in two steps.\nFirst it initializes the device with standard logical block and\nmetadata sizes, and then sets the correct logical block and metadata\nsize. Due to the OCSSD 2.0 specification relies on the namespace to\nexpose these sizes for correct initialization, let it be updated\nappropriately on the LightNVM side as well.\n\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/85dbaa6f930b74d4312ce1e2d950a39aeba62b53"},{"sha":"c2e95c4de71a33e3405c87ff0768d2cb7815230f","author":{"name":"Heiner Litz","email":"a4afb756281ef54ba61334c555f2167ce956fb2c@ucsc.edu"},"message":"lightnvm: fix bad block initialization\n\nfix reading bad block device information to correctly setup the per line\nblk_bitmap during lightnvm initialization\n\nSigned-off-by: Heiner Litz <hlitz@ucsc.edu>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/c2e95c4de71a33e3405c87ff0768d2cb7815230f"},{"sha":"fab95623d6a3db5f5727768b6973bb2484d22925","author":{"name":"Johannes Thumshirn","email":"d9c2033816690d520874e8fc0d5751e487468597@suse.de"},"message":"lightnvm: centralize permission check for lightnvm ioctl\n\nCurrently all functions for handling the lightnvm core ioctl commands\ndo a check for CAP_SYS_ADMIN.\n\nChange this to fail early in nvm_ctl_ioctl(), so we don't have to\nduplicate the permission checks all over.\n\nSigned-off-by: Johannes Thumshirn <jthumshirn@suse.de>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/fab95623d6a3db5f5727768b6973bb2484d22925"},{"sha":"ea7742af0b3646a0f7d564f4f663021938bc6c01","author":{"name":"Heiner Litz","email":"a4afb756281ef54ba61334c555f2167ce956fb2c@ucsc.edu"},"message":"lightnvm: Avoid validation of default op value\n\nFixes: 38401d231de65 (\"lightnvm: set target over-provision on create ioctl\")\nSigned-off-by: Heiner Litz <hlitz@ucsc.edu>\nReviewed-by: Javier González <javier@cnexlabs.com>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/ea7742af0b3646a0f7d564f4f663021938bc6c01"},{"sha":"bf495264d760cc7c484fe4bb0de0f3766c82b816","author":{"name":"Javier González","email":"3143756678d9bea1c63e1e9bb72bc089a9106bec@cnexlabs.com"},"message":"lightnvm: pblk: refactor init/exit sequences\n\nRefactor init and exit sequences to eliminate dependencies among init\nmodules and improve readability.\n\nSigned-off-by: Javier González <javier@cnexlabs.com>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/bf495264d760cc7c484fe4bb0de0f3766c82b816"},{"sha":"00a0e7a249a0ddaedf9da6cec4f36c3c793ba9ad","author":{"name":"Javier González","email":"3143756678d9bea1c63e1e9bb72bc089a9106bec@cnexlabs.com"},"message":"lightnvm: simplify geometry structure\n\nCurrently, the device geometry is stored redundantly in the nvm_id and\nnvm_geo structures at a device level. Moreover, when instantiating\ntargets on a specific number of LUNs, these structures are replicated\nand manually modified to fit the instance channel and LUN partitioning.\n\nInstead, create a generic geometry around nvm_geo, which can be used by\n(i) the underlying device to describe the geometry of the whole device,\nand (ii) instances to describe their geometry independently.\n\nSigned-off-by: Javier González <javier@cnexlabs.com>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/00a0e7a249a0ddaedf9da6cec4f36c3c793ba9ad"},{"sha":"d7e293ee089d4d36321483f9e420bfe7facc48ed","author":{"name":"Javier González","email":"3143756678d9bea1c63e1e9bb72bc089a9106bec@cnexlabs.com"},"message":"lightnvm: add minor version to generic geometry\n\nSeparate the version between major and minor on the generic geometry and\nrepresent it through sysfs in the 2.0 path. The 1.2 path only shows the\nmajor version to preserve the existing user space interface.\n\nSigned-off-by: Javier González <javier@cnexlabs.com>\nSigned-off-by: Matias Bjørling <mb@lightnvm.io>","distinct":true,"url":"https://api.github.com/repos/OpenChannelSSD/linux/commits/d7e293ee089d4d36321483f9e420bfe7facc48ed"}]}
{"actor":{"display_login":"MatiasBjorling"}}