All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Dirk Gouders <gouders@et.bocholt.fh-gelsenkirchen.de>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [Problem] kernel hangs at boot (bisected 892d208bcf)
Date: Thu, 19 Jan 2012 15:37:32 +0000	[thread overview]
Message-ID: <20120119153732.GB20558@arm.com> (raw)
In-Reply-To: <gik44nrc52.fsf@karga.hank.lab>

On Thu, Jan 19, 2012 at 02:38:01PM +0000, Dirk Gouders wrote:
> Catalin Marinas <catalin.marinas@arm.com> writes:
> > On Thu, Jan 19, 2012 at 12:16:56PM +0000, Dirk Gouders wrote:
> >> Catalin Marinas <catalin.marinas@arm.com> writes:
> >> > On Wed, Jan 18, 2012 at 07:32:59PM +0000, Dirk Gouders wrote:
> >> >> Freeing unused kernel memory: 608k freed
> >> >> kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
> >> >> BUG: unable to handle kernel paging request at ffffffff818b232b
> >> >> IP: [<ffffffff818b232b>] kmemleak_late_init+0x8a/0x8a
> > ...
> >> >> Code: cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc <cc> cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc
> >> >> RIP  [<ffffffff818b232b>] kmemleak_late_init+0x8a/0x8a
> >> >
> >> > I don't really see how kmemleak could cause such error (or any of the
> >> > recent changes I have made). It looks like some of the code in the
> >> > .init.text section is not executable.
> >
> > Ah, the interesting part - 0xcc is the poison value for freed initmem.
> > And from the kernel logs you posted Linux frees the initmem and later
> > calls kmemleak_late_init() which should have been in the .init.text
> > section.
> >
> > The kmemleak_late_init() function is defined as:
> >
> > static int __init kmemleak_late_init(void)
> > {
> > ...
> > }
> > late_initcall(kmemleak_late_init);
> >
> > and it must *not* be called after the initmem has been freed. Was there
> > any change in the x86 or generic code with regards to the freeing of the
> > init memory?
> 
> I tried to re-bisect this problem by marking commit
> 029aeff5db879afd7760f11214b6fea45f76b58e
> "kmemleak: Add support for memory hotplug" (that I previously considered
> good, because it produces a different output) bad.  The attached output
> shows that kmemleak_late_init is also involved but bisect did not bring
> me a step further:
> 
> $ git bisect good f1c84dae0e
> Bisecting: a merge base must be tested
> [c3b92c8787367a8bb53d57d9789b558f1295cc96] Linux 3.1

If you bisect to one of the kmemleak commits, they are based on 3.2-rc4
so you miss any commits that may have been merged during the merge
window.

> ------------------------------------------------------------------------
> Freeing unused kernel memory: 676k freed
> kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
> BUG: unable to handle kernel paging request at ffffffff81892482
> IP: [<ffffffff81892482>] kmemleak_late_init+0x8a/0x8a
> PGD 17cd067 PUD 17d1063 PMD 3c5c8063 PTE 8000000001892163
> Oops: 0011 [#1] SMP 

Similar behaviour, the init memory is freed before the initcalls, so
doesn't look like a kmemleak problem.

Could you pass initcall_debug on the kernel command line and see how may
commits are called before and after the free_initmem() call?

You could also try to revert (git revert) the kmemleak commits from the
latest git tree, without bisecting.

-- 
Catalin

  reply	other threads:[~2012-01-19 15:37 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-18 19:32 [Problem] kernel hangs at boot (bisected 892d208bcf) Dirk Gouders
2012-01-19 11:01 ` Catalin Marinas
2012-01-19 12:16   ` Dirk Gouders
2012-01-19 14:00     ` Catalin Marinas
2012-01-19 14:38       ` Dirk Gouders
2012-01-19 15:37         ` Catalin Marinas [this message]
2012-01-19 17:43           ` Dirk Gouders
2012-01-19 19:58             ` Dirk Gouders
2012-01-19 20:52               ` Dirk Gouders
2012-01-20  2:20                 ` Josh Boyer
2012-01-20  9:22                   ` Catalin Marinas
2012-01-20 11:01                 ` Catalin Marinas
2012-01-20 12:14                   ` Dirk Gouders
2012-01-20 14:16                   ` Josh Boyer
2012-01-20 14:21                     ` Catalin Marinas

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=20120119153732.GB20558@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=gouders@et.bocholt.fh-gelsenkirchen.de \
    --cc=linux-kernel@vger.kernel.org \
    /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.