From: Casey Bodley Date: Tue, 25 Aug 2015 19:26:03 +0000 (-0400) Subject: blkin: osd op messages carry trace information X-Git-Tag: v12.0.3~73^2~23 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6159027fdac0e1b0e1efc61eeed089aeb0de6963;p=ceph.git blkin: osd op messages carry trace information Signed-off-by: Casey Bodley --- diff --git a/src/messages/MOSDECSubOpRead.h b/src/messages/MOSDECSubOpRead.h index 4e8beeb2d403..de9317e45a63 100644 --- a/src/messages/MOSDECSubOpRead.h +++ b/src/messages/MOSDECSubOpRead.h @@ -51,6 +51,7 @@ public: ::decode(op, p); if (header.version >= 3) { ::decode(min_epoch, p); + decode_trace(p); } else { min_epoch = map_epoch; } @@ -61,6 +62,7 @@ public: ::encode(map_epoch, payload); ::encode(op, payload, features); ::encode(min_epoch, payload); + encode_trace(payload, features); } const char *get_type_name() const override { return "MOSDECSubOpRead"; } diff --git a/src/messages/MOSDECSubOpReadReply.h b/src/messages/MOSDECSubOpReadReply.h index 5be21c932340..7ad931445c97 100644 --- a/src/messages/MOSDECSubOpReadReply.h +++ b/src/messages/MOSDECSubOpReadReply.h @@ -51,6 +51,7 @@ public: ::decode(op, p); if (header.version >= 2) { ::decode(min_epoch, p); + decode_trace(p); } else { min_epoch = map_epoch; } @@ -61,6 +62,7 @@ public: ::encode(map_epoch, payload); ::encode(op, payload); ::encode(min_epoch, payload); + encode_trace(payload, features); } const char *get_type_name() const override { return "MOSDECSubOpReadReply"; } diff --git a/src/messages/MOSDECSubOpWrite.h b/src/messages/MOSDECSubOpWrite.h index 6c8e7600e524..72a272c6ab02 100644 --- a/src/messages/MOSDECSubOpWrite.h +++ b/src/messages/MOSDECSubOpWrite.h @@ -55,6 +55,7 @@ public: ::decode(op, p); if (header.version >= 2) { ::decode(min_epoch, p); + decode_trace(p); } else { min_epoch = map_epoch; } @@ -65,6 +66,7 @@ public: ::encode(map_epoch, payload); ::encode(op, payload); ::encode(min_epoch, payload); + encode_trace(payload, features); } const char *get_type_name() const override { return "MOSDECSubOpWrite"; } diff --git a/src/messages/MOSDECSubOpWriteReply.h b/src/messages/MOSDECSubOpWriteReply.h index d29c2f9f117c..778a13d79849 100644 --- a/src/messages/MOSDECSubOpWriteReply.h +++ b/src/messages/MOSDECSubOpWriteReply.h @@ -51,6 +51,7 @@ public: ::decode(op, p); if (header.version >= 2) { ::decode(min_epoch, p); + decode_trace(p); } else { min_epoch = map_epoch; } @@ -61,6 +62,7 @@ public: ::encode(map_epoch, payload); ::encode(op, payload); ::encode(min_epoch, payload); + encode_trace(payload, features); } const char *get_type_name() const override { return "MOSDECSubOpWriteReply"; } diff --git a/src/messages/MOSDOp.h b/src/messages/MOSDOp.h index 4ca66396961f..b6b87f131de1 100755 --- a/src/messages/MOSDOp.h +++ b/src/messages/MOSDOp.h @@ -361,6 +361,10 @@ struct ceph_osd_request_head { ::encode(osdmap_epoch, payload); ::encode(flags, payload); ::encode(reqid, payload); + encode_trace(payload, features); + + // -- above decoded up front; below decoded post-dispatch thread -- + ::encode(client_inc, payload); ::encode(mtime, payload); ::encode(get_object_locator(), payload); @@ -393,6 +397,7 @@ struct ceph_osd_request_head { ::decode(osdmap_epoch, p); ::decode(flags, p); ::decode(reqid, p); + decode_trace(p); } else if (header.version == 7) { ::decode(pgid.pgid, p); // raw pgid hobj.set_hash(pgid.pgid.ps()); diff --git a/src/messages/MOSDOpReply.h b/src/messages/MOSDOpReply.h index 115d83b9a29d..ef701fda5bfb 100644 --- a/src/messages/MOSDOpReply.h +++ b/src/messages/MOSDOpReply.h @@ -32,7 +32,7 @@ class MOSDOpReply : public Message { - static const int HEAD_VERSION = 7; + static const int HEAD_VERSION = 8; static const int COMPAT_VERSION = 2; object_t oid; @@ -204,6 +204,7 @@ public: ::encode(redirect, payload); } } + encode_trace(payload, features); } } void decode_payload() override { @@ -294,6 +295,9 @@ public: ::decode(redirect, p); } } + if (header.version >= 8) { + decode_trace(p); + } } } diff --git a/src/messages/MOSDRepOp.h b/src/messages/MOSDRepOp.h index e2525158e4d9..8b01131fec48 100644 --- a/src/messages/MOSDRepOp.h +++ b/src/messages/MOSDRepOp.h @@ -81,10 +81,12 @@ public: p = payload.begin(); // splitted to partial and final ::decode(map_epoch, p); - if (header.version >= 2) + if (header.version >= 2) { ::decode(min_epoch, p); - else + decode_trace(p); + } else { min_epoch = map_epoch; + } ::decode(reqid, p); ::decode(pgid, p); } @@ -112,10 +114,12 @@ public: void encode_payload(uint64_t features) override { ::encode(map_epoch, payload); - if (HAVE_FEATURE(features, SERVER_LUMINOUS)) + if (HAVE_FEATURE(features, SERVER_LUMINOUS)) { ::encode(min_epoch, payload); - else + encode_trace(payload, features); + } else { header.version = 1; + } ::encode(reqid, payload); ::encode(pgid, payload); ::encode(poid, payload); diff --git a/src/messages/MOSDRepOpReply.h b/src/messages/MOSDRepOpReply.h index 890dade3d208..c3e5e0100427 100644 --- a/src/messages/MOSDRepOpReply.h +++ b/src/messages/MOSDRepOpReply.h @@ -63,10 +63,12 @@ public: void decode_payload() override { p = payload.begin(); ::decode(map_epoch, p); - if (header.version >= 2) + if (header.version >= 2) { ::decode(min_epoch, p); - else + decode_trace(p); + } else { min_epoch = map_epoch; + } ::decode(reqid, p); ::decode(pgid, p); } @@ -83,10 +85,12 @@ public: } void encode_payload(uint64_t features) override { ::encode(map_epoch, payload); - if (HAVE_FEATURE(features, SERVER_LUMINOUS)) + if (HAVE_FEATURE(features, SERVER_LUMINOUS)) { ::encode(min_epoch, payload); - else + encode_trace(payload, features); + } else { header.version = 1; + } ::encode(reqid, payload); ::encode(pgid, payload); ::encode(ack_type, payload);