]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
crimson/os/seastore/zbd: Split iovs in case of bigger buffer sizes.
authorAravind Ramesh <aravind.ramesh@wdc.com>
Tue, 11 Jul 2023 04:09:36 +0000 (06:09 +0200)
committerAravind Ramesh <aravind.ramesh@wdc.com>
Thu, 13 Jul 2023 13:21:10 +0000 (15:21 +0200)
commitc15c0de4886a839ffebfd22d8204e7d1ca8a65b2
tree80f04f66e2938bcfce6ef8f12a962eeab618f10a
parent181e6394014dcdca3d1d0cea5f35e92545cb84b9
crimson/os/seastore/zbd: Split iovs in case of bigger buffer sizes.

In Seastore's ZBDSegmentManager, during long running write workloads
if write buffer size exceeds max buf size(IOV_MAX, 16MB),
it was resulting in an assert:
ceph/src/include/buffer.h:1189 : In function 'void ceph::buffer::v15_2_0::list::prepare_iov(VectorT*) const [with VectorT = std::vector<iovec>]', ceph_assert(%s)

This case is handled in BlockSegmentManager by splitting the
IO vectors to appropriate sizes and assert does not happen.

Updated the ZBDSegmentManager to similarly split IO vectors to
appropriate size.

Signed-off-by: Aravind Ramesh <Aravind.Ramesh@wdc.com>
src/crimson/os/seastore/segment_manager/zbd.cc