Re: [PATCH 5/7] Add /proc trigger for memory compaction

From: Mel Gorman
Date: Wed Jan 20 2010 - 04:49:16 EST


On Wed, Jan 13, 2010 at 03:23:44PM -0800, David Rientjes wrote:
> On Thu, 7 Jan 2010, David Rientjes wrote:
>
> > > diff --git a/include/linux/compaction.h b/include/linux/compaction.h
> > > index 6201371..5965ef2 100644
> > > --- a/include/linux/compaction.h
> > > +++ b/include/linux/compaction.h
> > > @@ -5,4 +5,9 @@
> > > #define COMPACT_INCOMPLETE 0
> > > #define COMPACT_COMPLETE 1
> > >
> > > +#ifdef CONFIG_MIGRATION
> > > +extern int sysctl_compaction_handler(struct ctl_table *table, int write,
> > > + void __user *buffer, size_t *length, loff_t *ppos);
> > > +#endif /* CONFIG_MIGRATION */
> > > +
> > > #endif /* _LINUX_COMPACTION_H */
>
> This should be CONFIG_COMPACTION since mm/compaction.c won't be compiled
> without it; the later additions to this ifdef, fragmentation_index() and
> try_to_compact_pages(), can also be under CONFIG_COMPACTION since neither
> are used outside of the compaction core directly (__fragmentation_index()
> from vmstat uses its wrapped function at file scope).
>

True. It's corrected now.

> > > diff --git a/kernel/sysctl.c b/kernel/sysctl.c
> > > index 8a68b24..6202e95 100644
> > > --- a/kernel/sysctl.c
> > > +++ b/kernel/sysctl.c
> > > @@ -50,6 +50,7 @@
> > > #include <linux/ftrace.h>
> > > #include <linux/slow-work.h>
> > > #include <linux/perf_event.h>
> > > +#include <linux/compaction.h>
> > >
> > > #include <asm/uaccess.h>
> > > #include <asm/processor.h>
> > > @@ -80,6 +81,7 @@ extern int pid_max;
> > > extern int min_free_kbytes;
> > > extern int pid_max_min, pid_max_max;
> > > extern int sysctl_drop_caches;
> > > +extern int sysctl_compact_node;
> > > extern int percpu_pagelist_fraction;
> > > extern int compat_log;
> > > extern int latencytop_enabled;
> > > @@ -1109,6 +1111,15 @@ static struct ctl_table vm_table[] = {
> > > .mode = 0644,
> > > .proc_handler = drop_caches_sysctl_handler,
> > > },
> > > +#ifdef CONFIG_MIGRATION
> > > + {
> > > + .procname = "compact_node",
> > > + .data = &sysctl_compact_node,
> > > + .maxlen = sizeof(int),
> > > + .mode = 0644,
> >
> > This should only need 0200?
> >
>
> This needs to be CONFIG_COMPACTION as well, we won't have the handler
> without mm/compaction.c.
>

Both corrected.

Thanks

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/