Message ID | 20250127215020.4023545-2-mclapinski@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/compaction: allow more aggressive proactive compaction | expand |
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 --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); }
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(-)