Radosław Zarzyński
0ea3cc8f6a
crimson/osd: migrate OperationThrottler to new tracking infra.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 12:39:28 +02:00
Radosław Zarzyński
ca9d38e1ec
crimson/osd: crimson/osd: drop blocking_future from PGActivationBlocker
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 12:39:28 +02:00
Radosław Zarzyński
409332f2f3
crimson/osd: crimson/osd: drop blocking_future from PGMap
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 12:39:28 +02:00
Radosław Zarzyński
f693fabfe8
crimson/osd: drop blocking_future from OSDMapGate
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 12:39:28 +02:00
Radosław Zarzyński
cd9d6bc2b5
crimson: bring the WaitBarrier tracking
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 12:38:54 +02:00
Radosław Zarzyński
013661412b
crimson: move PipelineStageIT::enter() dispatch to compile-time
...
The optimization isn't the goal (but rather a side effect). The
reason behind this change is to let pipeline stages define exit
barriers incorporating `OpT`-dependant `Triggers` to track blocking
that happens on the barriers.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:32 +02:00
Radosław Zarzyński
75a9cbbc74
crimson/os: add junction between OSD's ops and Seastore's OrderingHandle.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:32 +02:00
Radosław Zarzyński
b7e2b11595
crimson/osd: migrate AggregateBlocker-related ops to new tracking infra
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:32 +02:00
Radosław Zarzyński
ee759133fa
crimson/osd: bring AggregateBlockingEvent.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:32 +02:00
Radosław Zarzyński
232ea2cf45
crimson/osd: migrate PeeringEvent to new tracking infra, part 2
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:32 +02:00
Radosław Zarzyński
df5e76a261
crimson/osd: add BlockingEvent-aware variant of OSD::get_or_create_pg
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:32 +02:00
Radosław Zarzyński
69e465b2cf
crimson/osd: migrate InternalClientRequest to new tracking infra.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:32 +02:00
Radosław Zarzyński
9498b440e6
crimson/osd: migrate RecoverySubRequest to new tracking infra.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:32 +02:00
Radosław Zarzyński
313337983f
crimson/osd: migrate RepRequest to new tracking infra
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
11ed546e10
crimson/osd: migrate PGAdvanceMap to new tracking infra.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
6ac63fc43d
crimson/osd: reduce unnecessary indentation level in PGAdvanceMap::start()
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
e2fc6f9a93
crimson/osd: migrate PeeringEvent to new tracking infra.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
0fa5d9a749
crimson/osd: migrate BackgroundRecovery to new tracking infra.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
096e8c9035
crimson/osd: migrate BackfillRecoveryPipeline to new tracking infra.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
5c64306487
crimson/osd: CompoundPeeringRequest tracks its start and completion too
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
d3d7745c3a
crimson/osd: migrate CompoundPeeringRequest into new tracking infra
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
a9ce8d81c8
crimson/osd: move SubOpBlocker from .cc to header
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
8eedc17097
crimson/osd: PGActivationBlocker does support new tracking infra
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
1c1663d731
crimson/osd: dissect PG::WaitForActiveBlocker into PGActivationBlocker
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
cc71d8afe9
crimson/osd: PGMap blocker does support new tracking infra
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
89493f3da1
crimson/osd: make PhaseOperationT able to deal with interruptors
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
1c760fcb58
crimson/osd: pg_map.h doesn't pull pg.h anymore
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
633f45ac3b
crimson/osd: convert entire ClientRequest to the new infra
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
a0b7861a31
crimson/osd: slightly optimize OperationRegistryT::do_register()
...
There is no need to call the virtual op::get_type() twice.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
11f0814dcb
crimson/osd: fix an assertion failure in Formatter when dumping ops
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
9248607186
crimson/osd: implement dump_ops_in_flight
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
7e12e9a7b5
crimson/osd: track start and completion of ClientRequest
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
cd46a27393
crimson/osd: bring boilerplate for LTTng-based external tracking backend
...
At the moment it's mostly for verification & demonstration purposes.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
59fbd2cde0
crimson/osd: drop forward declaration of OSDMap osd.h
...
Having it doesn't make sense as we already include the header.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
f5ce518f1e
crimson/osd: add registry of external handlers of tracking events
...
This commit intentionally fails the build. It does that to verify
the static assertion on per-op-type lookup of event registry.
The concrete assertion is the one about `ClientRequest` as we
already moved two of its blocker into the new op tracking infra.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
33e4590d43
crimson/osd: switch one OSDMapGate of ClientRequest to new blocking infra
...
This time the demo of `BlockerT::BlockingEvent::TriggerI` which
is supposed to handle situations where:
1) `BlockerT` is separated from `TrackableOperationT` by many
intermediaries while
2) we don't want to templatize them all.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
3e99e526c0
crimson/osd: switch a stage of ClientRequest to new blocking infra
...
This is a debut of the new blocking & tracking infrastructure
using the type-aware `BlockerT::BlockingEvent::Trigger<T>`.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
c86c231dcc
crimson/osd: introduce PhasedOperationT to deduplicate PipelineHandles
...
This new class in the hierarchy will be handy when it will come to
introduce helpers for deailing with entering a pipeline stage.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
2676e395ac
crimson/osd: switch all OSD operations to TrackableOperationT
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
ae08ac0278
crimson/osd: get rid of unnecessary private in ClientRequest
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
5c83589ae5
crimson/osd: switch all ClientRequest-related pipeline stages to the new infra
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
f5292e6f81
crimson/osd: pipeline stage classes can be bases for CRTP now
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
61147363c2
crimson/osd: pipeline stage classes derive from BlockerT now
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
2dc3770f7a
crimson/osd: document OperationThrottler's behavior towards op's blocker list.
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
846ed08359
crimson/osd: simplify OperationThrottler::with_throttle()
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
f4a039278f
crimson/osd: move with_blocking_future from Operation to OperationT.
...
Buildability of this commit proves all users of `with_blocking_future()`
have the concrete operation type which is necessary on the the way
to the compile-time defined op's blocker registry.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
332a0d4de0
crimson/os/seastore: migrate OrderingHandle away from blocking_future
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
e054d79fe9
crimson/osd: OperationThrottler derives from BlockerT instead of Blocker.
...
One another step closer. See the previous' commit description.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
c35c49908c
crimson/osd: make OperationThrottler aware about exact type of operation
...
This is a step towards making op's blocker registry static and
compile-time checked.
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00
Radosław Zarzyński
6bafcac240
crimson/osd: make the OperationThrottler::with_throttle private
...
Signed-off-by: Radosław Zarzyński <rzarzyns@redhat.com>
2022-05-05 04:06:31 +02:00