All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20140719173911.GA1725@cmpxchg.org>

diff --git a/a/1.txt b/N1/1.txt
index c3f12d6..a491a28 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,5 +1,5 @@
 On Fri, Jul 18, 2014 at 05:12:54PM +0200, Miklos Szeredi wrote:
-> On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> wrote:
+> On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner <hannes@cmpxchg.org> wrote:
 > 
 > > I assumed the source page would always be new, according to this part
 > > in fuse_try_move_page():
@@ -35,185 +35,3 @@ we uncharge it, and make sure that if it was on the LRU it's moved to
 the correct lruvec (the root memcg's):
 
 ---
-From ce51bdcf02bee94a1f1049864b1665c2d9830281 Mon Sep 17 00:00:00 2001
-From: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>
-Date: Fri, 18 Jul 2014 09:48:42 -0400
-Subject: [patch] mm: memcontrol: rewrite uncharge API fix - page cache
- migration
-
-It was known that the target page in migration could be on the LRU -
-clarify this in mem_cgroup_migrate() and correct the VM_BUG_ON_PAGE().
-
-However, during page cache replacement, the source page can also be on
-the LRU, and two things need to be considered:
-
-1. charge moving can race and change pc->mem_cgroup from under us:
-grab the page lock in mem_cgroup_move_account() to prevent that.
-
-2. the lruvec of the page changes as we uncharge it, and putback can
-race with us: grab the lru lock and isolate the page iff on LRU to
-prevent races and to ensure the page is on the right lruvec afterward.
-
-Reported-by: Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>
-Signed-off-by: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>
-Cc: Miklos Szeredi <miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
----
- mm/memcontrol.c | 83 +++++++++++++++++++++++++++++++++++++++------------------
- 1 file changed, 57 insertions(+), 26 deletions(-)
-
-diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index 9db142d83b5c..b7c9a202dee9 100644
---- a/mm/memcontrol.c
-+++ b/mm/memcontrol.c
-@@ -2696,13 +2696,42 @@ struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page)
- 	return memcg;
- }
- 
-+static void lock_page_lru(struct page *page, int *isolated)
-+{
-+	struct zone *zone = page_zone(page);
-+
-+	spin_lock_irq(&zone->lru_lock);
-+	if (PageLRU(page)) {
-+		struct lruvec *lruvec;
-+
-+		lruvec = mem_cgroup_page_lruvec(page, zone);
-+		ClearPageLRU(page);
-+		del_page_from_lru_list(page, lruvec, page_lru(page));
-+		*isolated = 1;
-+	} else
-+		*isolated = 0;
-+}
-+
-+static void unlock_page_lru(struct page *page, int isolated)
-+{
-+	struct zone *zone = page_zone(page);
-+
-+	if (isolated) {
-+		struct lruvec *lruvec;
-+
-+		lruvec = mem_cgroup_page_lruvec(page, zone);
-+		VM_BUG_ON_PAGE(PageLRU(page), page);
-+		SetPageLRU(page);
-+		add_page_to_lru_list(page, lruvec, page_lru(page));
-+	}
-+	spin_unlock_irq(&zone->lru_lock);
-+}
-+
- static void commit_charge(struct page *page, struct mem_cgroup *memcg,
- 			  unsigned int nr_pages, bool lrucare)
- {
- 	struct page_cgroup *pc = lookup_page_cgroup(page);
--	struct zone *uninitialized_var(zone);
--	bool was_on_lru = false;
--	struct lruvec *lruvec;
-+	int isolated;
- 
- 	VM_BUG_ON_PAGE(PageCgroupUsed(pc), page);
- 	/*
-@@ -2714,16 +2743,8 @@ static void commit_charge(struct page *page, struct mem_cgroup *memcg,
- 	 * In some cases, SwapCache and FUSE(splice_buf->radixtree), the page
- 	 * may already be on some other mem_cgroup's LRU.  Take care of it.
- 	 */
--	if (lrucare) {
--		zone = page_zone(page);
--		spin_lock_irq(&zone->lru_lock);
--		if (PageLRU(page)) {
--			lruvec = mem_cgroup_zone_lruvec(zone, pc->mem_cgroup);
--			ClearPageLRU(page);
--			del_page_from_lru_list(page, lruvec, page_lru(page));
--			was_on_lru = true;
--		}
--	}
-+	if (lrucare)
-+		lock_page_lru(page, &isolated);
- 
- 	/*
- 	 * Nobody should be changing or seriously looking at
-@@ -2742,15 +2763,8 @@ static void commit_charge(struct page *page, struct mem_cgroup *memcg,
- 	pc->mem_cgroup = memcg;
- 	pc->flags = PCG_USED | PCG_MEM | (do_swap_account ? PCG_MEMSW : 0);
- 
--	if (lrucare) {
--		if (was_on_lru) {
--			lruvec = mem_cgroup_zone_lruvec(zone, pc->mem_cgroup);
--			VM_BUG_ON_PAGE(PageLRU(page), page);
--			SetPageLRU(page);
--			add_page_to_lru_list(page, lruvec, page_lru(page));
--		}
--		spin_unlock_irq(&zone->lru_lock);
--	}
-+	if (lrucare)
-+		unlock_page_lru(page, isolated);
- 
- 	local_irq_disable();
- 	mem_cgroup_charge_statistics(memcg, page, nr_pages);
-@@ -3450,9 +3464,17 @@ static int mem_cgroup_move_account(struct page *page,
- 	if (nr_pages > 1 && !PageTransHuge(page))
- 		goto out;
- 
-+	/*
-+	 * Prevent mem_cgroup_migrate() from looking at pc->mem_cgroup
-+	 * of its source page while we change it: page migration takes
-+	 * both pages off the LRU, but page cache replacement doesn't.
-+	 */
-+	if (!trylock_page(page))
-+		goto out;
-+
- 	ret = -EINVAL;
- 	if (!PageCgroupUsed(pc) || pc->mem_cgroup != from)
--		goto out;
-+		goto out_unlock;
- 
- 	move_lock_mem_cgroup(from, &flags);
- 
-@@ -3487,6 +3509,8 @@ static int mem_cgroup_move_account(struct page *page,
- 	mem_cgroup_charge_statistics(from, page, -nr_pages);
- 	memcg_check_events(from, page);
- 	local_irq_enable();
-+out_unlock:
-+	unlock_page(page);
- out:
- 	return ret;
- }
-@@ -6614,7 +6638,7 @@ void mem_cgroup_uncharge_list(struct list_head *page_list)
-  * mem_cgroup_migrate - migrate a charge to another page
-  * @oldpage: currently charged page
-  * @newpage: page to transfer the charge to
-- * @lrucare: page might be on LRU already
-+ * @lrucare: both pages might be on the LRU already
-  *
-  * Migrate the charge from @oldpage to @newpage.
-  *
-@@ -6625,11 +6649,12 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage,
- {
- 	unsigned int nr_pages = 1;
- 	struct page_cgroup *pc;
-+	int isolated;
- 
- 	VM_BUG_ON_PAGE(!PageLocked(oldpage), oldpage);
- 	VM_BUG_ON_PAGE(!PageLocked(newpage), newpage);
--	VM_BUG_ON_PAGE(PageLRU(oldpage), oldpage);
--	VM_BUG_ON_PAGE(PageLRU(newpage), newpage);
-+	VM_BUG_ON_PAGE(!lrucare && PageLRU(oldpage), oldpage);
-+	VM_BUG_ON_PAGE(!lrucare && PageLRU(newpage), newpage);
- 	VM_BUG_ON_PAGE(PageAnon(oldpage) != PageAnon(newpage), newpage);
- 
- 	if (mem_cgroup_disabled())
-@@ -6648,8 +6673,14 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage,
- 		VM_BUG_ON_PAGE(!PageTransHuge(newpage), newpage);
- 	}
- 
-+	if (lrucare)
-+		lock_page_lru(oldpage, &isolated);
-+
- 	pc->flags = 0;
- 
-+	if (lrucare)
-+		unlock_page_lru(oldpage, isolated);
-+
- 	local_irq_disable();
- 	mem_cgroup_charge_statistics(pc->mem_cgroup, oldpage, -nr_pages);
- 	memcg_check_events(pc->mem_cgroup, oldpage);
--- 
-2.0.0
diff --git a/a/content_digest b/N1/content_digest
index 927b725..93917b7 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -5,23 +5,22 @@
  "ref\020140718071246.GA21565@dhcp22.suse.cz\0"
  "ref\020140718144554.GG29639@cmpxchg.org\0"
  "ref\0CAJfpegt9k+YULet3vhmG3br7zSiHy-DRL+MiEE=HRzcs+mLzbw@mail.gmail.com\0"
- "ref\0CAJfpegt9k+YULet3vhmG3br7zSiHy-DRL+MiEE=HRzcs+mLzbw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org\0"
- "From\0Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>\0"
+ "From\0Johannes Weiner <hannes@cmpxchg.org>\0"
  "Subject\0Re: [patch 13/13] mm: memcontrol: rewrite uncharge API\0"
  "Date\0Sat, 19 Jul 2014 13:39:11 -0400\0"
- "To\0Miklos Szeredi <miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>\0"
- "Cc\0Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>"
-  Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
-  Hugh Dickins <hughd-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
-  Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
-  Vladimir Davydov <vdavydov-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
-  linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org
-  cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
- " Kernel Mailing List <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>\0"
+ "To\0Miklos Szeredi <miklos@szeredi.hu>\0"
+ "Cc\0Michal Hocko <mhocko@suse.cz>"
+  Andrew Morton <akpm@linux-foundation.org>
+  Hugh Dickins <hughd@google.com>
+  Tejun Heo <tj@kernel.org>
+  Vladimir Davydov <vdavydov@parallels.com>
+  linux-mm@kvack.org
+  cgroups@vger.kernel.org
+ " Kernel Mailing List <linux-kernel@vger.kernel.org>\0"
  "\00:1\0"
  "b\0"
  "On Fri, Jul 18, 2014 at 05:12:54PM +0200, Miklos Szeredi wrote:\n"
- "> On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> wrote:\n"
+ "> On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner <hannes@cmpxchg.org> wrote:\n"
  "> \n"
  "> > I assumed the source page would always be new, according to this part\n"
  "> > in fuse_try_move_page():\n"
@@ -56,188 +55,6 @@
  "we uncharge it, and make sure that if it was on the LRU it's moved to\n"
  "the correct lruvec (the root memcg's):\n"
  "\n"
- "---\n"
- "From ce51bdcf02bee94a1f1049864b1665c2d9830281 Mon Sep 17 00:00:00 2001\n"
- "From: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>\n"
- "Date: Fri, 18 Jul 2014 09:48:42 -0400\n"
- "Subject: [patch] mm: memcontrol: rewrite uncharge API fix - page cache\n"
- " migration\n"
- "\n"
- "It was known that the target page in migration could be on the LRU -\n"
- "clarify this in mem_cgroup_migrate() and correct the VM_BUG_ON_PAGE().\n"
- "\n"
- "However, during page cache replacement, the source page can also be on\n"
- "the LRU, and two things need to be considered:\n"
- "\n"
- "1. charge moving can race and change pc->mem_cgroup from under us:\n"
- "grab the page lock in mem_cgroup_move_account() to prevent that.\n"
- "\n"
- "2. the lruvec of the page changes as we uncharge it, and putback can\n"
- "race with us: grab the lru lock and isolate the page iff on LRU to\n"
- "prevent races and to ensure the page is on the right lruvec afterward.\n"
- "\n"
- "Reported-by: Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>\n"
- "Signed-off-by: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>\n"
- "Cc: Miklos Szeredi <miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>\n"
- "---\n"
- " mm/memcontrol.c | 83 +++++++++++++++++++++++++++++++++++++++------------------\n"
- " 1 file changed, 57 insertions(+), 26 deletions(-)\n"
- "\n"
- "diff --git a/mm/memcontrol.c b/mm/memcontrol.c\n"
- "index 9db142d83b5c..b7c9a202dee9 100644\n"
- "--- a/mm/memcontrol.c\n"
- "+++ b/mm/memcontrol.c\n"
- "@@ -2696,13 +2696,42 @@ struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page)\n"
- " \treturn memcg;\n"
- " }\n"
- " \n"
- "+static void lock_page_lru(struct page *page, int *isolated)\n"
- "+{\n"
- "+\tstruct zone *zone = page_zone(page);\n"
- "+\n"
- "+\tspin_lock_irq(&zone->lru_lock);\n"
- "+\tif (PageLRU(page)) {\n"
- "+\t\tstruct lruvec *lruvec;\n"
- "+\n"
- "+\t\tlruvec = mem_cgroup_page_lruvec(page, zone);\n"
- "+\t\tClearPageLRU(page);\n"
- "+\t\tdel_page_from_lru_list(page, lruvec, page_lru(page));\n"
- "+\t\t*isolated = 1;\n"
- "+\t} else\n"
- "+\t\t*isolated = 0;\n"
- "+}\n"
- "+\n"
- "+static void unlock_page_lru(struct page *page, int isolated)\n"
- "+{\n"
- "+\tstruct zone *zone = page_zone(page);\n"
- "+\n"
- "+\tif (isolated) {\n"
- "+\t\tstruct lruvec *lruvec;\n"
- "+\n"
- "+\t\tlruvec = mem_cgroup_page_lruvec(page, zone);\n"
- "+\t\tVM_BUG_ON_PAGE(PageLRU(page), page);\n"
- "+\t\tSetPageLRU(page);\n"
- "+\t\tadd_page_to_lru_list(page, lruvec, page_lru(page));\n"
- "+\t}\n"
- "+\tspin_unlock_irq(&zone->lru_lock);\n"
- "+}\n"
- "+\n"
- " static void commit_charge(struct page *page, struct mem_cgroup *memcg,\n"
- " \t\t\t  unsigned int nr_pages, bool lrucare)\n"
- " {\n"
- " \tstruct page_cgroup *pc = lookup_page_cgroup(page);\n"
- "-\tstruct zone *uninitialized_var(zone);\n"
- "-\tbool was_on_lru = false;\n"
- "-\tstruct lruvec *lruvec;\n"
- "+\tint isolated;\n"
- " \n"
- " \tVM_BUG_ON_PAGE(PageCgroupUsed(pc), page);\n"
- " \t/*\n"
- "@@ -2714,16 +2743,8 @@ static void commit_charge(struct page *page, struct mem_cgroup *memcg,\n"
- " \t * In some cases, SwapCache and FUSE(splice_buf->radixtree), the page\n"
- " \t * may already be on some other mem_cgroup's LRU.  Take care of it.\n"
- " \t */\n"
- "-\tif (lrucare) {\n"
- "-\t\tzone = page_zone(page);\n"
- "-\t\tspin_lock_irq(&zone->lru_lock);\n"
- "-\t\tif (PageLRU(page)) {\n"
- "-\t\t\tlruvec = mem_cgroup_zone_lruvec(zone, pc->mem_cgroup);\n"
- "-\t\t\tClearPageLRU(page);\n"
- "-\t\t\tdel_page_from_lru_list(page, lruvec, page_lru(page));\n"
- "-\t\t\twas_on_lru = true;\n"
- "-\t\t}\n"
- "-\t}\n"
- "+\tif (lrucare)\n"
- "+\t\tlock_page_lru(page, &isolated);\n"
- " \n"
- " \t/*\n"
- " \t * Nobody should be changing or seriously looking at\n"
- "@@ -2742,15 +2763,8 @@ static void commit_charge(struct page *page, struct mem_cgroup *memcg,\n"
- " \tpc->mem_cgroup = memcg;\n"
- " \tpc->flags = PCG_USED | PCG_MEM | (do_swap_account ? PCG_MEMSW : 0);\n"
- " \n"
- "-\tif (lrucare) {\n"
- "-\t\tif (was_on_lru) {\n"
- "-\t\t\tlruvec = mem_cgroup_zone_lruvec(zone, pc->mem_cgroup);\n"
- "-\t\t\tVM_BUG_ON_PAGE(PageLRU(page), page);\n"
- "-\t\t\tSetPageLRU(page);\n"
- "-\t\t\tadd_page_to_lru_list(page, lruvec, page_lru(page));\n"
- "-\t\t}\n"
- "-\t\tspin_unlock_irq(&zone->lru_lock);\n"
- "-\t}\n"
- "+\tif (lrucare)\n"
- "+\t\tunlock_page_lru(page, isolated);\n"
- " \n"
- " \tlocal_irq_disable();\n"
- " \tmem_cgroup_charge_statistics(memcg, page, nr_pages);\n"
- "@@ -3450,9 +3464,17 @@ static int mem_cgroup_move_account(struct page *page,\n"
- " \tif (nr_pages > 1 && !PageTransHuge(page))\n"
- " \t\tgoto out;\n"
- " \n"
- "+\t/*\n"
- "+\t * Prevent mem_cgroup_migrate() from looking at pc->mem_cgroup\n"
- "+\t * of its source page while we change it: page migration takes\n"
- "+\t * both pages off the LRU, but page cache replacement doesn't.\n"
- "+\t */\n"
- "+\tif (!trylock_page(page))\n"
- "+\t\tgoto out;\n"
- "+\n"
- " \tret = -EINVAL;\n"
- " \tif (!PageCgroupUsed(pc) || pc->mem_cgroup != from)\n"
- "-\t\tgoto out;\n"
- "+\t\tgoto out_unlock;\n"
- " \n"
- " \tmove_lock_mem_cgroup(from, &flags);\n"
- " \n"
- "@@ -3487,6 +3509,8 @@ static int mem_cgroup_move_account(struct page *page,\n"
- " \tmem_cgroup_charge_statistics(from, page, -nr_pages);\n"
- " \tmemcg_check_events(from, page);\n"
- " \tlocal_irq_enable();\n"
- "+out_unlock:\n"
- "+\tunlock_page(page);\n"
- " out:\n"
- " \treturn ret;\n"
- " }\n"
- "@@ -6614,7 +6638,7 @@ void mem_cgroup_uncharge_list(struct list_head *page_list)\n"
- "  * mem_cgroup_migrate - migrate a charge to another page\n"
- "  * @oldpage: currently charged page\n"
- "  * @newpage: page to transfer the charge to\n"
- "- * @lrucare: page might be on LRU already\n"
- "+ * @lrucare: both pages might be on the LRU already\n"
- "  *\n"
- "  * Migrate the charge from @oldpage to @newpage.\n"
- "  *\n"
- "@@ -6625,11 +6649,12 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage,\n"
- " {\n"
- " \tunsigned int nr_pages = 1;\n"
- " \tstruct page_cgroup *pc;\n"
- "+\tint isolated;\n"
- " \n"
- " \tVM_BUG_ON_PAGE(!PageLocked(oldpage), oldpage);\n"
- " \tVM_BUG_ON_PAGE(!PageLocked(newpage), newpage);\n"
- "-\tVM_BUG_ON_PAGE(PageLRU(oldpage), oldpage);\n"
- "-\tVM_BUG_ON_PAGE(PageLRU(newpage), newpage);\n"
- "+\tVM_BUG_ON_PAGE(!lrucare && PageLRU(oldpage), oldpage);\n"
- "+\tVM_BUG_ON_PAGE(!lrucare && PageLRU(newpage), newpage);\n"
- " \tVM_BUG_ON_PAGE(PageAnon(oldpage) != PageAnon(newpage), newpage);\n"
- " \n"
- " \tif (mem_cgroup_disabled())\n"
- "@@ -6648,8 +6673,14 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage,\n"
- " \t\tVM_BUG_ON_PAGE(!PageTransHuge(newpage), newpage);\n"
- " \t}\n"
- " \n"
- "+\tif (lrucare)\n"
- "+\t\tlock_page_lru(oldpage, &isolated);\n"
- "+\n"
- " \tpc->flags = 0;\n"
- " \n"
- "+\tif (lrucare)\n"
- "+\t\tunlock_page_lru(oldpage, isolated);\n"
- "+\n"
- " \tlocal_irq_disable();\n"
- " \tmem_cgroup_charge_statistics(pc->mem_cgroup, oldpage, -nr_pages);\n"
- " \tmemcg_check_events(pc->mem_cgroup, oldpage);\n"
- "-- \n"
- 2.0.0
+ ---
 
-836d08a9163a7b598eb2b7a17ac03c244d29bb4ffa71a5f570a887053e952890
+aa230dea925f4d33cecbf23d17ae5415058a969c91caafb804646638afebf284

diff --git a/a/1.txt b/N2/1.txt
index c3f12d6..1f2c68b 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,5 +1,5 @@
 On Fri, Jul 18, 2014 at 05:12:54PM +0200, Miklos Szeredi wrote:
-> On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> wrote:
+> On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner <hannes@cmpxchg.org> wrote:
 > 
 > > I assumed the source page would always be new, according to this part
 > > in fuse_try_move_page():
@@ -35,8 +35,8 @@ we uncharge it, and make sure that if it was on the LRU it's moved to
 the correct lruvec (the root memcg's):
 
 ---
-From ce51bdcf02bee94a1f1049864b1665c2d9830281 Mon Sep 17 00:00:00 2001
-From: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>
+>From ce51bdcf02bee94a1f1049864b1665c2d9830281 Mon Sep 17 00:00:00 2001
+From: Johannes Weiner <hannes@cmpxchg.org>
 Date: Fri, 18 Jul 2014 09:48:42 -0400
 Subject: [patch] mm: memcontrol: rewrite uncharge API fix - page cache
  migration
@@ -54,9 +54,9 @@ grab the page lock in mem_cgroup_move_account() to prevent that.
 race with us: grab the lru lock and isolate the page iff on LRU to
 prevent races and to ensure the page is on the right lruvec afterward.
 
-Reported-by: Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>
-Signed-off-by: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>
-Cc: Miklos Szeredi <miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>
+Reported-by: Michal Hocko <mhocko@suse.cz>
+Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
+Cc: Miklos Szeredi <miklos@szeredi.hu>
 ---
  mm/memcontrol.c | 83 +++++++++++++++++++++++++++++++++++++++------------------
  1 file changed, 57 insertions(+), 26 deletions(-)
diff --git a/a/content_digest b/N2/content_digest
index 927b725..5c64427 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -5,23 +5,22 @@
  "ref\020140718071246.GA21565@dhcp22.suse.cz\0"
  "ref\020140718144554.GG29639@cmpxchg.org\0"
  "ref\0CAJfpegt9k+YULet3vhmG3br7zSiHy-DRL+MiEE=HRzcs+mLzbw@mail.gmail.com\0"
- "ref\0CAJfpegt9k+YULet3vhmG3br7zSiHy-DRL+MiEE=HRzcs+mLzbw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org\0"
- "From\0Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>\0"
+ "From\0Johannes Weiner <hannes@cmpxchg.org>\0"
  "Subject\0Re: [patch 13/13] mm: memcontrol: rewrite uncharge API\0"
  "Date\0Sat, 19 Jul 2014 13:39:11 -0400\0"
- "To\0Miklos Szeredi <miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>\0"
- "Cc\0Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>"
-  Andrew Morton <akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>
-  Hugh Dickins <hughd-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
-  Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
-  Vladimir Davydov <vdavydov-bzQdu9zFT3WakBO8gow8eQ@public.gmane.org>
-  linux-mm-Bw31MaZKKs3YtjvyW6yDsg@public.gmane.org
-  cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
- " Kernel Mailing List <linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>\0"
+ "To\0Miklos Szeredi <miklos@szeredi.hu>\0"
+ "Cc\0Michal Hocko <mhocko@suse.cz>"
+  Andrew Morton <akpm@linux-foundation.org>
+  Hugh Dickins <hughd@google.com>
+  Tejun Heo <tj@kernel.org>
+  Vladimir Davydov <vdavydov@parallels.com>
+  linux-mm@kvack.org
+  cgroups@vger.kernel.org
+ " Kernel Mailing List <linux-kernel@vger.kernel.org>\0"
  "\00:1\0"
  "b\0"
  "On Fri, Jul 18, 2014 at 05:12:54PM +0200, Miklos Szeredi wrote:\n"
- "> On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org> wrote:\n"
+ "> On Fri, Jul 18, 2014 at 4:45 PM, Johannes Weiner <hannes@cmpxchg.org> wrote:\n"
  "> \n"
  "> > I assumed the source page would always be new, according to this part\n"
  "> > in fuse_try_move_page():\n"
@@ -57,8 +56,8 @@
  "the correct lruvec (the root memcg's):\n"
  "\n"
  "---\n"
- "From ce51bdcf02bee94a1f1049864b1665c2d9830281 Mon Sep 17 00:00:00 2001\n"
- "From: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>\n"
+ ">From ce51bdcf02bee94a1f1049864b1665c2d9830281 Mon Sep 17 00:00:00 2001\n"
+ "From: Johannes Weiner <hannes@cmpxchg.org>\n"
  "Date: Fri, 18 Jul 2014 09:48:42 -0400\n"
  "Subject: [patch] mm: memcontrol: rewrite uncharge API fix - page cache\n"
  " migration\n"
@@ -76,9 +75,9 @@
  "race with us: grab the lru lock and isolate the page iff on LRU to\n"
  "prevent races and to ensure the page is on the right lruvec afterward.\n"
  "\n"
- "Reported-by: Michal Hocko <mhocko-AlSwsSmVLrQ@public.gmane.org>\n"
- "Signed-off-by: Johannes Weiner <hannes-druUgvl0LCNAfugRpC6u6w@public.gmane.org>\n"
- "Cc: Miklos Szeredi <miklos-sUDqSbJrdHQHWmgEVkV9KA@public.gmane.org>\n"
+ "Reported-by: Michal Hocko <mhocko@suse.cz>\n"
+ "Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>\n"
+ "Cc: Miklos Szeredi <miklos@szeredi.hu>\n"
  "---\n"
  " mm/memcontrol.c | 83 +++++++++++++++++++++++++++++++++++++++------------------\n"
  " 1 file changed, 57 insertions(+), 26 deletions(-)\n"
@@ -240,4 +239,4 @@
  "-- \n"
  2.0.0
 
-836d08a9163a7b598eb2b7a17ac03c244d29bb4ffa71a5f570a887053e952890
+3776e6291b49a8a3c85e3d0527db5ecf0aedc49f1de347fd29ef009366cb1e9c

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.