On Wed, 11 Jun 2025 05:55:08 +0800 Kuan-Wei Chiu visitorckw@gmail.com wrote:
This patch series introduces equality-aware variants of the min heap API that use a top-down heapify strategy to improve performance when many elements are equal under the comparison function. It also updates the documentation accordingly and modifies bcache to use the new APIs to fix a performance regression caused by the switch to the generic min heap library.
In particular, invalidate_buckets_lru() in bcache suffered from increased comparison overhead due to the bottom-up strategy introduced in commit 866898efbb25 ("bcache: remove heap-related macros and switch to generic min_heap"). The regression is addressed by switching to the equality-aware variants and using the inline versions to avoid function call overhead in this hot path.
Cc: stable@vger.kernel.org
To justify a -stable backport this performance regression would need to have a pretty significant impact upon real-world userspace. Especially as the patchset is large.
Unfortunately the changelog provides no indication of the magnitude of the userspace impact. Please tell us this, in detail.
Also, if we are to address this regression in -stable kernels then reverting 866898efbb25 is an obvious way - it is far far safer. So please also tell us why the proposed patchset is a better way for us to go.
(Also, each patch should have a fixes:866898efbb25 to help direct the backporting efforts)
I'll add the patches to mm.git to get you some testing but from what I'm presently seeing the -stable backporting would be unwise.