Re: Memory hotplug regression in 4.13

From: Seth Forshee
Date: Thu Sep 21 2017 - 01:41:03 EST


On Wed, Sep 20, 2017 at 11:29:31AM +0200, Michal Hocko wrote:
> Hi,
> I am currently at a conference so I will most probably get to this next
> week but I will try to ASAP.
>
> On Tue 19-09-17 11:41:14, Seth Forshee wrote:
> > Hi Michal,
> >
> > I'm seeing oopses in various locations when hotplugging memory in an x86
> > vm while running a 32-bit kernel. The config I'm using is attached. To
> > reproduce I'm using kvm with the memory options "-m
> > size=512M,slots=3,maxmem=2G". Then in the qemu monitor I run:
> >
> > object_add memory-backend-ram,id=mem1,size=512M
> > device_add pc-dimm,id=dimm1,memdev=mem1
> >
> > Not long after that I'll see an oops, not always in the same location
> > but most often in wp_page_copy, like this one:
>
> This is rather surprising. How do you online the memory?

The kernel has CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y.

> > [ 24.673623] BUG: unable to handle kernel paging request at dffff000
> > [ 24.675569] IP: wp_page_copy+0xa8/0x660
>
> could you resolve the IP into the source line?

It seems I don't have that kernel anymore, but I've got a 4.14-rc1 build
and the problem still occurs there. It's pointing to the call to
__builtin_memcpy in memcpy (include/linux/string.h line 340), which we
get to via wp_page_copy -> cow_user_page -> copy_user_highpage.

Thanks,
Seth