[Bug debuginfod/29098] set default prefetch limits to >0
Frank Ch. Eigler
fche@redhat.com
Mon May 9 23:40:28 GMT 2022
Hi -
Thanks, committing this, with corrected comments and changelog entries
and a bit of man page cleanup.
diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog
index 619ebd8c9202..026908c85000 100644
--- a/debuginfod/ChangeLog
+++ b/debuginfod/ChangeLog
@@ -1,3 +1,7 @@
+2022-05-09 Noah Sanci <nsanci@redhat.com>
+
+ * debuginfod.cxx (main): Set nonzero defaults for fdcache.
+
2022-05-04 Frank Ch. Eigler <fche@redhat.com>
Mark Wielaard <mark@klomp.org>
diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
index 4aaf41c0886e..fde4e194b526 100644
--- a/debuginfod/debuginfod.cxx
+++ b/debuginfod/debuginfod.cxx
@@ -3826,6 +3826,13 @@ main (int argc, char *argv[])
error (EXIT_FAILURE, 0,
"unexpected argument: %s", argv[remaining]);
+ // Make the prefetch cache spaces a fraction of the main fdcache if
+ // unspecified.
+ if (fdcache_prefetch_fds == 0)
+ fdcache_prefetch_fds = fdcache_fds / 2;
+ if (fdcache_prefetch_mbs == 0)
+ fdcache_prefetch_mbs = fdcache_mbs / 2;
+
if (scan_archives.size()==0 && !scan_files && source_paths.size()>0)
obatched(clog) << "warning: without -F -R -U -Z, ignoring PATHs" << endl;
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 303e3dc05dc5..cb754d04ba3f 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2022-05-09 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.8: Tweak prefetch descriptions.
+
2022-01-31 Frank Ch. Eigler <fche@redhat.com>
* debuginfod-client-config.7: Elaborate DEBUGINFOD_URLS.
diff --git a/doc/debuginfod.8 b/doc/debuginfod.8
index ee8e4078e5b5..95b827e9cc35 100644
--- a/doc/debuginfod.8
+++ b/doc/debuginfod.8
@@ -232,34 +232,36 @@ loops in the symbolic directory tree might lead to \fIinfinite
traversal\fP.
.TP
-.B "\-\-fdcache\-fds=NUM" "\-\-fdcache\-mbs=MB" "\-\-fdcache\-prefetch=NUM2"
+.B "\-\-fdcache\-fds=NUM" "\-\-fdcache\-mbs=MB"
Configure limits on a cache that keeps recently extracted files from
archives. Up to NUM requested files and up to a total of MB megabytes
will be kept extracted, in order to avoid having to decompress their
-archives over and over again. In addition, up to NUM2 other files
-from an archive may be prefetched into the cache before they are even
-requested. The default NUM, NUM2, and MB values depend on the
-concurrency of the system, and on the available disk space on the
+archives over and over again. The default NUM and MB values depend on
+the concurrency of the system, and on the available disk space on the
$TMPDIR or \fB/tmp\fP filesystem. This is because that is where the
-most recently used extracted files are kept. Grooming cleans this
+most recently used extracted files are kept. Grooming cleans out this
cache.
.TP
.B "\-\-fdcache\-\-prefetch\-fds=NUM" "\-\-fdcache\-\-prefetch\-mbs=MB"
-Configure how many file descriptors (fds) and megabytes (mbs) are
-allocated to the prefetch fdcache. If unspecified, values of
-\fB\-\-prefetch\-fds\fP and \fB\-\-prefetch\-mbs\fP depend
-on concurrency of the system and on the available disk space on
-the $TMPDIR. Allocating more to the prefetch cache will improve
-performance in environments where different parts of several large
-archives are being accessed.
+.B "\-\-fdcache\-prefetch=NUM2"
+
+In addition to the main fdcache, up to NUM2 other files from an
+archive may be prefetched into another cache before they are even
+requested. Configure how many file descriptors (fds) and megabytes
+(mbs) are allocated to the prefetch fdcache. If unspecified, these
+values depend on concurrency of the system and on the available disk
+space on the $TMPDIR. Allocating more to the prefetch cache will
+improve performance in environments where different parts of several
+large archives are being accessed. This cache is also cleaned out
+during grooming.
.TP
.B "\-\-fdcache\-mintmp=NUM"
-Configure a disk space threshold for emergency flushing of the cache.
-The filesystem holding the cache is checked periodically. If the
-available space falls below the given percentage, the cache is
-flushed, and the fdcache will stay disabled until the next groom
+Configure a disk space threshold for emergency flushing of the caches.
+The filesystem holding the caches is checked periodically. If the
+available space falls below the given percentage, the caches are
+flushed, and the fdcaches will stay disabled until the next groom
cycle. This mechanism, along a few associated /metrics on the webapi,
are intended to give an operator notice about storage scarcity - which
can translate to RAM scarcity if the disk happens to be on a RAM
More information about the Elfutils-devel
mailing list