This patchset aims zram clean-up. [1] clean up multiple pages's bvec handling. [2] clean up partial IO handling [3-6] clean up zram via using accessor and removing pointless structure.
With [2-6] applied, we can get a few hundred bytes as well as huge readibility enhance. This patchset is based on 2017-04-11-15-23 + recent ppc64 fixes[1] [1] https://lkml.org/lkml/2017/4/12/924 * from v1 * more clean up - Sergey * Fix zram_reset metadata overwrite - Sergey * Fix bvec handling in __zram_make_request * use zram_free_page in reset rather than zs_free x86: 708 byte save add/remove: 1/1 grow/shrink: 0/11 up/down: 478/-1186 (-708) function old new delta zram_special_page_read - 478 +478 zram_reset_device 317 314 -3 mem_used_max_store 131 128 -3 compact_store 96 93 -3 mm_stat_show 203 197 -6 zram_add 719 712 -7 zram_slot_free_notify 229 214 -15 zram_make_request 819 803 -16 zram_meta_free 128 111 -17 zram_free_page 180 151 -29 disksize_store 432 361 -71 zram_decompress_page.isra 504 - -504 zram_bvec_rw 2592 2080 -512 Total: Before=25350773, After=25350065, chg -0.00% ppc64: 231 byte save add/remove: 2/0 grow/shrink: 1/9 up/down: 681/-912 (-231) function old new delta zram_special_page_read - 480 +480 zram_slot_lock - 200 +200 vermagic 39 40 +1 mm_stat_show 256 248 -8 zram_meta_free 200 184 -16 zram_add 944 912 -32 zram_free_page 348 308 -40 disksize_store 572 492 -80 zram_decompress_page 664 564 -100 zram_slot_free_notify 292 160 -132 zram_make_request 1132 1000 -132 zram_bvec_rw 2768 2396 -372 Total: Before=17565825, After=17565594, chg -0.00% Minchan Kim (6): zram: handle multiple pages attached bio's bvec zram: partial IO refactoring zram: use zram_slot_lock instead of raw bit_spin_lock op zram: remove zram_meta structure zram: introduce zram data accessor zram: use zram_free_page instead of open-coded drivers/block/zram/zram_drv.c | 567 +++++++++++++++++++++--------------------- drivers/block/zram/zram_drv.h | 6 +- 2 files changed, 281 insertions(+), 292 deletions(-) -- 2.7.4