]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
include/ceph_features: note kernel versions some features appear
authorIlya Dryomov <idryomov@gmail.com>
Mon, 5 Nov 2018 11:02:30 +0000 (12:02 +0100)
committerIlya Dryomov <idryomov@gmail.com>
Thu, 8 Nov 2018 14:14:14 +0000 (15:14 +0100)
"X" means that the feature bit has been advertised and supported since
kernel X.  It should be possible to use the kernel client with clusters
that don't support these features, but some of the combinations haven't
seen any testing in close to eight years (e.g. FLOCK or DIRLAYOUTHASH).

"X req" means that the feature bit has been advertised and required
since kernel X.

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
src/include/ceph_features.h

index f725095c5fd8d4f5c0738a1edb936a54a1db0dd4..a6f6a67350b069efb208ca76ff67aec392992854 100644 (file)
  * the bit ever speak to each other.
  */
 
+/*
+ * Notes on the kernel client:
+ *
+ * - "X" means that the feature bit has been advertised and supported
+ *   since kernel X
+ *
+ * - "X req" means that the feature bit has been advertised and required
+ *   since kernel X
+ *
+ * The remaining feature bits are not and have never been used by the
+ * kernel client.
+ */
+
 DEFINE_CEPH_FEATURE( 0, 1, UID)
-DEFINE_CEPH_FEATURE( 1, 1, NOSRCADDR)
+DEFINE_CEPH_FEATURE( 1, 1, NOSRCADDR)        // 2.6.35 req
 DEFINE_CEPH_FEATURE_RETIRED( 2, 1, MONCLOCKCHECK, JEWEL, LUMINOUS)
 DEFINE_CEPH_FEATURE( 2, 3, SERVER_NAUTILUS)
-DEFINE_CEPH_FEATURE( 3, 1, FLOCK)
-DEFINE_CEPH_FEATURE( 4, 1, SUBSCRIBE2)
+DEFINE_CEPH_FEATURE( 3, 1, FLOCK)            // 2.6.36
+DEFINE_CEPH_FEATURE( 4, 1, SUBSCRIBE2)       // 4.6 req
 DEFINE_CEPH_FEATURE( 5, 1, MONNAMES)
-DEFINE_CEPH_FEATURE( 6, 1, RECONNECT_SEQ)
-DEFINE_CEPH_FEATURE( 7, 1, DIRLAYOUTHASH)
+DEFINE_CEPH_FEATURE( 6, 1, RECONNECT_SEQ)    // 3.10 req
+DEFINE_CEPH_FEATURE( 7, 1, DIRLAYOUTHASH)    // 2.6.38
 DEFINE_CEPH_FEATURE( 8, 1, OBJECTLOCATOR)
-DEFINE_CEPH_FEATURE( 9, 1, PGID64)
+DEFINE_CEPH_FEATURE( 9, 1, PGID64)           // 3.9 req
 DEFINE_CEPH_FEATURE(10, 1, INCSUBOSDMAP)
-DEFINE_CEPH_FEATURE(11, 1, PGPOOL3)
+DEFINE_CEPH_FEATURE(11, 1, PGPOOL3)          // 3.9 req
 DEFINE_CEPH_FEATURE(12, 1, OSDREPLYMUX)
-DEFINE_CEPH_FEATURE(13, 1, OSDENC)
+DEFINE_CEPH_FEATURE(13, 1, OSDENC)           // 3.9 req
 DEFINE_CEPH_FEATURE_RETIRED(14, 1, OMAP, HAMMER, JEWEL)
 DEFINE_CEPH_FEATURE(14, 2, SERVER_KRAKEN)
 DEFINE_CEPH_FEATURE(15, 1, MONENC)
@@ -92,29 +105,29 @@ DEFINE_CEPH_FEATURE_RETIRED(16, 1, QUERY_T, JEWEL, LUMINOUS)
 DEFINE_CEPH_FEATURE(16, 3, SERVER_O)
 DEFINE_CEPH_FEATURE_RETIRED(17, 1, INDEP_PG_MAP, JEWEL, LUMINOUS)
 DEFINE_CEPH_FEATURE(17, 3, OS_PERF_STAT_NS)
-DEFINE_CEPH_FEATURE(18, 1, CRUSH_TUNABLES)
+DEFINE_CEPH_FEATURE(18, 1, CRUSH_TUNABLES)   // 3.6
 DEFINE_CEPH_FEATURE_RETIRED(19, 1, CHUNKY_SCRUB, JEWEL, LUMINOUS)
 
 DEFINE_CEPH_FEATURE_RETIRED(20, 1, MON_NULLROUTE, JEWEL, LUMINOUS)
 
 DEFINE_CEPH_FEATURE_RETIRED(21, 1, MON_GV, HAMMER, JEWEL)
-DEFINE_CEPH_FEATURE(21, 2, SERVER_LUMINOUS)
+DEFINE_CEPH_FEATURE(21, 2, SERVER_LUMINOUS)  // 4.13
 DEFINE_CEPH_FEATURE(21, 2, RESEND_ON_SPLIT)  // overlap
 DEFINE_CEPH_FEATURE(21, 2, RADOS_BACKOFF)    // overlap
 DEFINE_CEPH_FEATURE(21, 2, OSDMAP_PG_UPMAP)  // overlap
 DEFINE_CEPH_FEATURE(21, 2, CRUSH_CHOOSE_ARGS) // overlap
 DEFINE_CEPH_FEATURE_RETIRED(22, 1, BACKFILL_RESERVATION, JEWEL, LUMINOUS)
 
-DEFINE_CEPH_FEATURE(23, 1, MSG_AUTH)
+DEFINE_CEPH_FEATURE(23, 1, MSG_AUTH)         // 3.19 req (unless nocephx_require_signatures)
 DEFINE_CEPH_FEATURE_RETIRED(24, 1, RECOVERY_RESERVATION, JEWEL, LUNINOUS)
 DEFINE_CEPH_FEATURE(24, 2, RECOVERY_RESERVATION_2)
-DEFINE_CEPH_FEATURE(25, 1, CRUSH_TUNABLES2)
+DEFINE_CEPH_FEATURE(25, 1, CRUSH_TUNABLES2)  // 3.9
 DEFINE_CEPH_FEATURE(26, 1, CREATEPOOLID)
-DEFINE_CEPH_FEATURE(27, 1, REPLY_CREATE_INODE)
+DEFINE_CEPH_FEATURE(27, 1, REPLY_CREATE_INODE) // 3.9
 DEFINE_CEPH_FEATURE_RETIRED(28, 1, OSD_HBMSGS, HAMMER, JEWEL)
 DEFINE_CEPH_FEATURE(28, 2, SERVER_MIMIC)
-DEFINE_CEPH_FEATURE(29, 1, MDSENC)
-DEFINE_CEPH_FEATURE(30, 1, OSDHASHPSPOOL)
+DEFINE_CEPH_FEATURE(29, 1, MDSENC)           // 4.7
+DEFINE_CEPH_FEATURE(30, 1, OSDHASHPSPOOL)    // 3.9
 DEFINE_CEPH_FEATURE(31, 1, MON_SINGLE_PAXOS)  // deprecate me
 DEFINE_CEPH_FEATURE_RETIRED(32, 1, OSD_SNAPMAPPER, JEWEL, LUMINOUS)
 
@@ -122,16 +135,16 @@ DEFINE_CEPH_FEATURE_RETIRED(33, 1, MON_SCRUB, JEWEL, LUMINOUS)
 
 DEFINE_CEPH_FEATURE_RETIRED(34, 1, OSD_PACKED_RECOVERY, JEWEL, LUMINOUS)
 
-DEFINE_CEPH_FEATURE(35, 1, OSD_CACHEPOOL)
-DEFINE_CEPH_FEATURE(36, 1, CRUSH_V2)
-DEFINE_CEPH_FEATURE(37, 1, EXPORT_PEER)
+DEFINE_CEPH_FEATURE(35, 1, OSD_CACHEPOOL)    // 3.14
+DEFINE_CEPH_FEATURE(36, 1, CRUSH_V2)         // 3.14
+DEFINE_CEPH_FEATURE(37, 1, EXPORT_PEER)      // 3.14
 DEFINE_CEPH_FEATURE_DEPRECATED(38, 1, OSD_ERASURE_CODES, MIMIC)
-DEFINE_CEPH_FEATURE(39, 1, OSDMAP_ENC)
-DEFINE_CEPH_FEATURE(40, 1, MDS_INLINE_DATA)
-DEFINE_CEPH_FEATURE(41, 1, CRUSH_TUNABLES3)
+DEFINE_CEPH_FEATURE(39, 1, OSDMAP_ENC)       // 3.15
+DEFINE_CEPH_FEATURE(40, 1, MDS_INLINE_DATA)  // 3.19
+DEFINE_CEPH_FEATURE(41, 1, CRUSH_TUNABLES3)  // 3.15
 DEFINE_CEPH_FEATURE(41, 1, OSD_PRIMARY_AFFINITY) // overlap
-DEFINE_CEPH_FEATURE(42, 1, MSGR_KEEPALIVE2)
-DEFINE_CEPH_FEATURE(43, 1, OSD_POOLRESEND)
+DEFINE_CEPH_FEATURE(42, 1, MSGR_KEEPALIVE2)  // 4.3 (for consistency)
+DEFINE_CEPH_FEATURE(43, 1, OSD_POOLRESEND)   // 4.13
 DEFINE_CEPH_FEATURE_DEPRECATED(44, 1, ERASURE_CODE_PLUGINS_V2, MIMIC)
 DEFINE_CEPH_FEATURE_RETIRED(45, 1, OSD_SET_ALLOC_HINT, JEWEL, LUMINOUS)
 
@@ -140,8 +153,8 @@ DEFINE_CEPH_FEATURE_RETIRED(46, 1, OSD_REPOP, JEWEL, LUMINOUS) // overlap
 DEFINE_CEPH_FEATURE_RETIRED(46, 1, OSD_OBJECT_DIGEST, JEWEL, LUMINOUS) // overlap
 DEFINE_CEPH_FEATURE_RETIRED(46, 1, OSD_TRANSACTION_MAY_LAYOUT, JEWEL, LUMINOUS) // overlap
 
-DEFINE_CEPH_FEATURE(47, 1, MDS_QUOTA)
-DEFINE_CEPH_FEATURE(48, 1, CRUSH_V4)
+DEFINE_CEPH_FEATURE(47, 1, MDS_QUOTA)        // 4.17
+DEFINE_CEPH_FEATURE(48, 1, CRUSH_V4)         // 4.1
 DEFINE_CEPH_FEATURE_RETIRED(49, 1, OSD_MIN_SIZE_RECOVERY, JEWEL, LUMINOUS)
 DEFINE_CEPH_FEATURE_RETIRED(49, 1, OSD_PROXY_FEATURES, JEWEL, LUMINOUS) // overlap
 
@@ -151,18 +164,18 @@ DEFINE_CEPH_FEATURE_DEPRECATED(52, 1, OSD_PROXY_WRITE_FEATURES, MIMIC)
 DEFINE_CEPH_FEATURE_DEPRECATED(53, 1, ERASURE_CODE_PLUGINS_V3, MIMIC)
 DEFINE_CEPH_FEATURE_DEPRECATED(54, 1, OSD_HITSET_GMT, MIMIC)
 DEFINE_CEPH_FEATURE_DEPRECATED(55, 1, HAMMER_0_94_4, MIMIC)
-DEFINE_CEPH_FEATURE(56, 1, NEW_OSDOP_ENCODING)
-DEFINE_CEPH_FEATURE(57, 1, MON_STATEFUL_SUB)
+DEFINE_CEPH_FEATURE(56, 1, NEW_OSDOP_ENCODING) // 4.13 (for pg_pool_t >= v25)
+DEFINE_CEPH_FEATURE(57, 1, MON_STATEFUL_SUB) // 4.13
 DEFINE_CEPH_FEATURE_DEPRECATED(57, 1, MON_ROUTE_OSDMAP, MIMIC) // overlap
 DEFINE_CEPH_FEATURE(57, 1, SERVER_JEWEL) // overlap
-DEFINE_CEPH_FEATURE(58, 1, CRUSH_TUNABLES5)
+DEFINE_CEPH_FEATURE(58, 1, CRUSH_TUNABLES5)  // 4.5
 DEFINE_CEPH_FEATURE(58, 1, NEW_OSDOPREPLY_ENCODING) // overlap
 DEFINE_CEPH_FEATURE(58, 1, FS_FILE_LAYOUT_V2) // overlap
 DEFINE_CEPH_FEATURE(59, 1, FS_BTIME)
 DEFINE_CEPH_FEATURE(59, 1, FS_CHANGE_ATTR) // overlap
 DEFINE_CEPH_FEATURE(59, 1, MSG_ADDR2) // overlap
 DEFINE_CEPH_FEATURE(60, 1, OSD_RECOVERY_DELETES) // *do not share this bit*
-DEFINE_CEPH_FEATURE(61, 1, CEPHX_V2)             // *do not share this bit*
+DEFINE_CEPH_FEATURE(61, 1, CEPHX_V2)         // 4.19, *do not share this bit*
 
 DEFINE_CEPH_FEATURE(62, 1, RESERVED)           // do not use; used as a sentinel
 DEFINE_CEPH_FEATURE_DEPRECATED(63, 1, RESERVED_BROKEN, LUMINOUS) // client-facing