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=-3.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=no 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 04895C10F27 for ; Tue, 10 Mar 2020 19:09:42 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 9F48D215A4 for ; Tue, 10 Mar 2020 19:09:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fCDIIxMY" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9F48D215A4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 4094B6B000C; Tue, 10 Mar 2020 15:09:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3B91B6B000D; Tue, 10 Mar 2020 15:09:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2CF8A6B000E; Tue, 10 Mar 2020 15:09:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0144.hostedemail.com [216.40.44.144]) by kanga.kvack.org (Postfix) with ESMTP id 175FB6B000C for ; Tue, 10 Mar 2020 15:09:41 -0400 (EDT) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 12824180AD811 for ; Tue, 10 Mar 2020 19:09:40 +0000 (UTC) X-FDA: 76580391720.14.work85_3727bce6a6814 X-HE-Tag: work85_3727bce6a6814 X-Filterd-Recvd-Size: 9835 Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by imf41.hostedemail.com (Postfix) with ESMTP for ; Tue, 10 Mar 2020 19:09:38 +0000 (UTC) Received: by mail-wm1-f65.google.com with SMTP id g62so2640720wme.1 for ; Tue, 10 Mar 2020 12:09:38 -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; bh=UAJu0G+PwCvDC3PO+LvKS/jZwffHH36mINH+RezVS60=; b=fCDIIxMYAFQUG8EeYkTGUIZqxxm86N1Ef11FeZ7mJTCwL3KCNhAyk6ByhKD1JKlIJL H9hC65JtOT3mDWOVOrz+pAfqt6lAly8nv50mC4TIwqSaW2+6IWxvgA94Eiqyn9oWpA0S pV1/oDT+1egST8HEZGLCanap0xsHFBPWGsOnIUveP93xgdREvFe4Ac02YxC0yek93ge0 dpbg5tjfW1EnEVU5ucJxJyvGns1rVGmqoVCcRlj/bvqv/2wZmxR/VoVl64q1eXFZy5V4 HIDvpcrpqRTbUbLTqJqBfBPWxEMlu304VeBk7NLrNvS8kfUP16XRmIkj/7dAWoHl/bBq FG5A== 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=UAJu0G+PwCvDC3PO+LvKS/jZwffHH36mINH+RezVS60=; b=XbFjJLX2ct30C1Up0eukhxvGPGaCAyc0GgYKcHGIm99Zf9XVnAM20HH/t+gDXhU8TK DHiKCZwT5ytTJOnJOwWWz5ps5xhXBdvimvtjgFIwHbIw4M2UCJbpw6wMvQ+13l/sibDM DnY/ZzNJnxlUCsFvWBRM+GWnt8DYlb1s2Z2RSApkHKoOR3KyzgIZ8KPfP2RdrM8bLgm9 6knj4iqHstUNrdPjFv1GCBwI4fQlbDzZdXorUO8AKtLg7c9GyeOc4Q40meSiRWvO5gpW YqOA3qg3ZPWNQbPOSk3I7aclCc709GJvCykuhQOV2RcIBH/OE680W//O2snjns2iMDjH 1b1g== X-Gm-Message-State: ANhLgQ2TC4iZF0DvCjscj4MNiLU60ZXDpLY5wDmm14whGwVr11FSqfMc Gr6rh9L9l2XWDHbNrZea6aUUPrdjLb75pWeSCI0= X-Google-Smtp-Source: ADFU+vvIHeR2aEfNgeYlZgbhMQ+/z3Sf5diLNRN9Zdo+d2gy3sTL91Yt/MyTZelJzkF7jk89fZ5lMIbGgkUUftyqo50= X-Received: by 2002:a1c:9c52:: with SMTP id f79mr3557522wme.30.1583867377435; Tue, 10 Mar 2020 12:09:37 -0700 (PDT) MIME-Version: 1.0 References: <1583853751-5525-1-git-send-email-qiwuchen55@gmail.com> In-Reply-To: <1583853751-5525-1-git-send-email-qiwuchen55@gmail.com> From: Pankaj Gupta Date: Tue, 10 Mar 2020 20:09:24 +0100 Message-ID: Subject: Re: [PATCH v4] mm/page_alloc: simplify page_is_buddy() for better code readability To: qiwuchen55@gmail.com Cc: Andrew Morton , willy@infradead.org, vbabka@suse.cz, alexander.duyck@gmail.com, Baoquan He , linux-mm@kvack.org, chenqiwu Content-Type: multipart/alternative; boundary="00000000000067488f05a084dc9e" 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: --00000000000067488f05a084dc9e Content-Type: text/plain; charset="UTF-8" > Simplify page_is_buddy() to reduce the redundant code for better code > readability. > > Signed-off-by: chenqiwu > --- > changes in v4: > - change the return type of page_is_buddy() from int to bool. > - reflow the comment into fewer lines. > --- > mm/page_alloc.c | 33 +++++++++++++-------------------- > 1 file changed, 13 insertions(+), 20 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 3c4eb75..229fc8c 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -791,32 +791,25 @@ static inline void set_page_order(struct page *page, > unsigned int order) > * > * For recording page's order, we use page_private(page). > */ > -static inline int page_is_buddy(struct page *page, struct page *buddy, > +static inline bool page_is_buddy(struct page *page, struct page *buddy, > unsigned int order) > { > - if (page_is_guard(buddy) && page_order(buddy) == order) { > - if (page_zone_id(page) != page_zone_id(buddy)) > - return 0; > - > - VM_BUG_ON_PAGE(page_count(buddy) != 0, buddy); > + if (!page_is_guard(buddy) && !PageBuddy(buddy)) > + return false; > > - return 1; > - } > + if (page_order(buddy) != order) > + return false; > > - if (PageBuddy(buddy) && page_order(buddy) == order) { > - /* > - * zone check is done late to avoid uselessly > - * calculating zone/node ids for pages that could > - * never merge. > - */ > - if (page_zone_id(page) != page_zone_id(buddy)) > - return 0; > + /* > + * zone check is done late to avoid uselessly calculating > + * zone/node ids for pages that could never merge. > + */ > + if (page_zone_id(page) != page_zone_id(buddy)) > + return false; > > - VM_BUG_ON_PAGE(page_count(buddy) != 0, buddy); > + VM_BUG_ON_PAGE(page_count(buddy) != 0, buddy); > > - return 1; > - } > - return 0; > + return true; > } > > #ifdef CONFIG_COMPACTION > -- > Acked-by: Pankaj Gupta > 1.9.1 > > --00000000000067488f05a084dc9e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=

Simplify page_is_buddy() to reduce the redundant code for better code
readability.

Signed-off-by: chenqiwu <chenqiwu@xiaomi.com>
---
changes in v4:
=C2=A0- change the return type of page_is_buddy() from int to bool.
=C2=A0- reflow the comment into fewer lines.
---
=C2=A0mm/page_alloc.c | 33 +++++++++++++--------------------
=C2=A01 file changed, 13 insertions(+), 20 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 3c4eb75..229fc8c 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -791,32 +791,25 @@ static inline void set_page_order(struct page *page, = unsigned int order)
=C2=A0 *
=C2=A0 * For recording page's order, we use page_private(page).
=C2=A0 */
-static inline int page_is_buddy(struct page *page, struct page *buddy,
+static inline bool page_is_buddy(struct page *page, struct page *buddy, =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 unsigned int order)
=C2=A0{
-=C2=A0 =C2=A0 =C2=A0 =C2=A0if (page_is_guard(buddy) && page_order(= buddy) =3D=3D order) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (page_zone_id(pa= ge) !=3D page_zone_id(buddy))
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0return 0;
-
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0VM_BUG_ON_PAGE(page= _count(buddy) !=3D 0, buddy);
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (!page_is_guard(buddy) && !PageBuddy= (buddy))
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return false;

-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return 1;
-=C2=A0 =C2=A0 =C2=A0 =C2=A0}
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (page_order(buddy) !=3D order)
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return false;

-=C2=A0 =C2=A0 =C2=A0 =C2=A0if (PageBuddy(buddy) && page_order(budd= y) =3D=3D order) {
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0/*
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * zone check is do= ne late to avoid uselessly
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * calculating zone= /node ids for pages that could
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 * never merge.
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 */
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (page_zone_id(pa= ge) !=3D page_zone_id(buddy))
-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0return 0;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0/*
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 * zone check is done late to avoid uselessly c= alculating
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 * zone/node ids for pages that could never mer= ge.
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 */
+=C2=A0 =C2=A0 =C2=A0 =C2=A0if (page_zone_id(page) !=3D page_zone_id(buddy)= )
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return false;

-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0VM_BUG_ON_PAGE(page= _count(buddy) !=3D 0, buddy);
+=C2=A0 =C2=A0 =C2=A0 =C2=A0VM_BUG_ON_PAGE(page_count(buddy) !=3D 0, buddy)= ;

-=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0return 1;
-=C2=A0 =C2=A0 =C2=A0 =C2=A0}
-=C2=A0 =C2=A0 =C2=A0 =C2=A0return 0;
+=C2=A0 =C2=A0 =C2=A0 =C2=A0return true;
=C2=A0}

=C2=A0#ifdef CONFIG_COMPACTION
--

Acked-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
=C2=A0
1.9.1

--00000000000067488f05a084dc9e--