public:
ZTracer::Trace osd_trace;
+ ZTracer::Trace pg_trace;
virtual ~TrackedOp() {}
#ifdef PG_DEBUG_REFS
_ref_id_lock("PG::_ref_id_lock"), _ref_id(0),
#endif
- deleting(false), dirty_info(false), dirty_big_info(false),
+ deleting(false),
+ trace_endpoint("0.0.0.0", 0, "PG"),
+ dirty_info(false), dirty_big_info(false),
info(p),
info_struct_v(0),
coll(p), pg_log(cct),
{
#ifdef PG_DEBUG_REFS
osd->add_pgid(p, this);
+#endif
+#ifdef WITH_BLKIN
+ std::stringstream ss;
+ ss << "PG " << info.pgid;
+ trace_endpoint.copy_name(ss.str());
#endif
osr->shard_hint = p;
}
public:
bool deleting; // true while in removing or OSD is shutting down
+ ZTracer::Endpoint trace_endpoint;
void lock_suspend_timeout(ThreadPool::TPHandle &handle);
void lock(bool no_lockdep = false) const;
OpRequestRef& op,
ThreadPool::TPHandle &handle)
{
+ if (op->osd_trace) {
+ op->pg_trace.init("pg op", &trace_endpoint, &op->osd_trace);
+ op->pg_trace.event("do request");
+ }
// make sure we have a new enough map
auto p = waiting_for_map.find(op->get_source());
if (p != waiting_for_map.end()) {