From d4a4ed17bdf1e3e8d0a1b24f20fd25f5da6052cc Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 7 Feb 2023 13:18:39 +0000 Subject: [PATCH] crimson/osd: fix zeroed starting timestamp of tracked ops Signed-off-by: Radoslaw Zarzynski --- src/crimson/common/operation.h | 2 ++ src/crimson/osd/osd_operation.h | 3 +++ src/crimson/osd/osd_operations/logmissing_request.h | 1 + src/crimson/osd/osd_operations/logmissing_request_reply.h | 1 + src/crimson/osd/osd_operations/replicated_request.h | 1 + src/crimson/osd/pg_shard_manager.h | 3 +++ 6 files changed, 11 insertions(+) diff --git a/src/crimson/common/operation.h b/src/crimson/common/operation.h index c3be299fd0738..f26a3e860bc2b 100644 --- a/src/crimson/common/operation.h +++ b/src/crimson/common/operation.h @@ -326,6 +326,8 @@ class Operation : public boost::intrusive_ref_counter< return id; } + static constexpr bool is_trackable = false; + virtual unsigned get_type() const = 0; virtual const char *get_type_name() const = 0; virtual void print(std::ostream &) const = 0; diff --git a/src/crimson/osd/osd_operation.h b/src/crimson/osd/osd_operation.h index eb33442a44ce5..dbc13c20c6e67 100644 --- a/src/crimson/osd/osd_operation.h +++ b/src/crimson/osd/osd_operation.h @@ -146,6 +146,9 @@ protected: return typename InterruptorT::template futurize_t{std::move(ret)}; } } + +public: + static constexpr bool is_trackable = true; }; template diff --git a/src/crimson/osd/osd_operations/logmissing_request.h b/src/crimson/osd/osd_operations/logmissing_request.h index e05868a964884..5cd879912e5a1 100644 --- a/src/crimson/osd/osd_operations/logmissing_request.h +++ b/src/crimson/osd/osd_operations/logmissing_request.h @@ -51,6 +51,7 @@ public: ShardServices &shard_services, Ref pg); std::tuple< + StartEvent, ConnectionPipeline::AwaitActive::BlockingEvent, ConnectionPipeline::AwaitMap::BlockingEvent, ConnectionPipeline::GetPG::BlockingEvent, diff --git a/src/crimson/osd/osd_operations/logmissing_request_reply.h b/src/crimson/osd/osd_operations/logmissing_request_reply.h index 9d30798715854..e1c451be98ac6 100644 --- a/src/crimson/osd/osd_operations/logmissing_request_reply.h +++ b/src/crimson/osd/osd_operations/logmissing_request_reply.h @@ -51,6 +51,7 @@ public: ShardServices &shard_services, Ref pg); std::tuple< + StartEvent, ConnectionPipeline::AwaitActive::BlockingEvent, ConnectionPipeline::AwaitMap::BlockingEvent, ConnectionPipeline::GetPG::BlockingEvent, diff --git a/src/crimson/osd/osd_operations/replicated_request.h b/src/crimson/osd/osd_operations/replicated_request.h index 467a581c6dba8..f9c61a53ff07e 100644 --- a/src/crimson/osd/osd_operations/replicated_request.h +++ b/src/crimson/osd/osd_operations/replicated_request.h @@ -50,6 +50,7 @@ public: ShardServices &shard_services, Ref pg); std::tuple< + StartEvent, ConnectionPipeline::AwaitActive::BlockingEvent, ConnectionPipeline::AwaitMap::BlockingEvent, ConnectionPipeline::GetPG::BlockingEvent, diff --git a/src/crimson/osd/pg_shard_manager.h b/src/crimson/osd/pg_shard_manager.h index 51914bfaedf81..fc56e64eb1b97 100644 --- a/src/crimson/osd/pg_shard_manager.h +++ b/src/crimson/osd/pg_shard_manager.h @@ -312,6 +312,9 @@ public: auto &opref = *op; auto id = op->get_id(); + if constexpr (T::is_trackable) { + op->template track_event(); + } auto fut = opref.template enter_stage<>( opref.get_connection_pipeline().await_active ).then([this, &opref, &logger] { -- 2.39.5