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 /tests | |
| parent | b8d85ed024a745cff05e56c6337d95d654d5294a (diff) | |
| download | platform_external_elfutils-32ed4e6f8e827949d9c2a16c5fbc0aa75a6a4da9.tar.gz platform_external_elfutils-32ed4e6f8e827949d9c2a16c5fbc0aa75a6a4da9.tar.bz2 platform_external_elfutils-32ed4e6f8e827949d9c2a16c5fbc0aa75a6a4da9.zip | |
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 'tests')
| -rw-r--r-- | tests/ChangeLog | 4 | ||||
| -rwxr-xr-x | tests/run-debuginfod-find.sh | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog index 2638f63c..2057e214 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2020-01-11 Frank Ch. Eigler <fche@redhat.com> + + * run-debuginfod-find.sh: Adjust to new work-queue metrics. + 2020-01-02 Mark Wielaard <mark@klomp.org> * run-debuginfod-find.sh: Set DEBUGINFOD_TIMEOUT to 10. diff --git a/tests/run-debuginfod-find.sh b/tests/run-debuginfod-find.sh index 4ab47a31..9c9b748d 100755 --- a/tests/run-debuginfod-find.sh +++ b/tests/run-debuginfod-find.sh @@ -115,7 +115,9 @@ mv prog F mv prog.debug F kill -USR1 $PID1 # Wait till both files are in the index. -wait_ready $PORT1 'thread_work_total{file="F"}' 2 +wait_ready $PORT1 'thread_work_total{role="traverse"}' 2 +wait_ready $PORT1 'thread_work_pending{role="scan"}' 0 +wait_ready $PORT1 'thread_busy{role="scan"}' 0 ######################################################################## @@ -150,7 +152,9 @@ BUILDID2=`env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../src/readelf \ mv prog2 F kill -USR1 $PID1 # Now there should be 3 files in the index -wait_ready $PORT1 'thread_work_total{file="F"}' 3 +wait_ready $PORT1 'thread_work_total{role="traverse"}' 3 +wait_ready $PORT1 'thread_work_pending{role="scan"}' 0 +wait_ready $PORT1 'thread_busy{role="scan"}' 0 # Rerun same tests for the prog2 binary filename=`testrun ${abs_top_builddir}/debuginfod/debuginfod-find -v debuginfo $BUILDID2 2>vlog` |
