diff mbox series

[v3,1/2] mm/compaction: remove low watermark cap for proactive compaction

Message ID 20250127215020.4023545-2-mclapinski@google.com (mailing list archive)
State New
Headers show
Series mm/compaction: allow more aggressive proactive compaction | expand

Commit Message

Michał Cłapiński Jan. 27, 2025, 9:50 p.m. UTC
Previously a min cap of 5 has been set in the commit introducing
proactive compaction. This was to make sure users don't hurt themselves
by setting the proactiveness to 100 and making their system
unresponsive. But the compaction mechanism has a backoff mechanism that
will sleep for 30s if no progress is made, so I don't see a significant
risk here. My system (20GB of memory) has been perfectly fine with
proactiveness set to 100 and leeway set to 0.

Signed-off-by: Michal Clapinski <mclapinski@google.com>
---
 mm/compaction.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andrew Morton Jan. 28, 2025, 1:17 a.m. UTC | #1
On Mon, 27 Jan 2025 22:50:19 +0100 Michal Clapinski <mclapinski@google.com> wrote:

> Previously a min cap of 5 has been set in the commit introducing
> proactive compaction. This was to make sure users don't hurt themselves
> by setting the proactiveness to 100 and making their system
> unresponsive. But the compaction mechanism has a backoff mechanism that
> will sleep for 30s if no progress is made, so I don't see a significant
> risk here. My system (20GB of memory) has been perfectly fine with
> proactiveness set to 100 and leeway set to 0.

Sure.  And if setting a particular value makes your system blow up then
Don't Do That - the kernel needn't care too much about protecting the
sysadmin from misguided configurations.

As long as we've actually documented what the thing does, which appears
to be the case this time.  Please do review
Documentation/admin-guide/sysctl/vm.rst:compaction_proactiveness for
accuracy and completeness?  From what you've said, that final paragraph
sounds too emphatic.


> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -2253,7 +2253,7 @@ static unsigned int fragmentation_score_wmark(bool low)
>  	 * activity in case a user sets the proactiveness tunable
>  	 * close to 100 (maximum).
>  	 */
> -	wmark_low = max(100U - sysctl_compaction_proactiveness, 5U);
> +	wmark_low = 100U - sysctl_compaction_proactiveness;
>  	return low ? wmark_low : min(wmark_low + 10, 100U);
>  }
diff mbox series

Patch

diff --git a/mm/compaction.c b/mm/compaction.c
index a2b16b08cbbff..29524242a16ef 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -2253,7 +2253,7 @@  static unsigned int fragmentation_score_wmark(bool low)
 	 * activity in case a user sets the proactiveness tunable
 	 * close to 100 (maximum).
 	 */
-	wmark_low = max(100U - sysctl_compaction_proactiveness, 5U);
+	wmark_low = 100U - sysctl_compaction_proactiveness;
 	return low ? wmark_low : min(wmark_low + 10, 100U);
 }