summaryrefslogtreecommitdiff
path: root/debuginfod/ChangeLog
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@redhat.com>2019-12-31 20:06:30 -0500
committerFrank Ch. Eigler <fche@redhat.com>2020-01-11 09:47:02 -0500
commit32ed4e6f8e827949d9c2a16c5fbc0aa75a6a4da9 (patch)
tree4bb964d1e4d601e3a00eeaf49158dc4eb0617c86 /debuginfod/ChangeLog
parentb8d85ed024a745cff05e56c6337d95d654d5294a (diff)
downloadelfutils-32ed4e6f8e827949d9c2a16c5fbc0aa75a6a4da9.tar.gz
debuginfod: rework threading model for file/archive scanning
We switch from a thread per supplied PATH, with a semaphore based concurrency control, to a fixed number of worker threads collecting the result of a plain directory traversal being put into a work queue. This allows maximal continuous concurrency, even if the PATH directories are dramatically differently sized. There is no more need to use concurrency-motivated subdirectory wildcards for PATH entries: just a single top level directory will work fast. doc & tests incl.
Diffstat (limited to 'debuginfod/ChangeLog')
-rw-r--r--debuginfod/ChangeLog16
1 files changed, 16 insertions, 0 deletions
diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog
index 18778521..4167215f 100644
--- a/debuginfod/ChangeLog
+++ b/debuginfod/ChangeLog
@@ -1,3 +1,19 @@
+2020-01-11 Frank Ch. Eigler <fche@redhat.com>
+
+ * debuginfod.cxx: Rework threading model.
+ (workq): New class for concurrent work-queue.
+ (semaphore): Removed class, now unused.
+ (scan_source_file_path): Rework into ...
+ (scan_source_file): New function.
+ (thread_main_scan_source_file_path): Nuke.
+ (scan_source_archive_path): Rework into ...
+ (scan_archive_file): New function.
+ (thread_main_scanner): New function for scanner threads.
+ (thread_main_fts_source_paths): New function for traversal thread.
+ (scan_source_paths): ... doing this.
+ (thread_groom): Tweak metrics for consistency.
+ (main): Start 1 traversal and N scanner threads if needed.
+
2019-01-02 Mark Wielaard <mark@klomp.org>
* debuginfod.cxx (default_connect_timeout): Removed.