diff for duplicates of <20140620154209.GI7331@cmpxchg.org> diff --git a/a/1.txt b/N1/1.txt index 2e438c3..161e038 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -140,7 +140,7 @@ mentioned above? --- -From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001 +>From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001 From: Johannes Weiner <hannes@cmpxchg.org> Date: Fri, 20 Jun 2014 11:09:14 -0400 Subject: [patch] mm: memcontrol: rewrite uncharge API fix diff --git a/a/content_digest b/N1/content_digest index d6afead..e406e74 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -2,16 +2,8 @@ "From\0Johannes Weiner <hannes@cmpxchg.org>\0" "Subject\0Re: [memcontrol] WARNING: CPU: 0 PID: 1 at kernel/res_counter.c:28 res_counter_uncharge_locked()\0" "Date\0Fri, 20 Jun 2014 11:42:10 -0400\0" - "To\0Andrew Morton <akpm@linux-foundation.org>\0" - "Cc\0Fengguang Wu <fengguang.wu@intel.com>" - Jet Chen <jet.chen@intel.com> - Yuanhan Liu <yuanhan.liu@intel.com> - LKP <lkp@01.org> - cgroups@vger.kernel.org - linux-doc@vger.kernel.org - linux-kernel@vger.kernel.org - " linux-mm@kvack.org\0" - "\00:1\0" + "To\0lkp@lists.01.org\0" + "\01:1\0" "b\0" "On Fri, Jun 20, 2014 at 06:27:04PM +0800, Fengguang Wu wrote:\n" "> Greetings,\n" @@ -155,7 +147,7 @@ "\n" "---\n" "\n" - "From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001\n" + ">From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001\n" "From: Johannes Weiner <hannes@cmpxchg.org>\n" "Date: Fri, 20 Jun 2014 11:09:14 -0400\n" "Subject: [patch] mm: memcontrol: rewrite uncharge API fix\n" @@ -229,4 +221,4 @@ "-- \n" 2.0.0 -79e789e729ad90f4af25a67430f17923a46463bda91ad3b28293e0474c769c71 +479c0a6b9745e7ae73aa9344811fa80724a5edae6a10089eb3da60b66b00d948
diff --git a/a/1.txt b/N2/1.txt index 2e438c3..e9d029c 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -139,77 +139,3 @@ Andrew, can you please put this in to fix the uncharge rewrite patch mentioned above? --- - -From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001 -From: Johannes Weiner <hannes@cmpxchg.org> -Date: Fri, 20 Jun 2014 11:09:14 -0400 -Subject: [patch] mm: memcontrol: rewrite uncharge API fix - -It's not entirely clear whether do_swap_account or PCG_MEMSW is the -authoritative answer to whether a page is swap-accounted or not. This -currently leads to the following memsw counter underflow when swap -accounting is disabled: - -[ 2.753355] WARNING: CPU: 0 PID: 1 at kernel/res_counter.c:28 res_counter_uncharge_locked+0x48/0x74() -[ 2.753355] CPU: 0 PID: 1 Comm: init Not tainted 3.16.0-rc1-00238-gddc5bfe #1 -[ 2.753355] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 -[ 2.753355] 0000000000000000 ffff880012073c50 ffffffff81a23b9d ffff880012073c88 -[ 2.753355] ffffffff810bc765 ffffffff8111fac8 0000000000001000 ffff88001200fa50 -[ 2.753355] 0000000000000001 ffff88001200fa01 ffff880012073c98 ffffffff810bc84b -[ 2.753355] Call Trace: -[ 2.753355] [<ffffffff81a23b9d>] dump_stack+0x19/0x1b -[ 2.753355] [<ffffffff810bc765>] warn_slowpath_common+0x73/0x8c -[ 2.753355] [<ffffffff8111fac8>] ? res_counter_uncharge_locked+0x48/0x74 -[ 2.753355] [<ffffffff810bc84b>] warn_slowpath_null+0x1a/0x1c -[ 2.753355] [<ffffffff8111fac8>] res_counter_uncharge_locked+0x48/0x74 -[ 2.753355] [<ffffffff8111fd02>] res_counter_uncharge_until+0x4e/0xa9 -[ 2.753355] [<ffffffff8111fd70>] res_counter_uncharge+0x13/0x15 -[ 2.753355] [<ffffffff8119499c>] mem_cgroup_uncharge_end+0x73/0x8d -[ 2.753355] [<ffffffff8115735e>] release_pages+0x1f2/0x20d -[ 2.753355] [<ffffffff8116cc3a>] tlb_flush_mmu_free+0x28/0x43 -[ 2.753355] [<ffffffff8116d5e5>] tlb_flush_mmu+0x20/0x23 -[ 2.753355] [<ffffffff8116d5fc>] tlb_finish_mmu+0x14/0x39 -[ 2.753355] [<ffffffff811730c1>] unmap_region+0xcd/0xdf -[ 2.753355] [<ffffffff81172b0e>] ? vma_gap_callbacks_propagate+0x18/0x33 -[ 2.753355] [<ffffffff81174bf1>] do_munmap+0x252/0x2e0 -[ 2.753355] [<ffffffff81174cc3>] vm_munmap+0x44/0x5c -[ 2.753355] [<ffffffff81174cfe>] SyS_munmap+0x23/0x29 -[ 2.753355] [<ffffffff81a31567>] system_call_fastpath+0x16/0x1b -[ 2.753355] ---[ end trace cfeb07101f6fbdfb ]--- - -Don't set PCG_MEMSW when swap accounting is disabled, so that -uncharging only has to look at this per-page flag. - -mem_cgroup_swapout() could also fully rely on this flag, but as it can -bail out before even looking up the page_cgroup, check do_swap_account -as a performance optimization and only sanity test for PCG_MEMSW. - -Signed-off-by: Johannes Weiner <hannes@cmpxchg.org> ---- - mm/memcontrol.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 94d7c40b9f26..d6a20935f9c4 100644 ---- a/mm/memcontrol.c -+++ b/mm/memcontrol.c -@@ -2740,7 +2740,7 @@ static void commit_charge(struct page *page, struct mem_cgroup *memcg, - * have the page locked - */ - pc->mem_cgroup = memcg; -- pc->flags = PCG_USED | PCG_MEM | PCG_MEMSW; -+ pc->flags = PCG_USED | PCG_MEM | (do_swap_account ? PCG_MEMSW : 0); - - if (lrucare) { - if (was_on_lru) { -@@ -6598,7 +6598,7 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage, - return; - - VM_BUG_ON_PAGE(!(pc->flags & PCG_MEM), oldpage); -- VM_BUG_ON_PAGE(!(pc->flags & PCG_MEMSW), oldpage); -+ VM_BUG_ON_PAGE(do_swap_account && !(pc->flags & PCG_MEMSW), oldpage); - pc->flags &= ~(PCG_MEM | PCG_MEMSW); - - if (PageTransHuge(oldpage)) { --- -2.0.0 diff --git a/a/content_digest b/N2/content_digest index d6afead..da2d017 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -153,80 +153,6 @@ "Andrew, can you please put this in to fix the uncharge rewrite patch\n" "mentioned above?\n" "\n" - "---\n" - "\n" - "From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001\n" - "From: Johannes Weiner <hannes@cmpxchg.org>\n" - "Date: Fri, 20 Jun 2014 11:09:14 -0400\n" - "Subject: [patch] mm: memcontrol: rewrite uncharge API fix\n" - "\n" - "It's not entirely clear whether do_swap_account or PCG_MEMSW is the\n" - "authoritative answer to whether a page is swap-accounted or not. This\n" - "currently leads to the following memsw counter underflow when swap\n" - "accounting is disabled:\n" - "\n" - "[ 2.753355] WARNING: CPU: 0 PID: 1 at kernel/res_counter.c:28 res_counter_uncharge_locked+0x48/0x74()\n" - "[ 2.753355] CPU: 0 PID: 1 Comm: init Not tainted 3.16.0-rc1-00238-gddc5bfe #1\n" - "[ 2.753355] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011\n" - "[ 2.753355] 0000000000000000 ffff880012073c50 ffffffff81a23b9d ffff880012073c88\n" - "[ 2.753355] ffffffff810bc765 ffffffff8111fac8 0000000000001000 ffff88001200fa50\n" - "[ 2.753355] 0000000000000001 ffff88001200fa01 ffff880012073c98 ffffffff810bc84b\n" - "[ 2.753355] Call Trace:\n" - "[ 2.753355] [<ffffffff81a23b9d>] dump_stack+0x19/0x1b\n" - "[ 2.753355] [<ffffffff810bc765>] warn_slowpath_common+0x73/0x8c\n" - "[ 2.753355] [<ffffffff8111fac8>] ? res_counter_uncharge_locked+0x48/0x74\n" - "[ 2.753355] [<ffffffff810bc84b>] warn_slowpath_null+0x1a/0x1c\n" - "[ 2.753355] [<ffffffff8111fac8>] res_counter_uncharge_locked+0x48/0x74\n" - "[ 2.753355] [<ffffffff8111fd02>] res_counter_uncharge_until+0x4e/0xa9\n" - "[ 2.753355] [<ffffffff8111fd70>] res_counter_uncharge+0x13/0x15\n" - "[ 2.753355] [<ffffffff8119499c>] mem_cgroup_uncharge_end+0x73/0x8d\n" - "[ 2.753355] [<ffffffff8115735e>] release_pages+0x1f2/0x20d\n" - "[ 2.753355] [<ffffffff8116cc3a>] tlb_flush_mmu_free+0x28/0x43\n" - "[ 2.753355] [<ffffffff8116d5e5>] tlb_flush_mmu+0x20/0x23\n" - "[ 2.753355] [<ffffffff8116d5fc>] tlb_finish_mmu+0x14/0x39\n" - "[ 2.753355] [<ffffffff811730c1>] unmap_region+0xcd/0xdf\n" - "[ 2.753355] [<ffffffff81172b0e>] ? vma_gap_callbacks_propagate+0x18/0x33\n" - "[ 2.753355] [<ffffffff81174bf1>] do_munmap+0x252/0x2e0\n" - "[ 2.753355] [<ffffffff81174cc3>] vm_munmap+0x44/0x5c\n" - "[ 2.753355] [<ffffffff81174cfe>] SyS_munmap+0x23/0x29\n" - "[ 2.753355] [<ffffffff81a31567>] system_call_fastpath+0x16/0x1b\n" - "[ 2.753355] ---[ end trace cfeb07101f6fbdfb ]---\n" - "\n" - "Don't set PCG_MEMSW when swap accounting is disabled, so that\n" - "uncharging only has to look at this per-page flag.\n" - "\n" - "mem_cgroup_swapout() could also fully rely on this flag, but as it can\n" - "bail out before even looking up the page_cgroup, check do_swap_account\n" - "as a performance optimization and only sanity test for PCG_MEMSW.\n" - "\n" - "Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>\n" - "---\n" - " mm/memcontrol.c | 4 ++--\n" - " 1 file changed, 2 insertions(+), 2 deletions(-)\n" - "\n" - "diff --git a/mm/memcontrol.c b/mm/memcontrol.c\n" - "index 94d7c40b9f26..d6a20935f9c4 100644\n" - "--- a/mm/memcontrol.c\n" - "+++ b/mm/memcontrol.c\n" - "@@ -2740,7 +2740,7 @@ static void commit_charge(struct page *page, struct mem_cgroup *memcg,\n" - " \t * have the page locked\n" - " \t */\n" - " \tpc->mem_cgroup = memcg;\n" - "-\tpc->flags = PCG_USED | PCG_MEM | PCG_MEMSW;\n" - "+\tpc->flags = PCG_USED | PCG_MEM | (do_swap_account ? PCG_MEMSW : 0);\n" - " \n" - " \tif (lrucare) {\n" - " \t\tif (was_on_lru) {\n" - "@@ -6598,7 +6598,7 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage,\n" - " \t\treturn;\n" - " \n" - " \tVM_BUG_ON_PAGE(!(pc->flags & PCG_MEM), oldpage);\n" - "-\tVM_BUG_ON_PAGE(!(pc->flags & PCG_MEMSW), oldpage);\n" - "+\tVM_BUG_ON_PAGE(do_swap_account && !(pc->flags & PCG_MEMSW), oldpage);\n" - " \tpc->flags &= ~(PCG_MEM | PCG_MEMSW);\n" - " \n" - " \tif (PageTransHuge(oldpage)) {\n" - "-- \n" - 2.0.0 + --- -79e789e729ad90f4af25a67430f17923a46463bda91ad3b28293e0474c769c71 +cb4f4a27a7871a31e8240a6450eebcef94d3509a97ca1ff3494bb7be24c4a083
diff --git a/a/1.txt b/N3/1.txt index 2e438c3..161e038 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -140,7 +140,7 @@ mentioned above? --- -From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001 +>From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001 From: Johannes Weiner <hannes@cmpxchg.org> Date: Fri, 20 Jun 2014 11:09:14 -0400 Subject: [patch] mm: memcontrol: rewrite uncharge API fix diff --git a/a/content_digest b/N3/content_digest index d6afead..4c646ee 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -155,7 +155,7 @@ "\n" "---\n" "\n" - "From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001\n" + ">From 29bcfcf54494467008aaf9d4e37771d3b2e2c2c7 Mon Sep 17 00:00:00 2001\n" "From: Johannes Weiner <hannes@cmpxchg.org>\n" "Date: Fri, 20 Jun 2014 11:09:14 -0400\n" "Subject: [patch] mm: memcontrol: rewrite uncharge API fix\n" @@ -229,4 +229,4 @@ "-- \n" 2.0.0 -79e789e729ad90f4af25a67430f17923a46463bda91ad3b28293e0474c769c71 +2a48be98d94690599a3aa40641dc9ce106618e85f90fab5bf327764ffa4b6dc0
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.