Received: by 10.213.65.68 with SMTP id h4csp2284834imn; Thu, 5 Apr 2018 12:10:53 -0700 (PDT) X-Google-Smtp-Source: AIpwx48PwzOfaTlmNGDZpt3Cr8UkZDCVbcRQmE40ifbmJmVuJ8sKp9L1hLIK4o+GuoR1xoX7MzHu X-Received: by 10.167.131.201 with SMTP id j9mr18093939pfn.214.1522955453112; Thu, 05 Apr 2018 12:10:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522955453; cv=none; d=google.com; s=arc-20160816; b=v2VVCF7J6rU5E7bv5aEB5p3RxZxgYu40AzsghwWWW2S1ntGXmG+T7EpHwTMMc5GC65 gu4y9DiHn4i4j6Prn02VIWLSgswsMP2UMhvaEfQS8oWoXZRNecRPUCzrBrUBb+dO0KHm cXsZkxT8vb26H/wplRv6k5st2JExoO175ovXd/kPVLF4rSe6tXYeFAFOidgAs/HmXPHa KEciUQcHduNT+ZeBotfKUncB2aUK06Vgkk4eS8IGUmvHfojDPuIemloLdAZjT+vYKlMR Yq63cugKxXxDN8n4EKPJfoT2HjSiqRKphHcUi3dStjXH0UnUMz6FfoO36nQn3jUXZHdC pD9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:dkim-signature :arc-authentication-results; bh=ojcKWa5HCMa8cZEaR1vIF00CYdiLrrfJk+ass0OpH04=; b=RpzJseHvCBLH1I/i2VzpDDck64EGmIeFdZJJnHEwmAWKrAJGEUpd8j+ga+l+O8Gq3y Pv76YwKeUw2RbuB2xUJL55pmTKESDxt2B0viqbphI02LhtCndFdKGQqM7gnzajzcfyxq 6rkRhqbNkBvmPq1BDG0+iAX1NPZ+9su0x7xssotB/kw8aFBbdndqOhoSUxVt5HS/drZc vazgAc3coKiyXIsS523PQz9Xos1stTp8nkRuPcspjmhpruvNL6mF9nmpRc6L4dzq0QcE FWwXRaz3CGC+8V4oHjpGDTApWr+3HWRumHMnMjSCXu5PqGywSRVq3NehXNGq69AN4p/y GuAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sent.com header.s=fm3 header.b=fhFoJkmt; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=bRonIw9K; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sent.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y96-v6si6494129plh.676.2018.04.05.12.10.27; Thu, 05 Apr 2018 12:10:53 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@sent.com header.s=fm3 header.b=fhFoJkmt; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=bRonIw9K; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sent.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752309AbeDETJT (ORCPT + 99 others); Thu, 5 Apr 2018 15:09:19 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:34291 "EHLO out5-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751952AbeDETJQ (ORCPT ); Thu, 5 Apr 2018 15:09:16 -0400 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id 6F99520D2B; Thu, 5 Apr 2018 15:09:15 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Thu, 05 Apr 2018 15:09:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sent.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; bh=ojcKWa5HCMa8cZEaR1vIF00CYdiLrrfJk+ass0OpH04=; b=fhFoJkmt NMbLXNOdx3Lk2GYZOfRmDcjYm0l5g1QyKsxwjLyPkw2VXGE4cu1kUSWcMpUmPAuv dXr5TmEybPzWp91JsiWwqQH7B4gLhjawCVMUNSRKSuxAq6+XeGplxyHe3GKGSyAS krmpEe3l3GAiv5EpTNHU9k0pYlR55T/MySBiXFbW8ZYkmXtLJWr4y/5/whbXZ89E AEZmDBrorr1T6eIr0f4/eaSZ/+A5a/xHhi4RHOhr9ZblAHOFyMikryr2g+VPZ/QM MFKT1ctKNpl0K938y1EKIOp7NtYFGJOn/iA73cWmwdBvdDtrGEInU+dLAWE1A0TV FpCjITQtssAXNQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=ojcKWa5HCMa8cZEaR1vIF00CYdiLr rfJk+ass0OpH04=; b=bRonIw9K77DfT9VqEs0Xd+ARtN5XfOp9OhINCMmYOi7/8 TEEKu/bh/z8oxrUKlLxctuFrVpAKE7aLEPPKpf119O0DpwNnX98i4orqukJcNQqZ UWAV2hqDpW8P3v8YGyIMvWlu6mGX6t+UAMYUgePDtHtbGeUdtksTvxm+M8YKFDRl XCvwbL/jAlZFwRqz8uKffC42yv6qvc0tqVdPVvpXFWU0ml3aUUAGG2rYqS1QT1yn ndVNTdQ6dCGEDzjtjUIHD3ayxySHs947HVOGV/KDy5MweQcWBuvCEYU82RGIl2F4 87RKMPewKixWSsZCGjQY/SElO2GN6HHzfnA2nIVlQ== X-ME-Sender: Received: from [172.31.145.152] (pool-165-230-225-245.nat.rutgers.edu [165.230.225.245]) by mail.messagingengine.com (Postfix) with ESMTPA id 21DE010253; Thu, 5 Apr 2018 15:09:15 -0400 (EDT) From: "Zi Yan" To: "Michal Hocko" Cc: "Kirill A. Shutemov" , "Naoya Horiguchi" , linux-mm@kvack.org, "Andrew Morton" , "Vlastimil Babka" , linux-kernel@vger.kernel.org Subject: Re: [PATCH v1] mm: consider non-anonymous thp as unmovable page Date: Thu, 05 Apr 2018 15:09:14 -0400 X-Mailer: MailMate (2.0BETAr6106) Message-ID: In-Reply-To: <20180405190405.GS6312@dhcp22.suse.cz> References: <20180403083451.GG5501@dhcp22.suse.cz> <20180403105411.hknofkbn6rzs26oz@node.shutemov.name> <20180405085927.GC6312@dhcp22.suse.cz> <20180405122838.6a6b35psizem4tcy@node.shutemov.name> <20180405124830.GJ6312@dhcp22.suse.cz> <20180405134045.7axuun6d7ufobzj4@node.shutemov.name> <20180405150547.GN6312@dhcp22.suse.cz> <20180405155551.wchleyaf4rxooj6m@node.shutemov.name> <20180405160317.GP6312@dhcp22.suse.cz> <7C2DE363-E113-4284-B94F-814F386743DF@sent.com> <20180405190405.GS6312@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=_MailMate_1F40A8E4-9490-440F-838A-F266C1BA263E_="; micalg=pgp-sha512; protocol="application/pgp-signature" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an OpenPGP/MIME signed message (RFC 3156 and 4880). --=_MailMate_1F40A8E4-9490-440F-838A-F266C1BA263E_= Content-Type: text/plain On 5 Apr 2018, at 15:04, Michal Hocko wrote: > On Thu 05-04-18 13:58:43, Zi Yan wrote: >> On 5 Apr 2018, at 12:03, Michal Hocko wrote: >> >>> On Thu 05-04-18 18:55:51, Kirill A. Shutemov wrote: >>>> On Thu, Apr 05, 2018 at 05:05:47PM +0200, Michal Hocko wrote: >>>>> On Thu 05-04-18 16:40:45, Kirill A. Shutemov wrote: >>>>>> On Thu, Apr 05, 2018 at 02:48:30PM +0200, Michal Hocko wrote: >>>>> [...] >>>>>>> RIght, I confused the two. What is the proper layer to fix that then? >>>>>>> rmap_walk_file? >>>>>> >>>>>> Maybe something like this? Totally untested. >>>>> >>>>> This looks way too complex. Why cannot we simply split THP page cache >>>>> during migration? >>>> >>>> This way we unify the codepath for archictures that don't support THP >>>> migration and shmem THP. >>> >>> But why? There shouldn't be really nothing to prevent THP (anon or >>> shemem) to be migratable. If we cannot migrate it at once we can always >>> split it. So why should we add another thp specific handling all over >>> the place? >> >> Then, it would be much easier if your "unclutter thp migration" patches is merged, >> plus the patch below: > > Good point. Except I would prefer a less convoluted condition > >> diff --git a/mm/migrate.c b/mm/migrate.c >> index 60531108021a..b4087aa890f5 100644 >> --- a/mm/migrate.c >> +++ b/mm/migrate.c >> @@ -1138,7 +1138,9 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page, >> int rc = MIGRATEPAGE_SUCCESS; >> struct page *newpage; >> >> - if (!thp_migration_supported() && PageTransHuge(page)) >> + if ((!thp_migration_supported() || >> + (thp_migration_supported() && !PageAnon(page))) && >> + PageTransHuge(page)) >> return -ENOMEM; > > What about this? > diff --git a/mm/migrate.c b/mm/migrate.c > index 5d0dc7b85f90..cd02e2bdf37c 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -1138,7 +1138,11 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page, > int rc = MIGRATEPAGE_SUCCESS; > struct page *newpage; > > - if (!thp_migration_supported() && PageTransHuge(page)) > + /* > + * THP pagecache or generally non-migrateable THP need to be split > + * up before migration > + */ > + if (PageTransHuge(page) && (!thp_migration_supported() || !PageAnon(page))) > return -ENOMEM; > > newpage = get_new_page(page, private); I think it works and is better than mine. Reviewed-by: Zi Yan -- Best Regards Yan Zi --=_MailMate_1F40A8E4-9490-440F-838A-F266C1BA263E_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQEcBAEBCgAGBQJaxnRaAAoJEEGLLxGcTqbMKggIAK5A4NcuMdLaR9QOIM3+j+JV BtnR6JiepqxpUkRuHcD3bTqv8noaY0lerQGgGsFhMI5+DG3jrLrKIbgpFAe7HmT/ 0pSLn5WW18RcxZaNtexobQqSB3TuK6HlFDAYBxfpBPcr8dx/6GcQDo77LKq35jB/ gxVLIkaPvZBTWx/kJ+ELx5r7PGiuuAsKlaIh8tmF83NJReO0BvQn1q8ionWaSzAi xDZtB1sbzH5WIlZ58bCs5PHh3deblMR6b80BF/0Zc3pr/ws5rQ+d7jusjfi+m1p6 5laRqesLHsDTbTlPzjcVgSVI84IVx4tV1YmAOhqHqvePr5C8qQPe1FMhl+WqG30= =dq+5 -----END PGP SIGNATURE----- --=_MailMate_1F40A8E4-9490-440F-838A-F266C1BA263E_=--