]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #59391 from cyx1231st/wip-seastore-more-reports2
authorYingxin <yingxin.cheng@intel.com>
Thu, 29 Aug 2024 05:48:16 +0000 (13:48 +0800)
committerGitHub <noreply@github.com>
Thu, 29 Aug 2024 05:48:16 +0000 (13:48 +0800)
crimson/os/seastore/cache: report dirty cache usage and rewrite stats

Reviewed-by: Xuehan Xu <xuxuehan@qianxin.com>
1  2 
src/crimson/os/seastore/cache.cc
src/crimson/os/seastore/seastore.cc
src/crimson/os/seastore/transaction_manager.cc

Simple merge
Simple merge
index 62c88b49be3b3183ea94a0cb697a74396ebfe694,38558643526f483e662eaa51f70a5173ebbd012d..96a94f39c7dc7d6bb34767e6dd6673d778e003e1
@@@ -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();