From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756223Ab2JCV37 (ORCPT ); Wed, 3 Oct 2012 17:29:59 -0400 Received: from mail-ie0-f174.google.com ([209.85.223.174]:63212 "EHLO mail-ie0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754827Ab2JCV35 (ORCPT ); Wed, 3 Oct 2012 17:29:57 -0400 Date: Wed, 3 Oct 2012 14:29:14 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@eggly.anvils To: David Rientjes cc: Andrew Morton , Linus Torvalds , Andrea Arcangeli , Naoya Horiguchi , KAMEZAWA Hiroyuki , Johannes Weiner , Michel Lespinasse , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [patch -mm] mm, thp: fix mlock statistics fix In-Reply-To: Message-ID: References: <20121003131012.f88b0d66.akpm@linux-foundation.org> User-Agent: Alpine 2.00 (LSU 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 3 Oct 2012, David Rientjes wrote: > On Wed, 3 Oct 2012, Andrew Morton wrote: > > > The free_page_mlock() hunk gets dropped because free_page_mlock() is > > removed. And clear_page_mlock() doesn't need this treatment. But > > please check my handiwork. > > > > I reviewed what was merged into -mm and clear_page_mlock() does need this > fix as well. It's an easy fix, there's no need to pass "anon" into > clear_page_mlock() since PageHuge() is already checked in its only caller. > > > mm, thp: fix mlock statistics fix > > Signed-off-by: David Rientjes Acked-by: Hugh Dickins Thanks for providing that, David, I was just on the point of building and working out a test, suspecting that what you've added is necessary. Probably some equivalent always was missing, but between the THP Mlock counting issue that you're fixing, and the Mlock counting issue that I'm fixing by moving the clear_page_mlock, it's hard to say just where. While clear_page_mlock was being called from truncate.c, we knew that it couldn't happen on a THP. But now that it's from page_remove_rmap, yes, we do want to add in this additional fix. Hugh > --- > mm/mlock.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/mm/mlock.c b/mm/mlock.c > --- a/mm/mlock.c > +++ b/mm/mlock.c > @@ -56,7 +56,8 @@ void clear_page_mlock(struct page *page) > if (!TestClearPageMlocked(page)) > return; > > - dec_zone_page_state(page, NR_MLOCK); > + mod_zone_page_state(page_zone(page), NR_MLOCK, > + -hpage_nr_pages(page)); > count_vm_event(UNEVICTABLE_PGCLEARED); > if (!isolate_lru_page(page)) { > putback_lru_page(page);