From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 728A4C433DB for ; Sun, 31 Jan 2021 16:04:12 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id D383D64E27 for ; Sun, 31 Jan 2021 16:04:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D383D64E27 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=soleen.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id C72856B0005; Sun, 31 Jan 2021 11:04:10 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id BFDA36B0006; Sun, 31 Jan 2021 11:04:10 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AC3626B006C; Sun, 31 Jan 2021 11:04:10 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0223.hostedemail.com [216.40.44.223]) by kanga.kvack.org (Postfix) with ESMTP id 9445B6B0005 for ; Sun, 31 Jan 2021 11:04:10 -0500 (EST) Received: from smtpin05.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay02.hostedemail.com (Postfix) with ESMTP id 590993630 for ; Sun, 31 Jan 2021 16:04:10 +0000 (UTC) X-FDA: 77766541860.05.move18_0405cb1275ba Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin05.hostedemail.com (Postfix) with ESMTP id 39FF01801D032 for ; Sun, 31 Jan 2021 16:04:10 +0000 (UTC) X-HE-Tag: move18_0405cb1275ba X-Filterd-Recvd-Size: 6075 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by imf31.hostedemail.com (Postfix) with ESMTP for ; Sun, 31 Jan 2021 16:04:09 +0000 (UTC) Received: by mail-ed1-f41.google.com with SMTP id q2so1335393edi.4 for ; Sun, 31 Jan 2021 08:04:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=soleen.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Ill5FtHsvnGnhyZq4PTZ+wfZWDbj85ydmjcR5hoQtSU=; b=WA9qeWNS7cwGg8EThTQKocqoSAMpMXmdWEN96odCb1lDWcM2Sc6v0Qb7sDlmvA+l+I A8f+UMiuSXRUXIbHorjezUUJhKowq2uMgSlOLaQKlQ2TE2CKW/8nPCtEsN+ULwFm0bCg 9/wX7BwKDdipxk5O1KYWXekm+8qe/E4QqrApq/d05iBQtDtZIXya1NS9k8a0s5lWncyh g6ruf7EBD+cG/5qucNNMJ6+m+zjl1MiGsDM8tC4ZUV0lVOP0V6NdY9Qaskw+B2dxa5eF WGMkCC6G04Cz0bCzZ3ggOUmnb142HmddZFEz3cJyHpOYgpANZbbHESkueT3GcqeRKuB9 a7HQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Ill5FtHsvnGnhyZq4PTZ+wfZWDbj85ydmjcR5hoQtSU=; b=goMSCrDj1PDtLkihc0DdWB2bFRTyp+EraDLVZec+Ba0NNVvRaiUv3ll91IB0HcZJhl SHofZMWizoF8D9VDYplr7R4tQmrNdZOp55jVaq9UlLdZqIhbIavcqIuc6k5p+YsxiRW+ JIE81+B/MOx6p1AaNfMFzkMi5TketjaZyLEMeWzGY50f5zE6EWglLz6Vb9AXRYK3Df2e qhm/48qjAHENeVQnKL7OP0e947lQ1JEbE+Qqvg+JbVheAOBermxfFivvZJqxZglSv6ri BFr8hps4QFNjRzoDO6v3nIf3yne3I5x6nFaNK0krWS5Jakn/ZxrBjk8teCmEy4htGD8t PTPg== X-Gm-Message-State: AOAM532NDjXddfF60xHewlVui2glP4qsodzXPhFXmhBxUAQSClCr5+V/ erbY+ae/tLAA2MxGWylqLCpA5oks2mqhbT9sLCAvcA== X-Google-Smtp-Source: ABdhPJyCGWQ/3ra4ZR4qn/M+OGAua47G1o3uToLGNFPGWhEhJk7alqSH8V206c7XvCeXq7s9hKIxxI4DTjqV9Fn0UKc= X-Received: by 2002:a05:6402:402:: with SMTP id q2mr14874940edv.116.1612109048337; Sun, 31 Jan 2021 08:04:08 -0800 (PST) MIME-Version: 1.0 References: <20210125194751.1275316-8-pasha.tatashin@soleen.com> <20210131130903.4875-1-lecopzer@gmail.com> In-Reply-To: <20210131130903.4875-1-lecopzer@gmail.com> From: Pavel Tatashin Date: Sun, 31 Jan 2021 11:03:32 -0500 Message-ID: Subject: Re: [PATCH v8 07/14] mm: honor PF_MEMALLOC_PIN for all movable pages To: Lecopzer Chen Cc: Andrew Morton , Dan Williams , David Hildenbrand , Joonsoo Kim , Ira Weiny , Jason Gunthorpe , John Hubbard , James Morris , Linux Doc Mailing List , LKML , linux-kselftest@vger.kernel.org, linux-mm , Mel Gorman , Michal Hocko , Mike Kravetz , Ingo Molnar , Oscar Salvador , Peter Zijlstra , David Rientjes , Steven Rostedt , Sasha Levin , Tyler Hicks , Vlastimil Babka , Matthew Wilcox Content-Type: text/plain; charset="UTF-8" X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Sun, Jan 31, 2021 at 8:09 AM Lecopzer Chen wrote: > > > Hi, > > [...] > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > > index c93e801a45e9..3f17c73ad582 100644 > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -3807,16 +3807,13 @@ alloc_flags_nofragment(struct zone *zone, gfp_t gfp_mask) > > return alloc_flags; > > } > > > > -static inline unsigned int current_alloc_flags(gfp_t gfp_mask, > > - unsigned int alloc_flags) > > +/* Must be called after current_gfp_context() which can change gfp_mask */ > > +static inline unsigned int gpf_to_alloc_flags(gfp_t gfp_mask, > > + unsigned int alloc_flags) > > { > > #ifdef CONFIG_CMA > > - unsigned int pflags = current->flags; > > - > > - if (!(pflags & PF_MEMALLOC_PIN) && > > - gfp_migratetype(gfp_mask) == MIGRATE_MOVABLE) > > + if (gfp_migratetype(gfp_mask) == MIGRATE_MOVABLE) > > alloc_flags |= ALLOC_CMA; > > - > > #endif > > return alloc_flags; > > } > > @@ -4472,7 +4469,7 @@ gfp_to_alloc_flags(gfp_t gfp_mask) > > } else if (unlikely(rt_task(current)) && !in_interrupt()) > > alloc_flags |= ALLOC_HARDER; > > > > - alloc_flags = current_alloc_flags(gfp_mask, alloc_flags); > > + alloc_flags = gpf_to_alloc_flags(gfp_mask, alloc_flags); > > > > return alloc_flags; > > } > > @@ -4774,7 +4771,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order, > > > > reserve_flags = __gfp_pfmemalloc_flags(gfp_mask); > > if (reserve_flags) > > - alloc_flags = current_alloc_flags(gfp_mask, reserve_flags); > > + alloc_flags = gpf_to_alloc_flags(gfp_mask, reserve_flags); > > > > /* > > * Reset the nodemask and zonelist iterators if memory policies can be > > @@ -4943,7 +4940,7 @@ static inline bool prepare_alloc_pages(gfp_t gfp_mask, unsigned int order, > > if (should_fail_alloc_page(gfp_mask, order)) > > return false; > > > > - *alloc_flags = current_alloc_flags(gfp_mask, *alloc_flags); > > + *alloc_flags = gpf_to_alloc_flags(gfp_mask, *alloc_flags); > > I have a question, what is the abbreviation of "gpf" in the function > name gpf_to_alloc_flags()? > > It seems that this function still use gfp_mask, is this supposed > to be gfp (Get Free Page)? Thank you for noticing this, it was accidental, I will rename the function gpf_to_alloc_flags() -> gfp_to_alloc_flags() > > Thanks, > Lecopzer >