Message ID | 202303061407332798543@zte.com.cn (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [V2,1/2] sysctl: Limit the value of interface compact_memory | expand |
On 3/6/23 07:07, ye.xingchen@zte.com.cn wrote: > From: Minghao Chi <chi.minghao@zte.com.cn> > > 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@bombadil.infradead.org/ I don't think the split to two patches you did, achieves Luis' request. > Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn> > Signed-off-by: Ye Xingchen <ye.xingchen@zte.com.cn> > > --- > 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?
On Wed, Mar 08, 2023 at 11:21:36AM +0100, Vlastimil Babka wrote: > > > On 3/6/23 07:07, ye.xingchen@zte.com.cn wrote: > > From: Minghao Chi <chi.minghao@zte.com.cn> > > > > 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@bombadil.infradead.org/ > > I don't think the split to two patches you did, achieves Luis' request. > > IIUC his request was to move the compaction entries out of sysctl.c? Yes, thanks Vlastimil, just git log kernel/sysctl.c and you'll see tons of examples. Luis
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, .maxlen = sizeof(int), .mode = 0200, .proc_handler = sysctl_compaction_handler, + .extra1 = SYSCTL_ONE, + .extra2 = SYSCTL_ONE, }, { .procname = "compaction_proactiveness",