Kent, here is another update. Changes:
* Added a self test for eytzinger0_find(). * The patches are now in fully bisectable order, with slightly improved patch descriptions. * The patch that runs the self tests on modprobe has been moved to the end of the patch queue. This patch is useful for testing, but it SHOULD NOT BE MERGED. A git tree of the patches can again be found here: https://git.kernel.org/pub/scm/linux/kernel/git/agruen/linux.git/log/?h=bcachefs Base: v6.13 Head: d79258df8791 ("bcachefs: Run the eytzinger tests on modprobe") The previous CI test results at: https://evilpiepirate.org/~testdashboard/ci?user=kmo&branch=eytzinger against the previous version of this patch queue and with head: 94865378e1a3 ("bcachefs: eytzinger1_{next,prev} cleanup") show a large number of passed as well as failed tests even for upstream v6.13, so I don't know what to conclude from that. In any case, there is one failure reporting that eytzinger0_find_ge() didn't find the first matching element in an array with duplicate elements: https://evilpiepirate.org/~testdashboard/ci?user=kmo&branch=eytzinger&commit=c31c7c659278bc2581ef0c7c4119fe14c7476ea3 This is imtentional and expected because at this point in the patch queue, eytzinger0_find_ge() hasn't been fixed to always return the first matching element. The current version of the patch queue adds the fix before adding the test, so this failure will be gone. That being said, as per request, the updated patch queue only enables the self tests in the last patch, so we wouldn't see failures of that kind anymore, anyway. Thanks, Andreas Andreas Gruenbacher (21): bcachefs: bch2_blacklist_entries_gc cleanup bcachefs: EYTZINGER_DEBUG fix bcachefs: eytzinger self tests: loop cleanups bcachefs: eytzinger self tests: missing newline termination bcachefs: eytzinger self tests: fix cmp_u16 typo bcachefs: eytzinger[01]_test improvement bcachefs: eytzinger0_find_test improvement bcachefs: add eytzinger0_for_each_prev bcachefs: improve eytzinger0_find_le self test bcachefs: convert eytzinger0_find_le to be 1-based bcachefs: simplify eytzinger0_find_le bcachefs: add eytzinger0_find_gt self test bcachefs: implement eytzinger0_find_gt directly bcachefs: implement eytzinger0_find_ge directly bcachefs: add eytzinger0_find_ge self test bcachefs: Add eytzinger0_find self test bcachefs: convert eytzinger0_find to be 1-based bcachefs: convert eytzinger sort to be 1-based (1) bcachefs: convert eytzinger sort to be 1-based (2) bcachefs: eytzinger1_{next,prev} cleanup bcachefs: Run the eytzinger tests on modprobe fs/bcachefs/eytzinger.c | 88 ++++++------ fs/bcachefs/eytzinger.h | 99 ++++++------- fs/bcachefs/journal_seq_blacklist.c | 7 +- fs/bcachefs/super.c | 5 + fs/bcachefs/util.c | 212 ++++++++++++++++++++++------ fs/bcachefs/util.h | 4 + 6 files changed, 269 insertions(+), 146 deletions(-) -- 2.48.1
