From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Vegard Nossum <vegard.nossum@gmail.com>,
stable@kernel.org, Nick Piggin <npiggin@suse.de>,
Pekka Enberg <penberg@cs.helsinki.fi>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] mm: fix lazy vmap purging (use-after-free error)
Date: Mon, 23 Feb 2009 07:56:05 -0800 [thread overview]
Message-ID: <20090223155605.GC6751@linux.vnet.ibm.com> (raw)
In-Reply-To: <20090223092744.GL9582@elte.hu>
On Mon, Feb 23, 2009 at 10:27:44AM +0100, Ingo Molnar wrote:
>
> * Andrew Morton <akpm@linux-foundation.org> wrote:
>
> > On Mon, 23 Feb 2009 10:07:35 +0100 Ingo Molnar <mingo@elte.hu> wrote:
> >
> > > > ---
> > > >
> > > > init/main.c | 3 +++
> > > > kernel/rcuclassic.c | 4 +++-
> > > > kernel/rcutree.c | 4 +++-
> > > > 3 files changed, 9 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/init/main.c b/init/main.c
> > > > index 8442094..51f4b71 100644
> > > > --- a/init/main.c
> > > > +++ b/init/main.c
> > > > @@ -121,6 +121,8 @@ static char *static_command_line;
> > > > static char *execute_command;
> > > > static char *ramdisk_execute_command;
> > > >
> > > > +int idle_task_is_really_idle; /* set to 1 late in boot. */
> > > > +
> > > > #ifdef CONFIG_SMP
> > > > /* Setup configured maximum number of CPUs to activate */
> > > > unsigned int __initdata setup_max_cpus = NR_CPUS;
> > > > @@ -463,6 +465,7 @@ static noinline void __init_refok rest_init(void)
> > > > * at least once to get things moving:
> > > > */
> > > > init_idle_bootup_task(current);
> > > > + idle_task_is_really_idle = 1;
> > > > preempt_enable_no_resched();
> > > > schedule();
> > > > preempt_disable();
> > >
> > > Could you please use system_state instead? We could insert a new
> > > stage - or just use SYSTEM_RUNNING as the trigger.
> >
> > I think the standalone flag is better (once those
> > extern-decls-in-C get fixed).
> >
> > system_state's semantics have, err, evolved over time. If
> > this happens again (and the patch sneaks past my attention)
> > then there's a risk that code which depends upon system_state
> > will break - this has happened in the past. Plus piling more
> > dependencies on system_state of course makes any evolution of
> > its semantics harder to do...
>
> All we need is a SYSTEM_BOOTING_EARLY boundary - prior which
> there's no real scheduling yet. I used SYSTEM_SCHEDULER_BOOTING
> state before and it worked well and wasnt fragile.
>
> Our system_state semantics problems were more rooted in the fact
> that the SYSTEM_BOOTING stage wasnt well defined. But if we did
> a SYSTEM_SCHEDULER_BOOTING stage that would be pretty
> bit-rot-safe.
Actually, I should be able to simply use (system_state != SYSTEM_BOOTING),
because the system state transitions to SYSTEM_RUNNING at essentially
the same place that I set my new global variable. Especially given that
this approach saves others from any bad guesses I might make about the
existing uses of SYSTEM_BOOTING. ;-)
I will also credit kmemcheck on the resulting patch.
Thanx, Paul
next prev parent reply other threads:[~2009-02-23 17:02 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-20 13:41 [PATCH] mm: fix lazy vmap purging (use-after-free error) Vegard Nossum
2009-02-20 13:50 ` Ingo Molnar
2009-02-20 13:58 ` Pekka Enberg
2009-02-20 14:01 ` Ingo Molnar
2009-02-20 14:18 ` Pekka Enberg
2009-02-20 15:41 ` Paul E. McKenney
2009-02-20 14:51 ` Vegard Nossum
2009-02-20 15:46 ` Paul E. McKenney
2009-02-20 16:04 ` Ingo Molnar
2009-02-20 16:44 ` Paul E. McKenney
2009-02-20 17:14 ` Ingo Molnar
2009-02-20 17:25 ` Paul E. McKenney
2009-02-20 23:51 ` Vegard Nossum
2009-02-21 1:40 ` Paul E. McKenney
2009-02-21 9:30 ` Vegard Nossum
2009-02-21 17:47 ` Paul E. McKenney
2009-02-21 18:08 ` Vegard Nossum
2009-02-21 18:33 ` Paul E. McKenney
2009-02-21 18:37 ` Vegard Nossum
2009-02-22 3:00 ` Paul E. McKenney
2009-02-23 5:17 ` Paul E. McKenney
2009-02-23 8:24 ` Vegard Nossum
2009-02-23 15:39 ` Paul E. McKenney
2009-02-23 9:07 ` Ingo Molnar
2009-02-23 9:17 ` Andrew Morton
2009-02-23 9:27 ` Ingo Molnar
2009-02-23 15:56 ` Paul E. McKenney [this message]
2009-02-23 13:29 ` Nick Piggin
2009-02-23 16:17 ` Paul E. McKenney
2009-02-23 17:20 ` Ingo Molnar
2009-02-23 19:10 ` Andrew Morton
2009-02-23 19:30 ` Paul E. McKenney
2009-02-23 19:59 ` Andrew Morton
2009-02-23 20:12 ` Paul E. McKenney
2009-02-23 20:30 ` Andrew Morton
2009-02-23 19:33 ` Ingo Molnar
2009-02-23 20:04 ` Andrew Morton
2009-02-23 20:09 ` Ingo Molnar
2009-02-23 20:44 ` Paul E. McKenney
2009-02-23 20:43 ` Paul E. McKenney
2009-02-24 3:23 ` Nick Piggin
2009-02-24 3:37 ` Paul E. McKenney
2009-02-21 19:21 ` Vegard Nossum
2009-02-20 16:01 ` Ingo Molnar
2009-02-20 16:49 ` Paul E. McKenney
2009-02-20 15:56 ` Paul E. McKenney
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=20090223155605.GC6751@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=npiggin@suse.de \
--cc=penberg@cs.helsinki.fi \
--cc=stable@kernel.org \
--cc=vegard.nossum@gmail.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.