From: Yingxin Date: Thu, 29 Aug 2024 05:48:16 +0000 (+0800) Subject: Merge pull request #59391 from cyx1231st/wip-seastore-more-reports2 X-Git-Tag: v20.0.0~1175 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2b32ce6b3c28014253460607b77f84309d0148ce;p=ceph.git Merge pull request #59391 from cyx1231st/wip-seastore-more-reports2 crimson/os/seastore/cache: report dirty cache usage and rewrite stats Reviewed-by: Xuehan Xu --- 2b32ce6b3c28014253460607b77f84309d0148ce diff --cc src/crimson/os/seastore/transaction_manager.cc index 62c88b49be3,38558643526..96a94f39c7d --- a/src/crimson/os/seastore/transaction_manager.cc +++ b/src/crimson/os/seastore/transaction_manager.cc @@@ -638,10 -638,15 +638,18 @@@ TransactionManager::rewrite_extent_ret assert(extent->is_valid() && !extent->is_initial_pending()); if (extent->is_dirty()) { + assert(extent->get_version() > 0); + if (is_root_type(extent->get_type())) { + // pass + } else if (extent->get_version() == 1 && extent->is_mutation_pending()) { + t.get_rewrite_stats().account_n_dirty(); + } else { + t.get_rewrite_stats().account_dirty(extent->get_version()); + } if (epm->can_inplace_rewrite(t, extent)) { + // FIXME: is_dirty() is true for mutation pending extents + // which shouldn't do inplace rewrite because a pending transaction + // may fail. DEBUGT("delta overwriting extent -- {}", t, *extent); t.add_inplace_rewrite_extent(extent); extent->set_inplace_rewrite_generation();