Merge pull request #4929 from wonzhq/tracked-op

common: tracked op fixes

Reviewed-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
Kefu Chai 2015-06-19 09:35:31 +08:00
commit edd3542df1
3 changed files with 25 additions and 5 deletions

View File

@ -152,6 +152,9 @@ void OpTracker::unregister_inflight_op(TrackedOp *i)
bool OpTracker::check_ops_in_flight(std::vector<string> &warning_vector)
{
if (!tracking_enabled)
return false;
utime_t now = ceph_clock_now(cct);
utime_t too_old = now;
too_old -= complaint_time;
@ -191,7 +194,8 @@ bool OpTracker::check_ops_in_flight(std::vector<string> &warning_vector)
int slow = 0; // total slow
int warned = 0; // total logged
for (uint32_t iter = 0; iter < num_optracker_shards; iter++) {
for (uint32_t iter = 0;
iter < num_optracker_shards && warned < log_threshold; iter++) {
ShardedTrackingData* sdata = sharded_in_flight_list[iter];
assert(NULL != sdata);
Mutex::Locker locker(sdata->ops_in_flight_lock_sharded);

View File

@ -242,9 +242,17 @@ bool MDS::asok_command(string command, cmdmap_t& cmdmap, string format,
f->dump_string("error", "mds_not_active");
} else if (command == "dump_ops_in_flight" ||
command == "ops") {
op_tracker.dump_ops_in_flight(f);
if (!op_tracker.tracking_enabled) {
ss << "op_tracker tracking is not enabled";
} else {
op_tracker.dump_ops_in_flight(f);
}
} else if (command == "dump_historic_ops") {
op_tracker.dump_historic_ops(f);
if (!op_tracker.tracking_enabled) {
ss << "op_tracker tracking is not enabled";
} else {
op_tracker.dump_historic_ops(f);
}
} else if (command == "osdmap barrier") {
int64_t target_epoch = 0;
bool got_val = cmd_getval(g_ceph_context, cmdmap, "target_epoch", target_epoch);

View File

@ -1635,9 +1635,17 @@ bool OSD::asok_command(string command, cmdmap_t& cmdmap, string format,
store->sync_and_flush();
} else if (command == "dump_ops_in_flight" ||
command == "ops") {
op_tracker.dump_ops_in_flight(f);
if (!op_tracker.tracking_enabled) {
ss << "op_tracker tracking is not enabled";
} else {
op_tracker.dump_ops_in_flight(f);
}
} else if (command == "dump_historic_ops") {
op_tracker.dump_historic_ops(f);
if (!op_tracker.tracking_enabled) {
ss << "op_tracker tracking is not enabled";
} else {
op_tracker.dump_historic_ops(f);
}
} else if (command == "dump_op_pq_state") {
f->open_object_section("pq");
op_shardedwq.dump(f);