Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751941AbbBKC1G (ORCPT ); Tue, 10 Feb 2015 21:27:06 -0500 Received: from mx1.redhat.com ([209.132.183.28]:56113 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751104AbbBKC1F (ORCPT ); Tue, 10 Feb 2015 21:27:05 -0500 Message-ID: <54DABDDF.3030402@redhat.com> Date: Tue, 10 Feb 2015 21:26:39 -0500 From: Rik van Riel User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: Andrea Arcangeli , Ebru Akagunduz CC: linux-mm@kvack.org, akpm@linux-foundation.org, kirill@shutemov.name, mhocko@suse.cz, mgorman@suse.de, rientjes@google.com, sasha.levin@oracle.com, hughd@google.com, hannes@cmpxchg.org, vbabka@suse.cz, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm: incorporate zero pages into transparent huge pages References: <1423522057-5757-1-git-send-email-ebru.akagunduz@gmail.com> <20150210210657.GI11755@redhat.com> In-Reply-To: <20150210210657.GI11755@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2611 Lines: 66 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 02/10/2015 04:06 PM, Andrea Arcangeli wrote: > On Tue, Feb 10, 2015 at 12:47:37AM +0200, Ebru Akagunduz wrote: >> This patch improves THP collapse rates, by allowing zero pages. >> >> Currently THP can collapse 4kB pages into a THP when there are up >> to khugepaged_max_ptes_none pte_none ptes in a 2MB range. This >> patch counts pte none and mapped zero pages with the same >> variable. >> >> The patch was tested with a program that allocates 800MB of >> memory, and performs interleaved reads and writes, in a pattern >> that causes some 2MB areas to first see read accesses, resulting >> in the zero pfn being mapped there. >> >> To simulate memory fragmentation at allocation time, I modified >> do_huge_pmd_anonymous_page to return VM_FAULT_FALLBACK for read >> faults. >> >> Without the patch, only %50 of the program was collapsed into THP >> and the percentage did not increase over time. >> >> With this patch after 10 minutes of waiting khugepaged had >> collapsed %89 of the program's memory. > > This is very good idea, associating it with the sysctl is sensible > here as collapsing zeropages would affect the memory footprint in > the same way as none ptes. > > __collapse_huge_page_copy however is likely screwing with the > refcounts of the zero page. Did you have DEBUG_VM=y enabled? If > yes you should get one warning that the zeropage refcount > underflowed that could confirm my concern: In __collapse_huge_page_copy, the zero pte takes the same path as pte_none, so I believe that part of the code is correct. > So in short I think __collapse_huge_page_copy and > release_pte_pages needs an additional case that complements the > already existing special You are right that release_pte_pages needs a special case too, in order to skip refcounting on the zero page. Ebru? - -- All rights reversed -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJU2r3fAAoJEM553pKExN6DJPAH/1TT9uzS0/1wRcN7gn/UP0rb TpkKzihDOeQgEPfGjd6wUgepU0iVhMX80qBCqk0wIAPgZLnt4IxSl24f09Sm38Cn zAV0mLySmoaYNisf+qieZ/NF/PDiUOrxGzWJzvm7Ymqq8Mh94qdgpsLy2I+EQioT RqwbYMMB2XvH3mWOzhQUfnyG5mJMmZtpVcrJ4MIVVq5a3x+Ry668ZT75oNegni5W Hfax6/8jf4Bjpxc9I/9FvZXzZr9m9yVcGHoCckdGxlnsSSgd60B9b+EYy6AlJpqS xYkGhKSL0iAAoXYkmrtFdLpdhU/eqhgLb0V2NxcimjrzNG/0LE8fGhb/0SmPXUU= =085q -----END PGP SIGNATURE----- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/