From: Al Viro <viro@ZenIV.linux.org.uk>
To: Johan Hovold <johan@kernel.org>
Cc: linux-kernel@vger.kernel.org, "Rafael J. Wysocki" <rjw@rjwysocki.net>
Subject: Re: GPF in __d_lookup_rcu after hibernate
Date: Sat, 19 Mar 2016 20:17:59 +0000 [thread overview]
Message-ID: <20160319201759.GV17997@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20160319192430.GU17997@ZenIV.linux.org.uk>
On Sat, Mar 19, 2016 at 07:24:30PM +0000, Al Viro wrote:
> Hard to tell without your .config, but at a guess that's
> while (kn->parent && base != kn)
> kn = kn->parent;
> in kernfs_get_target_path() running into kn equal to 0x008f0000008e0000,
> which is not a valid pointer.
>
> Note that all of those are of the same pattern:
> 00 00 N 00 00 00 N+1 00
> where a pointer should've been. In these traces we'd seen N equal to 0xa,
> 0x9a and 0x8e. Hell knows what it is, but the patterns are too similar to
> be a coincidence; it's the same kind of memory corruption. Have it hit
> a dentry and you've got yourself a persistent oops in dcache hash chain
> traversals.
>
> FWIW, it might be a single table of that form, with the previous pointer
> in the chain corrupted so it points into it. Hell knows... AFAICS,
> by that point the previous addresses are already lost, both in __d_lookup_rcu()
> and kernfs_get_target_path() cases.
As the matter of fact, it looks like similar values pop up in traces posted
at least a couple of years ago - http://pastebin.com/Nhewn8xP, for example,
is full of such stuff, also on resume from suspend-on-disk. With 3.13
kernel, including the things like pte equal to 0x0095000000940000, etc.
So it smells like a repeated pattern of memory corruption on resume from
disk, going back at least that far. What gets corrupted varies, so I suspect
that dcache is simply something that contains lists long enough and traversed
frequently enough to be likely to catch that. Page tables are another
place where it's likely to show up...
next prev parent reply other threads:[~2016-03-19 20:18 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-19 16:46 GPF in __d_lookup_rcu after hibernate Johan Hovold
2016-03-19 19:24 ` Al Viro
2016-03-19 20:17 ` Al Viro [this message]
2016-03-20 13:19 ` Johan Hovold
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=20160319201759.GV17997@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=johan@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rjw@rjwysocki.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox