Skip to content

Commit

Permalink
common/TrackedOp: Move tracking_enabled check into register_inflight_…
Browse files Browse the repository at this point in the history
…op()

Make tracking_enabled and the lock private.

Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 4e8e617)
  • Loading branch information
dzafman committed Nov 15, 2016
1 parent 5995205 commit e09a091
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
8 changes: 5 additions & 3 deletions src/common/TrackedOp.cc
Expand Up @@ -131,10 +131,11 @@ bool OpTracker::dump_ops_in_flight(Formatter *f, bool print_only_blocked)
return true;
}

void OpTracker::register_inflight_op(xlist<TrackedOp*>::item *i)
bool OpTracker::register_inflight_op(xlist<TrackedOp*>::item *i)
{
// caller checks;
assert(tracking_enabled);
RWLock::RLocker l(lock);
if (!tracking_enabled)
return false;

uint64_t current_seq = seq.inc();
uint32_t shard_index = current_seq % num_optracker_shards;
Expand All @@ -145,6 +146,7 @@ void OpTracker::register_inflight_op(xlist<TrackedOp*>::item *i)
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)
Expand Down
14 changes: 6 additions & 8 deletions src/common/TrackedOp.h
Expand Up @@ -75,16 +75,16 @@ class OpTracker {
float complaint_time;
int log_threshold;
void _mark_event(TrackedOp *op, const string &evt, utime_t now);
bool tracking_enabled;
RWLock lock;

public:
bool tracking_enabled;
CephContext *cct;
RWLock lock;
OpTracker(CephContext *cct_, bool tracking, uint32_t num_shards) : seq(0),
num_optracker_shards(num_shards),
complaint_time(0), log_threshold(0),
tracking_enabled(tracking), cct(cct_),
lock("OpTracker::lock") {
tracking_enabled(tracking),
lock("OpTracker::lock"), cct(cct_) {

for (uint32_t i = 0; i < num_optracker_shards; i++) {
char lock_name[32] = {0};
Expand All @@ -107,7 +107,7 @@ class OpTracker {
}
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);
Expand Down Expand Up @@ -201,9 +201,7 @@ class TrackedOp {
}
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);
}
Expand Down

0 comments on commit e09a091

Please sign in to comment.