On 3/6/23 07:07, ye.xingchen@xxxxxxxxxx wrote: > From: Minghao Chi <chi.minghao@xxxxxxxxxx> > > In Documentation/admin-guide/sysctl/vm.rst:109 say: when 1 is written > to the file, all zones are compacted such that free memory is available > in contiguous blocks where possible. > So limit the value of interface compact_memory to 1. > > Link: https://lore.kernel.org/all/ZAJwoXJCzfk1WIBx@xxxxxxxxxxxxxxxxxxxxxx/ I don't think the split to two patches you did, achieves Luis' request. > Signed-off-by: Minghao Chi <chi.minghao@xxxxxxxxxx> > Signed-off-by: Ye Xingchen <ye.xingchen@xxxxxxxxxx> > > --- > include/linux/compaction.h | 1 + > kernel/sysctl.c | 4 +++- > 2 files changed, 4 insertions(+), 1 deletion(-) > > diff --git a/include/linux/compaction.h b/include/linux/compaction.h > index 52a9ff65faee..caa24e33eeb1 100644 > --- a/include/linux/compaction.h > +++ b/include/linux/compaction.h > @@ -81,6 +81,7 @@ static inline unsigned long compact_gap(unsigned int order) > } > > #ifdef CONFIG_COMPACTION > +extern int sysctl_compact_memory; > extern unsigned int sysctl_compaction_proactiveness; > extern int sysctl_compaction_handler(struct ctl_table *table, int write, > void *buffer, size_t *length, loff_t *ppos); > diff --git a/kernel/sysctl.c b/kernel/sysctl.c > index c14552a662ae..67f70952f71a 100644 > --- a/kernel/sysctl.c > +++ b/kernel/sysctl.c > @@ -2192,10 +2192,12 @@ static struct ctl_table vm_table[] = { > #ifdef CONFIG_COMPACTION > { > .procname = "compact_memory", > - .data = NULL, > + .data = &sysctl_compact_memory, I doubt this compiles/links without patch 2, as there's no definition until patch 2. > .maxlen = sizeof(int), > .mode = 0200, > .proc_handler = sysctl_compaction_handler, > + .extra1 = SYSCTL_ONE, > + .extra2 = SYSCTL_ONE, > }, > { > .procname = "compaction_proactiveness", IIUC his request was to move the compaction entries out of sysctl.c?