{"push_id":900369533,"size":31,"distinct_size":31,"ref":"refs/heads/tuxoko_zfs/abd2_rebase-10.12.2015","head":"9948b81383dc817a0487dfd70aeb5884cb856950","before":"2ca52784ffaa39b9efc003da531e0faa92515bb3","commits":[{"sha":"59462074025903acf4fdc0115f2407881a916926","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Introduce ABD: linear/scatter dual typed buffer for ARC\n\nzfsolinux currently uses vmalloc backed slab for ARC buffers. There are some\nmajor problems with this approach. One is that 32-bit system have only a\nhandful of vmalloc space. Another is that the fragmentation in slab will easily\ndeplete memory in busy system.\n\nWith ABD, we use scatterlist to allocate data buffers. In this approach we can\nallocate in HIGHMEM, which alleviates vmalloc space pressure on 32-bit. Also,\nwe don't have to rely on slab, so there's no fragmentation issue.\n\nBut for metadata buffers, we still uses linear buffer from slab. The reason for\nthis is that there are a lot of *_phys pointers directly point to metadata\nbuffers. Thus, it would be much more complicated to use scatter buffer for\nmetadata.\n\nCurrently, ABD is not enabled and its API will treat them as normal buffers.\nWe will enable it once all relevant code is modified to use the API.\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/59462074025903acf4fdc0115f2407881a916926"},{"sha":"9ec7f8b253577a04f3b03852b5232ebcea0dad5e","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Modify/Add incremental checksum function for abd_iterate_rfunc\n\nModify/Add incremental fletcher function prototype to match abd_iterate_rfunc\ncallback type. Also, reduce duplicated code a bit in zfs_fletcher.c.\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/9ec7f8b253577a04f3b03852b5232ebcea0dad5e"},{"sha":"dff36846c4d8c0ea98fb414006a1c6cf857285c9","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Use abd_t in arc_*.h, ddt.h, dmu.h and zio.h\n\n1. Use abd_t in arc_buf_t->b_data, dmu_buf_t->db_data, zio_t->io_data and\nzio_transform_t->zt_orig_data\n2. zio_* function take abd_t for data\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/dff36846c4d8c0ea98fb414006a1c6cf857285c9"},{"sha":"46685576da3749563711798889f51387aa1c7583","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Convert zio_checksum to ABD version\n\n1. Add checksum function for abd_t\n2. Use abd_t version checksum function in zio_checksum_table\n3. Make zio_checksum_compute and zio_checksum_error handle abd_t\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/46685576da3749563711798889f51387aa1c7583"},{"sha":"cdfebcd6a14af452fe5a66ce987355dfa50ff788","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in arc.c, bpobj.c and bptree.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/cdfebcd6a14af452fe5a66ce987355dfa50ff788"},{"sha":"97df9accb210e27d0ffe616be7022259573225ec","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in dbuf.c, ddt.c, dmu*.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/97df9accb210e27d0ffe616be7022259573225ec"},{"sha":"fe9523fa6471312934386aa7b41264cf68a6b434","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in dnode*.c, dsl_*.c, dsl_*.h\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/fe9523fa6471312934386aa7b41264cf68a6b434"},{"sha":"89812602712b7327548b416dcb4ee2b48deee39f","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in sa_impl.h, sa.c, space_map.c, spa.c, spa_history.c and zil.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/89812602712b7327548b416dcb4ee2b48deee39f"},{"sha":"1a1fc0878f6de3388c95aa3ad23e0d5ba5947534","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in zap*.c, zap_*.h, zfs_fuid.c, zfs_sa.c and zfs_vnops.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/1a1fc0878f6de3388c95aa3ad23e0d5ba5947534"},{"sha":"d3ed333bc3f5d136cc27b5adf12dcc5c9886c49d","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in zio.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/d3ed333bc3f5d136cc27b5adf12dcc5c9886c49d"},{"sha":"fa5fbb6db481c105f416408734c3d09b2f60de43","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in vdev*.c sans vdev_raidz.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/fa5fbb6db481c105f416408734c3d09b2f60de43"},{"sha":"793d341a572ca65cbe61031dc2b8e420b20993f7","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle abd_t in vdev_raidz.c\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/793d341a572ca65cbe61031dc2b8e420b20993f7"},{"sha":"34c34a3e992d8158b3dfa5f2aef74177d3543803","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Handle ABD in ztest and zdb\n\nUse ABD API on related pointers and functions.(b_data, db_data, zio_*(), etc.)\n\nSuggested-by: DHE <git@dehacked.net>\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/34c34a3e992d8158b3dfa5f2aef74177d3543803"},{"sha":"1546eb12a541421051266cec66df06012467205e","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Enable ABD\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/1546eb12a541421051266cec66df06012467205e"},{"sha":"51e0e4689ba42e97559b91cac17adfcbf7b2ce5d","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Split out miter part of copy funcs for abd_uiomove\n\nCurrently, abd_uiomove repeatedly calls abd_copy_*_off. The problem is that it\nwill need to do abd_miter_advance repeatedly over the parts that were skipped\nbefore.\n\nWe split out the miter part of the abd_copy_*_off into abd_miter_copy_*. These\nnew function will take miter directly and they will automatically advance it\nafter finish. We initialize an miter in uiomove and use the iterator copy\nfunctions to solve the stated problem.\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/51e0e4689ba42e97559b91cac17adfcbf7b2ce5d"},{"sha":"d79392779304d8cbd87f80e4bf09b6062496634f","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"tuxoko"},"message":"Fix dmu_send large block crash\n\nblksz and buf changed cause wrong arguments passed into abd_return_buf\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/d79392779304d8cbd87f80e4bf09b6062496634f"},{"sha":"98e2f9a5bf4110a94cc33c2f60b518c9a57c8b0b","author":{"email":"0d8609c212ab3f9760c0051ba4e9c6b9d92c1063@osnexus.com","name":"Chunwei Chen"},"message":"Only use abd_magic when we enable debug\n\nSigned-off-by: Chunwei Chen <david.chen@osnexus.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/98e2f9a5bf4110a94cc33c2f60b518c9a57c8b0b"},{"sha":"5f4b0a8eaea4547da43a81393ad04a49f1385a4c","author":{"email":"0d8609c212ab3f9760c0051ba4e9c6b9d92c1063@osnexus.com","name":"Chunwei Chen"},"message":"Remove unneeded ASSERT in abd_uiomove_*\n\nABD version of b815ec3\n\nSigned-off-by: Chunwei Chen <david.chen@osnexus.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/5f4b0a8eaea4547da43a81393ad04a49f1385a4c"},{"sha":"3deba5681851c2423a74e20a2626755007ceeecf","author":{"email":"4f9c0b864b7f9eb8a22fd0e8ad685c34bbc01268@intel.com","name":"Jinshan Xiong"},"message":"Optimize abd with contiguous pages and sg merging\n\nWhen we aren't allocating in HIGHMEM, we can try to allocate contiguous pages,\nwe can also use sg_alloc_table_from_pages to merge adjacent pages for us. This\nwill allow more efficient cache prefetch and also reduce sg iterator overhead.\nAnd this has been tested to greatly improve performance.\n\nSigned-off-by: Jinshan Xiong <jinshan.xiong@intel.com>\nSigned-off-by: Chunwei Chen <david.chen@osnexus.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/3deba5681851c2423a74e20a2626755007ceeecf"},{"sha":"3230d05d4b9cc1f8231901c39c1a82ee5d001e12","author":{"email":"1d34d2e6c70ee806ecb1ebb590a2bf31fd995e1f@gmail.com","name":"Chunwei Chen"},"message":"Add non-highmem scatter ABD\n\nThis patch adds non-highmem scatter ABD and also adds a new set of functions,\nnamely abd_buf_segment and friends, for accessing those ABD.\n\nThis is a preparation for metadata scatter ABD.\n\nSigned-off-by: Chunwei Chen <tuxoko@gmail.com>","distinct":true,"url":"https://api.github.com/repos/kernelOfTruth/zfs/commits/3230d05d4b9cc1f8231901c39c1a82ee5d001e12"}]}