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
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
© 2016 - 2025 Red Hat, Inc.