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>2019-12-31 20:06:30 -0500
commitb225b73266a068afa87ac06858c81688f0c00ea3 (patch)
treecddd6e525030d3206660d1919a682e326db47bd5 /debuginfod/ChangeLog
parent5de5dc7d1bf8b49056b123978f0449588d5f006c (diff)
downloadelfutils-fche/debuginfod-workq.tar.gz
debuginfod: rework threading model for file/archive scanningfche/debuginfod-workq
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 1582eba5..68102cea 100644
--- a/debuginfod/ChangeLog
+++ b/debuginfod/ChangeLog
@@ -1,3 +1,19 @@
+2019-12-31 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-12-22 Frank Ch. Eigler <fche@redhat.com>
* debuginfod.cxx (*_rpm_*): Rename to *_archive_* throughout.