]> git.hungrycats.org Git - bees/commitdiff
extent scan: only write a detailed debug log when there's an exception
authorZygo Blaxell <bees@furryterror.org>
Tue, 11 Feb 2025 05:31:29 +0000 (00:31 -0500)
committerZygo Blaxell <bees@furryterror.org>
Thu, 19 Jun 2025 01:17:48 +0000 (21:17 -0400)
Note that when enabled, the logs are still very CPU-intensive,
but most of the logs will be discarded.

Signed-off-by: Zygo Blaxell <bees@furryterror.org>
src/bees-roots.cc

index a593600871d384606a4cf6f7466854a83ff0cdb4..499dfcbe6d974f03ca6cd30dffd01eef34149ec0 100644 (file)
@@ -933,6 +933,7 @@ BeesScanModeExtent::SizeTier::find_next_extent()
 
        // Low-level extent search debugging
        shared_ptr<ostringstream> debug_oss;
+       const bool debug_oss_only_exceptions = true;
 #if 0
        // Enable a _lot_ of debugging output
        debug_oss = make_shared<ostringstream>();
@@ -966,7 +967,9 @@ BeesScanModeExtent::SizeTier::find_next_extent()
                                );
                        }
                        if (debug_oss) {
-                               BEESLOGDEBUG("debug oss trace:\n" << debug_oss->str());
+                               if (!debug_oss_only_exceptions || exception_check()) {
+                                       BEESLOGDEBUG("debug oss trace:\n" << debug_oss->str());
+                               }
                        }
                }
                BtrfsIoctlSearchKey::s_debug_ostream.reset();
@@ -1002,7 +1005,9 @@ BeesScanModeExtent::SizeTier::find_next_extent()
                        // There is a lot of debug output.  Dump it if it gets too long
                        if (!debug_oss->str().empty()) {
                                if (crawl_time.age() > 1) {
-                                       BEESLOGDEBUG("debug oss trace (so far):\n" << debug_oss->str());
+                                       if (!debug_oss_only_exceptions) {
+                                               BEESLOGDEBUG("debug oss trace (so far):\n" << debug_oss->str());
+                                       }
                                        debug_oss->str("");
                                }
                        }