diff options
author | Frank Ch. Eigler <fche@redhat.com> | 2019-12-31 20:06:30 -0500 |
---|---|---|
committer | Frank Ch. Eigler <fche@redhat.com> | 2020-01-11 09:47:02 -0500 |
commit | 32ed4e6f8e827949d9c2a16c5fbc0aa75a6a4da9 (patch) | |
tree | 4bb964d1e4d601e3a00eeaf49158dc4eb0617c86 /debuginfod/ChangeLog | |
parent | b8d85ed024a745cff05e56c6337d95d654d5294a (diff) | |
download | elfutils-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/ChangeLog | 16 |
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. |