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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4F3DC02198 for ; Wed, 12 Feb 2025 07:07:24 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 09DFB28000E; Wed, 12 Feb 2025 02:07:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 04D5F280009; Wed, 12 Feb 2025 02:07:23 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E570428000E; Wed, 12 Feb 2025 02:07:23 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C84AC280009 for ; Wed, 12 Feb 2025 02:07:23 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 48EE34BBF2 for ; Wed, 12 Feb 2025 07:07:23 +0000 (UTC) X-FDA: 83110411566.09.7DE092E Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) by imf27.hostedemail.com (Postfix) with ESMTP id E1E8D40010 for ; Wed, 12 Feb 2025 07:07:19 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of liuye@kylinos.cn designates 124.126.103.232 as permitted sender) smtp.mailfrom=liuye@kylinos.cn; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739344041; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=tdIA60Pdot6XUdoF0nQi+8ed9M/xTtzXI1SzJgkqSL0=; b=AHwkOwAPCWelj/cfIItx604P7im8kj19ZQss3lxCIkXQf5KFCHufMbstmKfN+V9fKl1Jrp B5+V+zH+wHIIjt9pS14KUpXuDI2srR7JCyuoimZnChn10cCSgSVKb+9flmUALHW303oHLE GTgVdAnhtdXCwQ28pJtib+YMBULkcHU= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of liuye@kylinos.cn designates 124.126.103.232 as permitted sender) smtp.mailfrom=liuye@kylinos.cn; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739344041; a=rsa-sha256; cv=none; b=cupxzrsn/vdmp4d2XYOzJ5/LhsnJSv9uxtEYKNJFblDr6cldzJKSLetQl5dOEarMjZgCjf l1xXJG9eclde35a0lOd1RkKG+adNHvoL49yliB2MCgSDz7njClZLwcG3GmQQdAmx5cAO4j QYKP1U6ZbN9qEqBlCq2f1H1zaf78SnE= X-UUID: fac2f86ee90f11efa216b1d71e6e1362-20250212 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.45,REQID:e3dd149b-2576-4b37-9dea-e55243a52ccc,IP:0,U RL:0,TC:0,Content:0,EDM:0,RT:0,SF:-3,FILE:0,BULK:0,RULE:Release_Ham,ACTION :release,TS:-3 X-CID-INFO: VERSION:1.1.45,REQID:e3dd149b-2576-4b37-9dea-e55243a52ccc,IP:0,URL :0,TC:0,Content:0,EDM:0,RT:0,SF:-3,FILE:0,BULK:0,RULE:Release_Ham,ACTION:r elease,TS:-3 X-CID-META: VersionHash:6493067,CLOUDID:91b523715575d846567a18ed804d03fa,BulkI D:250212131311UOV0929M,BulkQuantity:2,Recheck:0,SF:17|19|38|64|66|78|80|81 |82|83|100|101|102|841,TC:nil,Content:0|52,EDM:-3,IP:nil,URL:0,File:nil,RT :nil,Bulk:40,QS:nil,BEC:nil,COL:0,OSI:0,OSA:0,AV:0,LES:1,SPR:NO,DKR:0,DKP: 0,BRR:0,BRE:0,ARC:0 X-CID-BVR: 1,FCT|NGT X-CID-BAS: 1,FCT|NGT,0,_ X-CID-FACTOR: TF_CID_SPAM_SNR,TF_CID_SPAM_FAS,TF_CID_SPAM_FSD X-UUID: fac2f86ee90f11efa216b1d71e6e1362-20250212 X-User: liuye@kylinos.cn Received: from [172.30.70.73] [(10.44.16.150)] by mailgw.kylinos.cn (envelope-from ) (Generic MTA with TLSv1.3 TLS_AES_128_GCM_SHA256 128/128) with ESMTP id 232799130; Wed, 12 Feb 2025 15:07:11 +0800 Message-ID: <52fcd6b2-bbe1-4de7-85d1-1e5968f87e0d@kylinos.cn> Date: Wed, 12 Feb 2025 15:07:07 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] mm/mm.h: Write folio->_flags_1 & 0xff as a macro definition To: Dev Jain , brauner@kernel.org, dhowells@redhat.com, akpm@linux-foundation.org Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20250212025843.80283-1-liuye@kylinos.cn> <20250212025843.80283-3-liuye@kylinos.cn> <1739340112672653.3.seg@mailgw.kylinos.cn> Content-Language: en-US From: liuye In-Reply-To: <1739340112672653.3.seg@mailgw.kylinos.cn> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: E1E8D40010 X-Stat-Signature: nwwpfrig9n4h8b5t4gopot9zoojm4bk3 X-Rspamd-Server: rspam03 X-HE-Tag: 1739344039-468986 X-HE-Meta: U2FsdGVkX19FOUK9UWi8ywWj3rGj85Vd3OQCEMFoHT6OqnqXFwXL3xdyAe85alk1zfTCYBo3SRCiYetPF5SLI0Mq997mzO8ji9jPu9fKXv8tXtWsVVsO9S+U0R1ADybF3eBL3kRMUy9Pa2b+YmsxK9vR3X10/wd5nRl77hIAd8AAA2wK+AixkdPWTEtG4GNJnOPGCDsaGg29GA3E8vmn4APAhaV805fzsFXYGDDCcfsAiVqlEpoHTW0jaXcAo6s6/MLanuDhiZqakxIn2WSI8zc155LQr2dJzFScN7gbmu8TTCCoE8TChtcS5vg7nRf3Y0wUEh3NQTp5jECa8uy3RX6BSDJiuzP3e/o8UFL5JTrlDn+7meCV6O+p233Pq6cEQh0Ev9zUV3panVtW+b+O31Sp3NjA1Z0hWxooEj+GFk/JhnUAc90lh4BiGRDpAEk02jxRFjXM7qWK7OlJ6Dwy2uCK2DypjhjN3PzJP7I9tE13qbWGzcSFRsQV0CTjQo+IsNMfdg/HN3pCDRpHnkQ5YYNX4OhtwIpg8qP7raM+D/uij25ENiKwz9sEiobEUZpECNnMfqTzcNKZ9ASdbYjF14eX8iA6nNptvA2Ack22jeTNEeic6TP7w5CHtwa73r250CkQx+bV0uk09j9ftEHfCZTD/Y4ro+N/9ELPduSTNJ4yymgsn9Zy3eEboaROlKNNtik+B++xFabQDI82L8cPEsqPwb/2xW3vplDWhc7shDbbcbdflCS3xzvcuH/l+y/ajCDAiK0jJd9p5jbMNGatSGLkRxBwi4gHTUL0WOjmYFPDgp0rX2bJwitCCM/BDvutZnfawyXh+Pg9EpRYCG+/Ah4lmrdMB9822Ok6v5hpgEhbf0xk0bgdhTK9pUpVdGA/aOZ9O2Iyxw0F929scWIWZL+QQeN4l4TRDVzfTTVh5pz3zp28u79+smXHmz02b+oWIDuppjbBo+XP3AluHf8 ZeRnMxXW ejUEAWexYnxAeughNIT+WIsDD5Q6AHochPHNxBmbjQEyAH6p1eXwGmep5v8XP5tNHsuLhUNfd7eLoM/r87TNosZqhuxdhpL8TlL0TeE1kFfLOsz0hLn5bTZPXfnH96/DJJeMhHNRt9G3jSLYNqhueGQw09A== X-Bogosity: Ham, tests=bogofilter, spamicity=0.005786, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: 在 2025/2/12 13:12, Dev Jain 写道: > > > On 12/02/25 8:28 am, Liu Ye wrote: >> There are multiple locations in mm.h where (folio->_flags_1 & 0xff) is >> used. Write it as a macro definition to improve the readability and >> maintainability of the code. >> >> Signed-off-by: Liu Ye >> --- >>   include/linux/mm.h | 10 ++++++---- >>   1 file changed, 6 insertions(+), 4 deletions(-) >> >> diff --git a/include/linux/mm.h b/include/linux/mm.h >> index 7b1068ddcbb7..750e75f45557 100644 >> --- a/include/linux/mm.h >> +++ b/include/linux/mm.h >> @@ -1098,6 +1098,8 @@ int vma_is_stack_for_current(struct vm_area_struct *vma); >>   struct mmu_gather; >>   struct inode; >>   +#define FOLIO_ORDER(folio) ((folio)->_flags_1 & 0xff) >> + >>   /* >>    * compound_order() can be called without holding a reference, which means >>    * that niceties like page_folio() don't work.  These callers should be >> @@ -1111,7 +1113,7 @@ static inline unsigned int compound_order(struct page *page) >>         if (!test_bit(PG_head, &folio->flags)) >>           return 0; >> -    return folio->_flags_1 & 0xff; >> +    return FOLIO_ORDER(folio); >>   } >>     /** >> @@ -1127,7 +1129,7 @@ static inline unsigned int folio_order(const struct folio *folio) >>   { >>       if (!folio_test_large(folio)) >>           return 0; >> -    return folio->_flags_1 & 0xff; >> +    return FOLIO_ORDER(folio); >>   } >>     #include >> @@ -2061,7 +2063,7 @@ static inline long folio_nr_pages(const struct folio *folio) >>   #ifdef CONFIG_64BIT >>       return folio->_folio_nr_pages; >>   #else >> -    return 1L << (folio->_flags_1 & 0xff); >> +    return 1L << FOLIO_ORDER(folio); >>   #endif >>   } >>   @@ -2086,7 +2088,7 @@ static inline unsigned long compound_nr(struct page *page) >>   #ifdef CONFIG_64BIT >>       return folio->_folio_nr_pages; >>   #else >> -    return 1L << (folio->_flags_1 & 0xff); >> +    return 1L << FOLIO_ORDER(folio); >>   #endif >>   } >>   > > Personally I do not think this is improving readability. You are introducing one more macro for people to decipher instead of directly seeing folio->_flags_1 & 0xff. This is similar to whether to write > if (x) => do_stuff(), or if (x != 0) => do_stuff(). The former is more "readable" by convention but the latter makes it easier and obvious to understand. > Or simply for maintenance purposes, if the meaning of a bit changes, only the macro definition needs to be modified. Thanks, Liu Ye