linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Johannes Weiner <hannes@cmpxchg.org>
To: Dave Jones <davej@codemonkey.org.uk>
Cc: Jan Kara <jack@suse.cz>, linux-mm@kvack.org
Subject: Re: 4.10-rc2 list_lru_isolate list corruption
Date: Fri, 6 Jan 2017 20:19:31 -0500	[thread overview]
Message-ID: <20170107011931.GA9698@cmpxchg.org> (raw)
In-Reply-To: <20170106195851.7pjpnn5w2bjasc7w@codemonkey.org.uk>

On Fri, Jan 06, 2017 at 02:58:51PM -0500, Dave Jones wrote:
> On Fri, Jan 06, 2017 at 11:59:41AM -0500, Johannes Weiner wrote:
>  > diff --git a/lib/radix-tree.c b/lib/radix-tree.c
>  > index 6f382e07de77..0783af1c0ebb 100644
>  > --- a/lib/radix-tree.c
>  > +++ b/lib/radix-tree.c
>  > @@ -640,6 +640,8 @@ static inline void radix_tree_shrink(struct radix_tree_root *root,
>  >  				update_node(node, private);
>  >  		}
>  >  
>  > +		WARN_ON_ONCE(!list_empty(&node->private_list));
>  > +
>  >  		radix_tree_node_free(node);
>  >  	}
>  >  }
> 
> [ 8467.462878] WARNING: CPU: 2 PID: 53 at lib/radix-tree.c:643 delete_node+0x1e4/0x200
> [ 8467.468770] CPU: 2 PID: 53 Comm: kswapd0 Not tainted 4.10.0-rc2-think+ #3 
> [ 8467.480436] Call Trace:
> [ 8467.486213]  dump_stack+0x4f/0x73
> [ 8467.491999]  __warn+0xcb/0xf0
> [ 8467.497769]  warn_slowpath_null+0x1d/0x20
> [ 8467.503566]  delete_node+0x1e4/0x200
> [ 8467.509468]  __radix_tree_delete_node+0xd/0x10
> [ 8467.515425]  shadow_lru_isolate+0xe6/0x220
> [ 8467.521337]  __list_lru_walk_one.isra.4+0x9b/0x190
> [ 8467.527176]  ? memcg_drain_all_list_lrus+0x1d0/0x1d0
> [ 8467.533066]  list_lru_walk_one+0x23/0x30
> [ 8467.538953]  scan_shadow_nodes+0x2e/0x40
> [ 8467.544840]  shrink_slab.part.44+0x23d/0x5d0
> [ 8467.550751]  ? 0xffffffffa023a077
> [ 8467.556639]  shrink_node+0x22c/0x330
> [ 8467.562542]  kswapd+0x392/0x8f0
> [ 8467.568422]  kthread+0x10f/0x150
> [ 8467.574313]  ? mem_cgroup_shrink_node+0x2e0/0x2e0
> [ 8467.580266]  ? kthread_create_on_node+0x60/0x60
> [ 8467.586203]  ret_from_fork+0x29/0x40
> [ 8467.592109] ---[ end trace f790bafb683609d5 ]---

Argh, __radix_tree_delete_node() makes the flawed assumption that only
the immediate branch it's mucking with can collapse. But this warning
points out that a sibling branch can collapse too, including its leaf.

Can you try if this patch fixes the problem?

---

  reply	other threads:[~2017-01-07  1:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20170106052056.jihy5denyxsnfuo5@codemonkey.org.uk>
2017-01-06 16:59 ` 4.10-rc2 list_lru_isolate list corruption Johannes Weiner
2017-01-06 19:58   ` Dave Jones
2017-01-07  1:19     ` Johannes Weiner [this message]
2017-01-08  0:07       ` Dave Jones
2017-01-08  0:37         ` Hugh Dickins
2017-01-08  2:02           ` Johannes Weiner
2017-01-08 20:30             ` Hugh Dickins

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=20170107011931.GA9698@cmpxchg.org \
    --to=hannes@cmpxchg.org \
    --cc=davej@codemonkey.org.uk \
    --cc=jack@suse.cz \
    --cc=linux-mm@kvack.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).