Re: [PATCH] Revert "mm/cma: manage the memory of the CMA area by using the ZONE_MOVABLE"
From: Michal Hocko
Date: Thu May 17 2018 - 11:53:09 EST
On Thu 17-05-18 16:58:32, Ville Syrjälä wrote:
> On Thu, May 17, 2018 at 04:36:29PM +0300, Ville Syrjälä wrote:
> > On Thu, May 17, 2018 at 03:21:09PM +0200, Michal Hocko wrote:
> > > On Thu 17-05-18 15:59:59, Ville Syrjala wrote:
> > > > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
> > > >
> > > > This reverts commit bad8c6c0b1144694ecb0bc5629ede9b8b578b86e.
> > > >
> > > > Make x86 with HIGHMEM=y and CMA=y boot again.
> > >
> > > Is there any bug report with some more details? It is much more
> > > preferable to fix the issue rather than to revert the whole thing
> > > right away.
> >
> > The machine I have in front of me right now didn't give me anything.
> > Black screen, and netconsole was silent. No serial port on this
> > machine unfortunately.
>
> Booted on another machine with serial:
Could you provide your .config please?
[...]
> [ 0.000000] cma: Reserved 4 MiB at 0x0000000037000000
[...]
> [ 0.000000] BUG: Bad page state in process swapper pfn:377fe
> [ 0.000000] page:f53effc0 count:0 mapcount:-127 mapping:00000000 index:0x0
OK, so this looks the be the source of the problem. -128 would be a
buddy page but I do not see anything that would set the counter to -127
and the real map count updates shouldn't really happen that early.
Maybe CONFIG_DEBUG_VM and CONFIG_DEBUG_HIGHMEM will tell us more.
> [ 0.000000] flags: 0x80000000()
> [ 0.000000] raw: 80000000 00000000 00000000 ffffff80 00000000 00000100 00000200 00000001
> [ 0.000000] page dumped because: nonzero mapcount
> [ 0.000000] Modules linked in:
> [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.17.0-rc5-elk+ #145
> [ 0.000000] Hardware name: Dell Inc. Latitude E5410/03VXMC, BIOS A15 07/11/2013
> [ 0.000000] Call Trace:
> [ 0.000000] dump_stack+0x60/0x96
> [ 0.000000] bad_page+0x9a/0x100
> [ 0.000000] free_pages_check_bad+0x3f/0x60
> [ 0.000000] free_pcppages_bulk+0x29d/0x5b0
> [ 0.000000] free_unref_page_commit+0x84/0xb0
> [ 0.000000] free_unref_page+0x3e/0x70
> [ 0.000000] __free_pages+0x1d/0x20
> [ 0.000000] free_highmem_page+0x19/0x40
> [ 0.000000] add_highpages_with_active_regions+0xab/0xeb
> [ 0.000000] set_highmem_pages_init+0x66/0x73
> [ 0.000000] mem_init+0x1b/0x1d7
> [ 0.000000] start_kernel+0x17a/0x363
> [ 0.000000] i386_start_kernel+0x95/0x99
> [ 0.000000] startup_32_smp+0x164/0x168
--
Michal Hocko
SUSE Labs