Thread (18 messages) 18 messages, 5 authors, 2018-09-07

Re: A crash on ARM64 in move_freepages_block due to uninitialized pages in reserved memory

From: Mikulas Patocka <mpatocka@redhat.com>
Date: 2018-08-23 14:34:41
Also in: linux-arm-kernel


On Thu, 23 Aug 2018, Pasha Tatashin wrote:
On 8/23/18 7:23 AM, Michal Hocko wrote:
quoted
On Thu 23-08-18 07:16:34, Mikulas Patocka wrote:
quoted

On Thu, 23 Aug 2018, Michal Hocko wrote:
quoted
On Thu 23-08-18 07:02:37, Mikulas Patocka wrote:
[...]
quoted
This crash is not from -ENOENT. It crashes because page->compound_head is 
0xffffffffffffffff (see below).

If I enable CONFIG_DEBUG_VM, I also get VM_BUG.
This smells like the struct page is not initialized properly. How is
this memory range added? I mean is it brought up by the memory hotplug
or during the boot?
I believe it is due to uninitialized struct pages. Mikulas, could you
please provide config file, and also the full console output.

Please make sure that you have:
CONFIG_DEBUG_VM=y
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y

I wonder what kind of struct page memory layout is used, and also if
deferred struct pages are enabled or not.
I uploaded configs and console logs (for the real hardware and for the 
virtual machine) here: 
http://people.redhat.com/~mpatocka/testcases/arm64-config/

The virtual machine was running the lvm2 testsuite while the crash 
happened.
Have you tried bisecting the problem?
I may try some old kernel in the virtual machine to test if the bug 
happens on it.
Thank you,
Pavel
Mikulas
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help