From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Tue, 16 Apr 2019 16:05:52 -0400 (EDT) From: Mathieu Desnoyers Message-ID: <2054840174.2796.1555445152616.JavaMail.zimbra@efficios.com> In-Reply-To: References: <20190215185151.GG7897@sirena.org.uk> Subject: Re: next/master boot bisection: next-20190215 on beaglebone-black MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit List-ID: To: Dan Williams Cc: Guenter Roeck , Kees Cook , kernelci , Guillaume Tucker , Mike Rapoport , Andrew Morton , Michal Hocko , Mark Brown , Tomeu Vizoso , Matt Hart , Stephen Rothwell , Kevin Hilman , Enric Balletbo i Serra , Nicholas Piggin , linux , Masahiro Yamada , Adrian Reber , linux-kernel , Johannes Weiner , linux-mm , Richard Guy Briggs , Peter Zijlstra , info ----- On Apr 16, 2019, at 2:54 PM, Dan Williams dan.j.williams@intel.com wrote: > On Thu, Apr 11, 2019 at 1:54 PM Guenter Roeck wrote: > [..] >> > > Boot tests report >> > > >> > > Qemu test results: >> > > total: 345 pass: 345 fail: 0 >> > > >> > > This is on top of next-20190410 with CONFIG_SHUFFLE_PAGE_ALLOCATOR=y >> > > and the known crashes fixed. >> > >> > In addition to CONFIG_SHUFFLE_PAGE_ALLOCATOR=y you also need the >> > kernel command line option "page_alloc.shuffle=1" >> > >> > ...so I doubt you are running with shuffling enabled. Another way to >> > double check is: >> > >> > cat /sys/module/page_alloc/parameters/shuffle >> >> Yes, you are right. Because, with it enabled, I see: >> >> Kernel command line: rdinit=/sbin/init page_alloc.shuffle=1 panic=-1 >> console=ttyAMA0,115200 page_alloc.shuffle=1 >> ------------[ cut here ]------------ >> WARNING: CPU: 0 PID: 0 at ./include/linux/jump_label.h:303 >> page_alloc_shuffle+0x12c/0x1ac >> static_key_enable(): static key 'page_alloc_shuffle_key+0x0/0x4' used >> before call to jump_label_init() > > This looks to be specific to ARM never having had to deal with > DEFINE_STATIC_KEY_TRUE in the past. > > I am able to avoid this warning by simply not enabling JUMP_LABEL > support in my build. Looking into this some more, it looks like I was on the wrong track with my large branch offset theory. Is it just possible that page_alloc_shuffle() ends up using jump labels before they are initialized ? Perhaps this has something to do with how early the page_alloc.shuffle=1 kernel parameter is handled. Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Tue, 16 Apr 2019 16:05:52 -0400 (EDT) From: Mathieu Desnoyers Message-ID: <2054840174.2796.1555445152616.JavaMail.zimbra@efficios.com> In-Reply-To: References: <20190215185151.GG7897@sirena.org.uk> Subject: Re: next/master boot bisection: next-20190215 on beaglebone-black MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit List-ID: To: Dan Williams Cc: Guenter Roeck , Kees Cook , kernelci , Guillaume Tucker , Mike Rapoport , Andrew Morton , Michal Hocko , Mark Brown , Tomeu Vizoso , Matt Hart , Stephen Rothwell , Kevin Hilman , Enric Balletbo i Serra , Nicholas Piggin , linux , Masahiro Yamada , Adrian Reber , linux-kernel , Johannes Weiner , linux-mm , Richard Guy Briggs , Peter Zijlstra , info ----- On Apr 16, 2019, at 2:54 PM, Dan Williams dan.j.williams@intel.com wrote: > On Thu, Apr 11, 2019 at 1:54 PM Guenter Roeck wrote: > [..] >> > > Boot tests report >> > > >> > > Qemu test results: >> > > total: 345 pass: 345 fail: 0 >> > > >> > > This is on top of next-20190410 with CONFIG_SHUFFLE_PAGE_ALLOCATOR=y >> > > and the known crashes fixed. >> > >> > In addition to CONFIG_SHUFFLE_PAGE_ALLOCATOR=y you also need the >> > kernel command line option "page_alloc.shuffle=1" >> > >> > ...so I doubt you are running with shuffling enabled. Another way to >> > double check is: >> > >> > cat /sys/module/page_alloc/parameters/shuffle >> >> Yes, you are right. Because, with it enabled, I see: >> >> Kernel command line: rdinit=/sbin/init page_alloc.shuffle=1 panic=-1 >> console=ttyAMA0,115200 page_alloc.shuffle=1 >> ------------[ cut here ]------------ >> WARNING: CPU: 0 PID: 0 at ./include/linux/jump_label.h:303 >> page_alloc_shuffle+0x12c/0x1ac >> static_key_enable(): static key 'page_alloc_shuffle_key+0x0/0x4' used >> before call to jump_label_init() > > This looks to be specific to ARM never having had to deal with > DEFINE_STATIC_KEY_TRUE in the past. > > I am able to avoid this warning by simply not enabling JUMP_LABEL > support in my build. Looking into this some more, it looks like I was on the wrong track with my large branch offset theory. Is it just possible that page_alloc_shuffle() ends up using jump labels before they are initialized ? Perhaps this has something to do with how early the page_alloc.shuffle=1 kernel parameter is handled. Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com