All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: Guenter Roeck <groeck@google.com>
Cc: Kees Cook <keescook@chromium.org>,
	kernelci@groups.io,
	Guillaume Tucker <guillaume.tucker@collabora.com>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Michal Hocko <mhocko@suse.com>, Mark Brown <broonie@kernel.org>,
	Tomeu Vizoso <tomeu.vizoso@collabora.com>,
	Matt Hart <matthew.hart@linaro.org>,
	Stephen Rothwell <sfr@canb.auug.org.au>,
	Kevin Hilman <khilman@baylibre.com>,
	Enric Balletbo i Serra <enric.balletbo@collabora.com>,
	Nicholas Piggin <npiggin@gmail.com>,
	Dominik Brodowski <linux@dominikbrodowski.net>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Adrian Reber <adrian@lisas.de>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Linux MM <linux-mm@kvack.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Richard Guy Briggs <rgb@redhat.com>,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>,
	info@kernelci.org
Subject: Re: next/master boot bisection: next-20190215 on beaglebone-black
Date: Tue, 16 Apr 2019 13:37:45 -0700	[thread overview]
Message-ID: <CAPcyv4hyOtJsnM6qqey7ADY=7brzVQ5TH3URrofmsQ57t1=WbQ@mail.gmail.com> (raw)
In-Reply-To: <CABXOdTd-cqHM_feAO1tvwn4Z=kM6WHKYAbDJ7LGfMvRPRPG7GA@mail.gmail.com>

On Tue, Apr 16, 2019 at 12:34 PM Guenter Roeck <groeck@google.com> wrote:
>
> On Tue, Apr 16, 2019 at 11:54 AM Dan Williams <dan.j.williams@intel.com> wrote:
> >
> > On Thu, Apr 11, 2019 at 1:54 PM Guenter Roeck <groeck@google.com> 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.
> >
>
> This affects almost all architectures, not just arm, presumably
> because parse_args() is called before jump_label_init() in
> start_kernel().

Hmm, you're right, but this should effect *every* architecture not
just ARM. Why is it not screaming at me on x86?

> I did not bother to report back with further details
> after someone stated that qemu doesn't support omap2, and the context
> seemed to suggest that running any other tests would not add any
> value.
>
> > I am able to avoid this warning by simply not enabling JUMP_LABEL
> > support in my build.
> >
>
> Fine with me, as long as CONFIG_SHUFFLE_PAGE_ALLOCATOR=y is not
> enabled by default, or if it is made dependent on !JUMP_LABEL.

Ah, no, the problem is that jump_label_init() is called by
setup_arch() on x86, and smp_prepare_boot_cpu() on powerpc, but not
until after parse_args() on ARM.

Given it appears to be safe to call jump_label_init() early how about
something like the following?

diff --git a/init/main.c b/init/main.c
index 598e278b46f7..7d4025d665eb 100644
--- a/init/main.c
+++ b/init/main.c
@@ -582,6 +582,8 @@ asmlinkage __visible void __init start_kernel(void)
        page_alloc_init();

        pr_notice("Kernel command line: %s\n", boot_command_line);
+       /* parameters may set static keys */
+       jump_label_init();
        parse_early_param();
        after_dashes = parse_args("Booting kernel",
                                  static_command_line, __start___param,
@@ -591,8 +593,6 @@ asmlinkage __visible void __init start_kernel(void)
                parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
                           NULL, set_init_arg);

-       jump_label_init();
-
        /*
         * These use large bootmem allocations and must precede
         * kmem_cache_init()

  reply	other threads:[~2019-04-16 20:37 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-15 18:20 next/master boot bisection: next-20190215 on beaglebone-black kernelci.org bot
2019-02-15 18:43 ` Andrew Morton
2019-02-15 18:51   ` Mark Brown
2019-02-15 19:00     ` Andrew Morton
2019-02-16  6:21       ` Stephen Rothwell
2019-02-26 23:59     ` Andrew Morton
2019-02-27  0:04       ` Dan Williams
2019-02-27  0:04         ` Dan Williams
2019-02-28 23:14         ` Andrew Morton
2019-02-28 23:55           ` Dan Williams
2019-02-28 23:55             ` Dan Williams
2019-03-01  8:25             ` Guillaume Tucker
2019-03-01  8:25               ` Guillaume Tucker
2019-03-01 10:40               ` Mike Rapoport
2019-03-01 11:49                 ` Mark Brown
2019-03-01 20:41               ` Andrew Morton
2019-03-01 21:04                 ` Guillaume Tucker
2019-03-01 21:04                   ` Guillaume Tucker
2019-03-01 23:23                   ` Dan Williams
2019-03-01 23:23                     ` Dan Williams
2019-03-06 10:14                     ` Guillaume Tucker
2019-03-06 10:14                       ` Guillaume Tucker
2019-03-06 14:05                       ` Mike Rapoport
2019-03-07  9:16                         ` Guillaume Tucker
2019-03-07  9:16                           ` Guillaume Tucker
2019-03-07 15:43                           ` Dan Williams
2019-03-07 15:43                             ` Dan Williams
2019-04-10 22:52                             ` Kees Cook
2019-04-10 22:52                               ` Kees Cook
2019-04-11 16:42                               ` Guenter Roeck
2019-04-11 16:42                                 ` Guenter Roeck
2019-04-11 16:42                                 ` Guenter Roeck
2019-04-11 17:35                                 ` Kees Cook
2019-04-11 17:35                                   ` Kees Cook
2019-04-11 20:08                                   ` Guenter Roeck
2019-04-11 20:08                                     ` Guenter Roeck
2019-04-11 20:22                                     ` Dan Williams
2019-04-11 20:22                                       ` Dan Williams
2019-04-11 20:53                                       ` Guenter Roeck
2019-04-11 20:53                                         ` Guenter Roeck
2019-04-16 18:54                                         ` Dan Williams
2019-04-16 18:54                                           ` Dan Williams
2019-04-16 19:17                                           ` Mathieu Desnoyers
2019-04-16 19:17                                             ` Mathieu Desnoyers
2019-04-16 19:25                                             ` Mathieu Desnoyers
2019-04-16 19:25                                               ` Mathieu Desnoyers
2019-04-16 19:45                                               ` Mathieu Desnoyers
2019-04-16 19:45                                                 ` Mathieu Desnoyers
2019-04-16 19:33                                           ` Guenter Roeck
2019-04-16 19:33                                             ` Guenter Roeck
2019-04-16 20:37                                             ` Dan Williams [this message]
2019-04-16 20:37                                               ` Dan Williams
2019-04-16 21:04                                               ` Guenter Roeck
2019-04-16 21:04                                                 ` Guenter Roeck
2019-04-17  3:30                                                 ` Kees Cook
2019-04-17  3:30                                                   ` Kees Cook
2019-04-16 20:05                                           ` Mathieu Desnoyers
2019-04-16 20:05                                             ` Mathieu Desnoyers
2019-04-11 20:49                                     ` Mike Rapoport
2019-03-01 11:45           ` Mark Brown
2019-03-01  9:02         ` Vlastimil Babka
2019-02-18  9:44 ` Michal Hocko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPcyv4hyOtJsnM6qqey7ADY=7brzVQ5TH3URrofmsQ57t1=WbQ@mail.gmail.com' \
    --to=dan.j.williams@intel.com \
    --cc=adrian@lisas.de \
    --cc=akpm@linux-foundation.org \
    --cc=broonie@kernel.org \
    --cc=enric.balletbo@collabora.com \
    --cc=groeck@google.com \
    --cc=guillaume.tucker@collabora.com \
    --cc=hannes@cmpxchg.org \
    --cc=info@kernelci.org \
    --cc=keescook@chromium.org \
    --cc=kernelci@groups.io \
    --cc=khilman@baylibre.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux@dominikbrodowski.net \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=matthew.hart@linaro.org \
    --cc=mhocko@suse.com \
    --cc=npiggin@gmail.com \
    --cc=peterz@infradead.org \
    --cc=rgb@redhat.com \
    --cc=rppt@linux.ibm.com \
    --cc=sfr@canb.auug.org.au \
    --cc=tomeu.vizoso@collabora.com \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.