Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1830833ybh; Fri, 17 Jul 2020 02:16:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyHkSjuxFzLsxfDT1ALx+Ay/icsAa7aoG+R0DEVYU5r7CJgvIlVi3TosHlcYaxBY1ZsMMDq X-Received: by 2002:a17:906:4c42:: with SMTP id d2mr7534826ejw.345.1594977419521; Fri, 17 Jul 2020 02:16:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594977419; cv=none; d=google.com; s=arc-20160816; b=pJM7TCXToO/vAY3Za2i8o+mHB4SthJhTMxWeqgdxGLlxzkuJjpaD4bW9NgoLj/FAfU 4VIKBqPA6d+ZyDBBwsm30Ft9cJkhsuMNzAHUxqg+bwFFOWYA7GKRa0RhodBMfHZMyej0 VNzL7rVpcasE9LKb1i0NgYR+SFpYXNV+HASWzQ80mtsFhSzYR/DKD2d7OsTWMQvQwyDB mpaGwNDXNAHjLNs29IjciL2gHSW+XHUsiqkYgU7b552wvvxqS9PUiY2kArW0YXpDQ4RU x2ulFJNVnYeOEqPGjXpXnLet/SGJRk5xv119slFb2cor15kRJvnLcVS1+yNcOEZY6jCy TTPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=TTah83XUjnFYRYk4+z1WzNDw5yUiECajFe5/YPDgJlc=; b=X6XyGczJd/lfJwwHJBOfXmMJzl4IWhs8BngKM0VPpZHykrNVbN6KUkkAH6ZnR2KkRw FFuhslPuoZOqPhrvRoZ/vtKeo4+J0ITLYOTWfXga9nNAmvZEGk1u8DXelksk5hc5KUbl yIIrCQUk1AegA70agEXuuUf7okZgmeHcQkHUK+2uITssUBL02vNHRqOQbqnxLHsDXFdc Q1Q9Ldq1Rq0Wp66zLVvN8RdEFi0djHF6p9Wqew8scNmL2wz2nE6qXgiLOeW68iPeZ83X soNVtXbJn+UdXiBe1nC+ODuI+YtPfe1Sso26HShR48/GlRRexKNvsaKJfj4WCuorZIxo 5RqA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=TQheRHn1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h8si4357989edn.92.2020.07.17.02.16.36; Fri, 17 Jul 2020 02:16:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=TQheRHn1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726200AbgGQJO1 (ORCPT + 99 others); Fri, 17 Jul 2020 05:14:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725864AbgGQJO0 (ORCPT ); Fri, 17 Jul 2020 05:14:26 -0400 Received: from mail-qk1-x742.google.com (mail-qk1-x742.google.com [IPv6:2607:f8b0:4864:20::742]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 344FAC061755; Fri, 17 Jul 2020 02:14:26 -0700 (PDT) Received: by mail-qk1-x742.google.com with SMTP id 145so8123884qke.9; Fri, 17 Jul 2020 02:14:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=TTah83XUjnFYRYk4+z1WzNDw5yUiECajFe5/YPDgJlc=; b=TQheRHn1cXzAuyeAdVJtG46D6J951Kk4qGPQR2X703/XXvKFQrxQ5YJZpo8d0xYzfA G1Ghdb7LaYEqxJkZO+RLdKrzPdfnQ43SnF9QgXLfe/odBI6RU7CpT7+hAzjoLxDWUJPE taRBvSd/PXI3ypGn1mKESnLFG6nTFmfYRafYZGCGYfYtOVoJjwB9krtehBjwWXbre8m6 sEnA90M7w/zCaf3qrS530VXFdciyuBxBx9IXXX17qBpYVAkTaPhQwguTSTWNlAegbnVP x07Hacdjp0FdkYy3TCxXSj+flKd3GJhCX8lWfQolxLCNiKb2+RrMgrnlhTgoomzxCs8O g15w== 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:content-transfer-encoding; bh=TTah83XUjnFYRYk4+z1WzNDw5yUiECajFe5/YPDgJlc=; b=mtCC1NoSlW+kpiTDm04oR2aNLvhvvXPYSpcM4FFoGqDAy5ALH5agID/spyx/kUAeo4 smTi0k93VoQak074A0+tWWz1SI6E0qkOvq9+/5qvCcptM5epsK6EwO9JQmGbT9F0TYyN wBoQH28MdMEE/GJDcy/dqvW32breZVVOtLXfZjrIf7YoxrYMpMVz2Nz7qHgOxtphpkXo 3Px8DFJHNrvRj/06SCnkhKnmLJCciAA9IaL9sDZhM0PxS7syFET0RD4uP7qqvIa805ao OyigYff+WFQn9NPFv744O+dzzOe8y6Toq3H/cgJOhCT7lH5IRDPJ+3TUdKsStR3ow/9Z q2xQ== X-Gm-Message-State: AOAM533+ZBHRB29/p96nemEvNGz1ceqwbPDYaaPPkTYH4ezijnI5MUzA kdijLxdx+0yrh/VWqTlhLuzNerSkQRodOCh7udGCoQ== X-Received: by 2002:a37:6d2:: with SMTP id 201mr7473861qkg.187.1594977265463; Fri, 17 Jul 2020 02:14:25 -0700 (PDT) MIME-Version: 1.0 References: <1594789529-6206-1-git-send-email-iamjoonsoo.kim@lge.com> In-Reply-To: From: Joonsoo Kim Date: Fri, 17 Jul 2020 18:14:14 +0900 Message-ID: Subject: Re: [PATCH 1/4] mm/page_alloc: fix non cma alloc context To: David Laight Cc: Andrew Morton , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , "kernel-team@lge.com" , Vlastimil Babka , Christoph Hellwig , Roman Gushchin , Mike Kravetz , Naoya Horiguchi , Michal Hocko , "Aneesh Kumar K . V" , Joonsoo Kim , "stable@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2020=EB=85=84 7=EC=9B=94 17=EC=9D=BC (=EA=B8=88) =EC=98=A4=ED=9B=84 5:32, D= avid Laight =EB=8B=98=EC=9D=B4 =EC=9E=91=EC=84=B1: > > From: js1304@gmail.com > > Sent: 15 July 2020 06:05 > > From: Joonsoo Kim > > > > Currently, preventing cma area in page allocation is implemented by usi= ng > > current_gfp_context(). However, there are two problems of this > > implementation. > ... > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > > index 6416d08..cd53894 100644 > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > ... > > @@ -3693,6 +3691,16 @@ alloc_flags_nofragment(struct zone *zone, gfp_t = gfp_mask) > > return alloc_flags; > > } > > > > +static inline void current_alloc_flags(gfp_t gfp_mask, > > + unsigned int *alloc_flags) > > +{ > > + unsigned int pflags =3D READ_ONCE(current->flags); > > + > > + if (!(pflags & PF_MEMALLOC_NOCMA) && > > + gfp_migratetype(gfp_mask) =3D=3D MIGRATE_MOVABLE) > > + *alloc_flags |=3D ALLOC_CMA; > > +} > > + > > I'd guess this would be easier to understand and probably generate > better code if renamed and used as: > alloc_flags |=3D can_alloc_cma(gpf_mask); > > Given it is a 'static inline' the compiler might end up > generating the same code. > If you needed to clear a flag doing: > alloc_flags =3D current_alloc_flags(gpf_mask, alloc_flags); > is much better for non-inlined function. Vlastimil suggested this way and I have agreed with that. Anyway, thanks for the suggestion. Thanks.