On 03/16/2018 07:37 AM, Alex Elder wrote: > I e-mailed these patches to myself so I could review them via > e-mail. They are the patches described in this message about > a month ago: I promised Ilya I would finally review these while on a long plane ride yesterday I got through about a third of them so far. Almost everything is good, but I have problems with the macros used for iterating over bios and biovs, and supplied some example code of what I think is a better way. Rather than wait until all of them are reviewed I thought I should at least send out what I've done so far. I'll try to finish the rest this week (possibly today, but no promises). -Alex > Subject: wip-fancy-striping in ceph/ceph-client > > Hello, > > I've pushed wip-fancy-striping with my striping v2 patches. I didn't > want to patch bomb the list and opened a dummy PR for feedback: > > https://github.com/ceph/ceph-client/pull/19 > > As this is a full striping v2 implementation with adjacent extent > merging and no limitations on parent layouts, the patch set is very > invasive -- it's basically a rewrite of the entire I/O path. Any > review comments and testing cycles would be greatly appreciated! > > Thanks, > > Ilya > > -Alex > > Ilya Dryomov (32): > rbd: set max_segment_size to UINT_MAX > libceph: eliminate overflows in ceph_calc_file_object_mapping() > libceph, ceph: change ceph_calc_file_object_mapping() signature > rbd: start enums at 1 instead of 0 > libceph, rbd: new bio handling code (aka don't clone bios) > rbd: remove bio cloning helpers > rbd: don't (ab)use obj_req->pages for stat requests > rbd: get rid of img_req->copyup_pages > libceph: introduce BVECS data type > rbd: move from raw pages to bvec data descriptors > libceph: handle zero-length data items > rbd: new request handling code > rbd: remove old request handling code > rbd: simplify rbd_osd_req_create() > rbd: add img_req->op_type field > rbd: update rbd_img_request_submit() signature > rbd: new request completion code > rbd: remove old request completion code > rbd: remove obj_req->flags field > rbd: store data_type in img_req instead of obj_req > libceph: striping framework implementation > libceph, ceph: move ceph_calc_file_object_mapping() to striper.c > rbd: incorporate ceph_object_extent > rbd: move to obj_req->img_extents > rbd: create+truncate for whole-object layered discards > rbd: switch to common striping framework > rbd: remove rbd_img_request_fill() and helpers > rbd: get rid of img_req->{offset,length} > rbd: remove rbd_parent_request_{create,destroy}() > rbd: introduce OWN_BVECS data type > rbd: adjust queue limits for "fancy" striping > rbd: allow "fancy" striping > > drivers/block/rbd.c | 2538 ++++++++++++++++----------------------- > fs/ceph/addr.c | 17 +- > fs/ceph/ioctl.c | 13 +- > include/linux/ceph/messenger.h | 101 +- > include/linux/ceph/osd_client.h | 18 +- > include/linux/ceph/osdmap.h | 6 - > include/linux/ceph/striper.h | 69 ++ > net/ceph/Makefile | 1 + > net/ceph/messenger.c | 190 +-- > net/ceph/osd_client.c | 62 +- > net/ceph/osdmap.c | 71 -- > net/ceph/striper.c | 261 ++++ > 12 files changed, 1635 insertions(+), 1712 deletions(-) > create mode 100644 include/linux/ceph/striper.h > create mode 100644 net/ceph/striper.c > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html