]> 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)
committerMatan Breizman <mbreizma@redhat.com>
Tue, 17 Oct 2023 16:21:29 +0000 (16:21 +0000)
commit1a18da331dae9c2ac5450a7a5258b2551314a5e0
treeeb6bb312b2b14dd37df66033db517b5ea3455cb6
parentedc126d166f263cc90f37601851bfcb6e56dde8b
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>
(cherry picked from commit c15c0de4886a839ffebfd22d8204e7d1ca8a65b2)
src/crimson/os/seastore/segment_manager/zbd.cc