lkml.org 
[lkml]   [2014]   [Jul]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH mmotm/next] mm: memcontrol: rewrite charge API: fix shmem_unuse
On Mon, Jun 30, 2014 at 03:48:39PM -0700, Hugh Dickins wrote:
> Under shmem swapping and swapoff load, I sometimes hit the
> VM_BUG_ON_PAGE(!page->mapping) in mem_cgroup_commit_charge() at
> mm/memcontrol.c:6502! Each time it has been a call from shmem_unuse().
>
> Yes, there are some cases (most commonly when the page being unswapped
> is in a file being unlinked and evicted at that time) when the charge
> should not be committed. In the old scheme, the page got uncharged
> again on release; but in the new scheme, it hits that BUG beforehand.
>
> It's a useful BUG, so adapt shmem_unuse() to allow for it. Which needs
> more info from shmem_unuse_inode(): so abuse -EAGAIN internally to
> replace the previous !found state (-ENOENT would be a more natural
> code, but that's exactly what you get when the swap has been evicted).
>
> Signed-off-by: Hugh Dickins <hughd@google.com>

Acked-by: Johannes Weiner <hannes@cmpxchg.org>

Thanks, Hugh!


\
 
 \ /
  Last update: 2014-07-03 01:21    [W:0.049 / U:0.544 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site