From b322be3be5eaffe693920e4c7c3585e4b07861ff Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 6 Jun 2017 16:55:23 -0400 Subject: [PATCH] osd: put pg_log_entry_t::snaps in osd_pglog mempool Signed-off-by: Sage Weil --- src/osd/ECTransaction.cc | 1 + src/osd/ReplicatedBackend.cc | 1 + src/osd/osd_types.cc | 1 + src/osd/osd_types.h | 9 ++++++--- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/osd/ECTransaction.cc b/src/osd/ECTransaction.cc index 91fbf5a58d9..b23174f67fd 100644 --- a/src/osd/ECTransaction.cc +++ b/src/osd/ECTransaction.cc @@ -169,6 +169,7 @@ void ECTransaction::generate_transactions( bufferlist bl(op.updated_snaps->second.size() * 8 + 8); ::encode(op.updated_snaps->second, bl); entry->snaps.swap(bl); + entry->snaps.reassign_to_mempool(mempool::mempool_osd_pglog); } ldpp_dout(dpp, 20) << "generate_transactions: " diff --git a/src/osd/ReplicatedBackend.cc b/src/osd/ReplicatedBackend.cc index e092ca63010..07c0d316cf6 100644 --- a/src/osd/ReplicatedBackend.cc +++ b/src/osd/ReplicatedBackend.cc @@ -361,6 +361,7 @@ void generate_transaction( bufferlist bl(oiter->second.updated_snaps->second.size() * 8 + 8); ::encode(oiter->second.updated_snaps->second, bl); le.snaps.swap(bl); + le.snaps.reassign_to_mempool(mempool::mempool_osd_pglog); } } diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index c0ec1f8fc3c..7f450005c5b 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -3982,6 +3982,7 @@ void pg_log_entry_t::decode(bufferlist::iterator &bl) ::decode(snaps, bl); // ensure snaps does not pin a larger buffer in memory snaps.rebuild(); + snaps.reassign_to_mempool(mempool::mempool_osd_pglog); } if (struct_v >= 8) diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index c2cd5612d9b..cc00d2a75d1 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -3319,7 +3319,9 @@ struct pg_log_entry_t { pg_log_entry_t() : user_version(0), return_code(0), op(0), - invalid_hash(false), invalid_pool(false) {} + invalid_hash(false), invalid_pool(false) { + snaps.reassign_to_mempool(mempool::mempool_osd_pglog); + } pg_log_entry_t(int _op, const hobject_t& _soid, const eversion_t& v, const eversion_t& pv, version_t uv, @@ -3327,8 +3329,9 @@ struct pg_log_entry_t { int return_code) : soid(_soid), reqid(rid), version(v), prior_version(pv), user_version(uv), mtime(mt), return_code(return_code), op(_op), - invalid_hash(false), invalid_pool(false) - {} + invalid_hash(false), invalid_pool(false) { + snaps.reassign_to_mempool(mempool::mempool_osd_pglog); + } bool is_clone() const { return op == CLONE; } bool is_modify() const { return op == MODIFY; } -- 2.39.5