Re: mmotm 2020-07-27-18-18 uploaded (mm/page_alloc.c)

Andrew Morton
2020-07-28T21:55:59Z

On Tue, 28 Jul 2020 05:33:58 -0700 Randy Dunlap <rdunlap@infradead.org> wrote:

> On 7/27/20 6:19 PM, Andrew Morton wrote:
> > The mm-of-the-moment snapshot 2020-07-27-18-18 has been uploaded to
> >
> > http://www.ozlabs.org/~akpm/mmotm/
> >
> > mmotm-readme.txt says
> >
> > README for mm-of-the-moment:
> >
> > http://www.ozlabs.org/~akpm/mmotm/
> >
> > This is a snapshot of my -mm patch queue. Uploaded at random hopefully
> > more than once a week.
> >
> > You will need quilt to apply these patches to the latest Linus release (5.x
> > or 5.x-rcY). The series file is in broken-out.tar.gz and is duplicated in
> > http://ozlabs.org/~akpm/mmotm/series
> >
>
> on x86_64:
>
> ../mm/page_alloc.c:8355:48: warning: ‘struct compact_control’ declared inside parameter list will not be visible outside of this definition or declaration
> static int __alloc_contig_migrate_range(struct compact_control *cc,
> ^~~~~~~~~~~~~~~

As is usually the case with your reports, I can't figure out how to
reproduce it. I copy then .config, run `make oldconfig' (need to hit
enter a zillion times because the .config is whacky) then the build
succeeds. What's the secret?

Anyway,

#ifdef CONFIG_CONTIG_ALLOC

...

/* [start, end) must belong to a single zone. */
static int __alloc_contig_migrate_range(struct compact_control *cc,
unsigned long start, unsigned long end)

and

#if defined CONFIG_COMPACTION || defined CONFIG_CMA

...

struct compact_control {

so we presumably have
CONFIG_CONTIG_ALLOC=y
CONFIG_COMPACTION=n
CONFIG_CMA=n

which is indeed what's in your config file.

But

config CONTIG_ALLOC
def_bool (MEMORY_ISOLATION && COMPACTION) || CMA

says this is an improper combination. And `make oldconfig' fixes it up.

What's happening here?