diff options
| author | Darrick J. Wong <[email protected]> | 2023-08-10 14:48:07 +0000 |
|---|---|---|
| committer | Darrick J. Wong <[email protected]> | 2023-08-10 14:48:07 +0000 |
| commit | 764018caa99f7629cefc92257a26b83289a674f3 (patch) | |
| tree | e7ff249e79fc61f4e4cad115e4611cf634a9a73b /tools/perf/scripts/python/compaction-times.py | |
| parent | xfs: cache pages used for xfarray quicksort convergence (diff) | |
| download | kernel-764018caa99f7629cefc92257a26b83289a674f3.tar.gz kernel-764018caa99f7629cefc92257a26b83289a674f3.zip | |
xfs: improve xfarray quicksort pivot
Now that we have the means to do insertion sorts of small in-memory
subsets of an xfarray, use it to improve the quicksort pivot algorithm
by reading 7 records into memory and finding the median of that. This
should prevent bad partitioning when a[lo] and a[hi] end up next to each
other in the final sort, which can happen when sorting for cntbt repair
when the free space is extremely fragmented (e.g. generic/176).
This doesn't speed up the average quicksort run by much, but it will
(hopefully) avoid the quadratic time collapse for which quicksort is
famous.
Signed-off-by: Darrick J. Wong <[email protected]>
Reviewed-by: Kent Overstreet <[email protected]>
Reviewed-by: Dave Chinner <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/compaction-times.py')
0 files changed, 0 insertions, 0 deletions
