]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crushtool: remove check for overlapped ruels
authorSage Weil <sage@newdream.net>
Fri, 25 Jun 2021 19:33:23 +0000 (15:33 -0400)
committerSage Weil <sage@newdream.net>
Mon, 28 Jun 2021 22:34:31 +0000 (18:34 -0400)
Signed-off-by: Sage Weil <sage@newdream.net>
src/crush/CrushTester.cc
src/crush/CrushTester.h
src/tools/crushtool.cc

index 9e59096f32a4bce587e4e5989af5c7739240fcf6..d65cc5bba17ce55c05b5e444bc3253d58b07d1c1 100644 (file)
@@ -437,43 +437,6 @@ static string get_rule_name(CrushWrapper& crush, int rule)
     return string("rule") + std::to_string(rule);
 }
 
-void CrushTester::check_overlapped_rules() const
-{
-  namespace icl = boost::icl;
-  typedef std::set<string> RuleNames;
-  typedef icl::interval_map<int, RuleNames> Rules;
-  // <ruleset, type> => interval_map<size, {names}>
-  typedef std::map<std::pair<int, int>, Rules> RuleSets;
-  using interval = icl::interval<int>;
-
-  // mimic the logic of crush_find_rule(), but it only return the first matched
-  // one, but I am collecting all of them by the overlapped sizes.
-  RuleSets rulesets;
-  for (int rule = 0; rule < crush.get_max_rules(); rule++) {
-    if (!crush.rule_exists(rule)) {
-      continue;
-    }
-    Rules& rules = rulesets[{crush.get_rule_mask_ruleset(rule),
-                            crush.get_rule_mask_type(rule)}];
-    rules += make_pair(interval::closed(crush.get_rule_mask_min_size(rule),
-                                       crush.get_rule_mask_max_size(rule)),
-                      RuleNames{get_rule_name(crush, rule)});
-  }
-  for (auto i : rulesets) {
-    auto ruleset_type = i.first;
-    const Rules& rules = i.second;
-    for (auto r : rules) {
-      const RuleNames& names = r.second;
-      // if there are more than one rules covering the same size range,
-      // print them out.
-      if (names.size() > 1) {
-       err << "overlapped rules in ruleset " << ruleset_type.first << ": "
-           << boost::join(names, ", ") << "\n";
-      }
-    }
-  }
-}
-
 int CrushTester::test()
 {
   if (min_rule < 0 || max_rule < 0) {
index 1bbc01a70c88906b1ab0aa7c134187abd22d6221..b83b18782226fc7b8318efb3e1529abc41d61e6e 100644 (file)
@@ -353,10 +353,6 @@ public:
    *         large, true otherwise
    */
   bool check_name_maps(unsigned max_id = 0) const;
-  /**
-   * print out overlapped crush rules belonging to the same ruleset
-   */
-  void check_overlapped_rules() const;
   int test();
   int test_with_fork(int timeout);
 
index a4defb04890cc325e53a4a7ca5a19ae13a351fd7..205af9d22d6c2d0e6df3bd561114efa258399351 100644 (file)
@@ -1260,7 +1260,6 @@ int main(int argc, const char **argv)
   }
 
   if (check) {
-    tester.check_overlapped_rules();
     if (max_id >= 0) {
       if (!tester.check_name_maps(max_id)) {
        return EXIT_FAILURE;