diff options
| author | Frank Ch. Eigler <fche@redhat.com> | 2019-12-31 20:06:30 -0500 |
|---|---|---|
| committer | Frank Ch. Eigler <fche@redhat.com> | 2019-12-31 20:06:30 -0500 |
| commit | b225b73266a068afa87ac06858c81688f0c00ea3 (patch) | |
| tree | cddd6e525030d3206660d1919a682e326db47bd5 /debuginfod/ChangeLog | |
| parent | 5de5dc7d1bf8b49056b123978f0449588d5f006c (diff) | |
| download | elfutils-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/ChangeLog | 16 |
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. |
