Hi all, This is Kent Overstreet's series to lift the mean and variance computation code, as well as the time statistics code, to become generic library code. If you're going to start using this code, I strongly recommend pulling from my git trees, which are linked below. This has been running on the djcloud for months with no problems. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=timestats-hoist --- Commits in this patchset: * mean and variance: Promote to lib/math * eytzinger: Promote to include/linux/ * bcachefs: bch2_time_stats_to_seq_buf() * time_stats: Promote to lib/ --- MAINTAINERS | 22 ++ fs/bcachefs/Kconfig | 10 - fs/bcachefs/Makefile | 3 fs/bcachefs/alloc_foreground.c | 13 - fs/bcachefs/bcachefs.h | 11 + fs/bcachefs/bset.c | 2 fs/bcachefs/btree_cache.c | 2 fs/bcachefs/btree_gc.c | 2 fs/bcachefs/btree_io.c | 8 - fs/bcachefs/btree_iter.c | 8 - fs/bcachefs/btree_locking.h | 2 fs/bcachefs/btree_update_interior.c | 8 - fs/bcachefs/io_read.c | 4 fs/bcachefs/io_write.c | 4 fs/bcachefs/journal.c | 5 - fs/bcachefs/journal_io.c | 9 - fs/bcachefs/journal_reclaim.c | 9 - fs/bcachefs/journal_seq_blacklist.c | 6 - fs/bcachefs/journal_types.h | 11 - fs/bcachefs/nocow_locking.c | 2 fs/bcachefs/replicas.c | 19 +- fs/bcachefs/replicas.h | 3 fs/bcachefs/super-io.h | 2 fs/bcachefs/super.c | 14 + fs/bcachefs/util.c | 339 ++-------------------------------- fs/bcachefs/util.h | 86 --------- include/linux/eytzinger.h | 58 +++--- include/linux/mean_and_variance.h | 0 include/linux/time_stats.h | 134 +++++++++++++ lib/Kconfig | 4 lib/Kconfig.debug | 9 + lib/Makefile | 2 lib/math/Kconfig | 3 lib/math/Makefile | 2 lib/math/mean_and_variance.c | 3 lib/math/mean_and_variance_test.c | 3 lib/sort.c | 89 +++++++++ lib/time_stats.c | 271 +++++++++++++++++++++++++++ 38 files changed, 662 insertions(+), 520 deletions(-) rename fs/bcachefs/eytzinger.h => include/linux/eytzinger.h (77%) rename fs/bcachefs/mean_and_variance.h => include/linux/mean_and_variance.h (100%) create mode 100644 include/linux/time_stats.h rename fs/bcachefs/mean_and_variance.c => lib/math/mean_and_variance.c (99%) rename fs/bcachefs/mean_and_variance_test.c => lib/math/mean_and_variance_test.c (99%) create mode 100644 lib/time_stats.c