return true;
}
-void OpTracker::register_inflight_op(xlist<TrackedOp*>::item *i)
+bool OpTracker::register_inflight_op(xlist<TrackedOp*>::item *i)
{
if (!tracking_enabled)
- return;
+ return false;
uint64_t current_seq = seq.inc();
uint32_t shard_index = current_seq % num_optracker_shards;
sdata->ops_in_flight_sharded.push_back(i);
sdata->ops_in_flight_sharded.back()->seq = current_seq;
}
+ return true;
}
void OpTracker::unregister_inflight_op(TrackedOp *i)
float complaint_time;
int log_threshold;
void _mark_event(TrackedOp *op, const string &evt, utime_t now);
+ bool tracking_enabled;
public:
- bool tracking_enabled;
CephContext *cct;
OpTracker(CephContext *cct_, bool tracking, uint32_t num_shards) : seq(0),
num_optracker_shards(num_shards),
}
bool dump_ops_in_flight(Formatter *f, bool print_only_blocked=false);
bool dump_historic_ops(Formatter *f);
- void register_inflight_op(xlist<TrackedOp*>::item *i);
+ bool register_inflight_op(xlist<TrackedOp*>::item *i);
void unregister_inflight_op(TrackedOp *i);
void get_age_ms_histogram(pow2_hist_t *h);
}
void dump(utime_t now, Formatter *f) const;
void tracking_start() {
- RWLock::RLocker l(tracker->lock);
- if (tracker->tracking_enabled) {
- tracker->register_inflight_op(&xitem);
+ if (tracker->register_inflight_op(&xitem)) {
events.push_back(make_pair(initiated_at, "initiated"));
is_tracked.set(1);
}