[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAJd=RBBNCf5_V-nHjK0gOqS4OLMszgB7Rg_WMf4DvL-De+ZdHA@mail.gmail.com>
Date: Thu, 22 Aug 2013 11:21:28 +0800
From: Hillf Danton <dhillf@...il.com>
To: Dave Jones <davej@...hat.com>, Hillf Danton <dhillf@...il.com>,
Linux-MM <linux-mm@...ck.org>,
Linux Kernel <linux-kernel@...r.kernel.org>
Subject: Re: unused swap offset / bad page map.
On Thu, Aug 22, 2013 at 4:49 AM, Dave Jones <davej@...hat.com> wrote:
>
> didn't hit the bug_on, but got a bunch of
>
> [ 424.077993] swap_free: Unused swap offset entry 000187d5
> [ 439.377194] swap_free: Unused swap offset entry 000187e7
> [ 441.998411] swap_free: Unused swap offset entry 000187ee
> [ 446.956551] swap_free: Unused swap offset entry 0000245f
>
If page is reused, its swap entry is freed.
reuse_swap_page()
delete_from_swap_cache()
swapcache_free()
count = swap_entry_free(p, entry, SWAP_HAS_CACHE);
If count drops to zero, then swap_free() gives warning.
--- a/mm/memory.c Wed Aug 7 16:29:34 2013
+++ b/mm/memory.c Thu Aug 22 10:44:32 2013
@@ -3123,6 +3123,7 @@ static int do_swap_page(struct mm_struct
/* It's better to call commit-charge after rmap is established */
mem_cgroup_commit_charge_swapin(page, ptr);
+ if (!exclusive)
swap_free(entry);
if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page))
try_to_free_swap(page);
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists