[PATCH v2 3/3] bcache: Remove unnecessary select MIN_HEAP

Kuan-Wei Chiu posted 3 patches 3 months, 3 weeks ago
[PATCH v2 3/3] bcache: Remove unnecessary select MIN_HEAP
Posted by Kuan-Wei Chiu 3 months, 3 weeks ago
After reverting the transition to the generic min heap library, bcache
no longer depends on MIN_HEAP. The select entry can be removed to
reduce code size and shrink the kernel's attack surface.

This change effectively reverts the bcache-related part of commit
92a8b224b833 ("lib/min_heap: introduce non-inline versions of min heap
API functions").

This is part of a series of changes to address a performance
regression caused by the use of the generic min_heap implementation.

As reported by Robert, bcache now suffers from latency spikes, with
P100 (max) latency increasing from 600 ms to 2.4 seconds every 5
minutes. These regressions degrade bcache's effectiveness as a
low-latency cache layer and lead to frequent timeouts and application
stalls in production environments.

Link: https://lore.kernel.org/lkml/CAJhEC05+0S69z+3+FB2Cd0hD+pCRyWTKLEOsc8BOmH73p1m+KQ@mail.gmail.com
Fixes: 866898efbb25 ("bcache: remove heap-related macros and switch to generic min_heap")
Fixes: 92a8b224b833 ("lib/min_heap: introduce non-inline versions of min heap API functions")
Reported-by: Robert Pang <robertpang@google.com>
Closes: https://lore.kernel.org/linux-bcache/CAJhEC06F_AtrPgw2-7CvCqZgeStgCtitbD-ryuPpXQA-JG5XXw@mail.gmail.com
Cc: stable@vger.kernel.org
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
 drivers/md/bcache/Kconfig | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/md/bcache/Kconfig b/drivers/md/bcache/Kconfig
index d4697e79d5a3..b2d10063d35f 100644
--- a/drivers/md/bcache/Kconfig
+++ b/drivers/md/bcache/Kconfig
@@ -5,7 +5,6 @@ config BCACHE
 	select BLOCK_HOLDER_DEPRECATED if SYSFS
 	select CRC64
 	select CLOSURES
-	select MIN_HEAP
 	help
 	Allows a block device to be used as cache for other devices; uses
 	a btree for indexing and the layout is optimized for SSDs.
-- 
2.34.1
Re: [PATCH v2 3/3] bcache: Remove unnecessary select MIN_HEAP
Posted by Coly Li 3 months, 3 weeks ago
On Sun, Jun 15, 2025 at 04:23:53AM +0800, Kuan-Wei Chiu wrote:
> After reverting the transition to the generic min heap library, bcache
> no longer depends on MIN_HEAP. The select entry can be removed to
> reduce code size and shrink the kernel's attack surface.
> 
> This change effectively reverts the bcache-related part of commit
> 92a8b224b833 ("lib/min_heap: introduce non-inline versions of min heap
> API functions").
> 
> This is part of a series of changes to address a performance
> regression caused by the use of the generic min_heap implementation.
> 
> As reported by Robert, bcache now suffers from latency spikes, with
> P100 (max) latency increasing from 600 ms to 2.4 seconds every 5
> minutes. These regressions degrade bcache's effectiveness as a
> low-latency cache layer and lead to frequent timeouts and application
> stalls in production environments.
> 
> Link: https://lore.kernel.org/lkml/CAJhEC05+0S69z+3+FB2Cd0hD+pCRyWTKLEOsc8BOmH73p1m+KQ@mail.gmail.com
> Fixes: 866898efbb25 ("bcache: remove heap-related macros and switch to generic min_heap")
> Fixes: 92a8b224b833 ("lib/min_heap: introduce non-inline versions of min heap API functions")
> Reported-by: Robert Pang <robertpang@google.com>
> Closes: https://lore.kernel.org/linux-bcache/CAJhEC06F_AtrPgw2-7CvCqZgeStgCtitbD-ryuPpXQA-JG5XXw@mail.gmail.com
> Cc: stable@vger.kernel.org
> Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>

Acked-by: Coly Li <colyli@kernel.org>

Thanks.


> ---
>  drivers/md/bcache/Kconfig | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/drivers/md/bcache/Kconfig b/drivers/md/bcache/Kconfig
> index d4697e79d5a3..b2d10063d35f 100644
> --- a/drivers/md/bcache/Kconfig
> +++ b/drivers/md/bcache/Kconfig
> @@ -5,7 +5,6 @@ config BCACHE
>  	select BLOCK_HOLDER_DEPRECATED if SYSFS
>  	select CRC64
>  	select CLOSURES
> -	select MIN_HEAP
>  	help
>  	Allows a block device to be used as cache for other devices; uses
>  	a btree for indexing and the layout is optimized for SSDs.
> -- 
> 2.34.1
> 

-- 
Coly Li