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 504CAC3DA4A for ; Thu, 8 Aug 2024 18:25:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E20AC6B008A; Thu, 8 Aug 2024 14:25:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DA95B6B008C; Thu, 8 Aug 2024 14:25:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C22E16B0093; Thu, 8 Aug 2024 14:25:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A0E716B008A for ; Thu, 8 Aug 2024 14:25:07 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 4E180141440 for ; Thu, 8 Aug 2024 18:25:07 +0000 (UTC) X-FDA: 82429905054.27.5360081 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf29.hostedemail.com (Postfix) with ESMTP id 6B4CF12001F for ; Thu, 8 Aug 2024 18:25:05 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eCJpmHZX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723141432; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=/fTbmpLXTeoTX+77gSmITn/afs+9LM7Rg5nbvfvJvVw=; b=baBdqV+TxD2zsgaRMBuBPSfRv2G4TL0usZFzfXQIL/lknEf3BWag4LQx+4cDrELWxmDbAI wq7hgPrjiO4huZ7+OYDv+WzmR4ZACccNRfF87zfXZTdWvdcyef62IxxkJb8xrC3I+VI6dD z2UA+39xH31IFSGPtABJkoulCYt3Zys= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723141432; a=rsa-sha256; cv=none; b=XroMubrzNKKZ6NOuhbbFBFIC/oNLqXn/AyEQGQK2Z7kjReD2jpLvnQVyh1G27nT9Rdp16V ivIJyzAfxEh6gs6vlVRVVHJLfhulHlliV6O8zK8/ihq//KnRQZIq5y9r7/JfgBD/Qt6bxm iPlk4U8uVpBjpbXARJcwCD3GENVnni0= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=eCJpmHZX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of vishal.moola@gmail.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=vishal.moola@gmail.com Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-1ff4568676eso13099015ad.0 for ; Thu, 08 Aug 2024 11:25:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723141504; x=1723746304; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:subject:cc :to:from:date:message-id:from:to:cc:subject:date:message-id:reply-to; bh=/fTbmpLXTeoTX+77gSmITn/afs+9LM7Rg5nbvfvJvVw=; b=eCJpmHZXND3Esmv2MJu3plVBGeTvh2Dwkgeg54JRw9m04skvVZfGiQIKG8Rem3EGUn wLD/uEznDjDsguVA7eOhAi++yI5j2402GqpApbDOzVDNxFiVkyYlKirfnPhkr7wt7cGh uscEEyqNh8smzwzImk9JOa+5UII+FwUTlP1OUdqjl/YBwE+y0uM8agnI5LMg25REgqle 4Y0TUxPs3DVI63lQ+CyScDh9mtXylnOupG6QW0hgfuheLYpF8H7o1JAhoe5GwY7xqHBL mQJ3At2rOYr+O9Sf0YCIaEXmX0kEK8KqZBm4dut6sq5wtL/toQz3JT4RqO6DxdoyPxOW OXQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723141504; x=1723746304; h=in-reply-to:content-disposition:mime-version:references:subject:cc :to:from:date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=/fTbmpLXTeoTX+77gSmITn/afs+9LM7Rg5nbvfvJvVw=; b=XCsSnMaCvCyFlTv1zfePU3IgCjq+EWFPT+uCzLIro1wJwINpnHNanJRsNKouIr7Vjs y7SwdwNmRCaVfhmTgPSY3Xr5FAeSDfmdGOGYcjp0G44C7K90ZGTRqPai7KI1MjmGjVHW 9fc10QKhf4ktJifqkNA6xtvhQ7qI4ivt6T9TZ3lPJtLl54tjjGU6ayhJqh2M1vFNhi28 rZXvU24ulKl8jM1oeNppb620Ph0AbBVVSPpBuNAIpfAMn0f/yIP1Kp2Gh1jr29skLwl0 p7oiQQph3U6bxxyIeRF1658sv1UPlTNo4QV2GUYaitjUbELgAB4lyKXTtSUhEI/gZQgU EnKQ== X-Forwarded-Encrypted: i=1; AJvYcCWk94VBlbb7dgxMrOP3MBUGO9Ki5HPQKJKY52twLRAW+hCstWg5JCI0X+Ll3JaTAA8XK5MiLnqCD3c1gLija9iZI4c= X-Gm-Message-State: AOJu0YxY8jUd9bpSe1JlfxnuDxj2vvIUB9tb0oSz5ylJQ2TapfqM00hu wTe+eNV244E408LDo3CRP6aBWyPPbsnFMQ6qLKH48GofUsgW1yxQ X-Google-Smtp-Source: AGHT+IH9n6BhdAJw7G4F2+YydKXN+rz1liwwXPHOVQDO7HdvFCozclXvs26Kk/AtYPZGnDfGPiK3nA== X-Received: by 2002:a17:903:2345:b0:1fb:8620:c0bd with SMTP id d9443c01a7336-2009526a7a2mr30143725ad.15.1723141504027; Thu, 08 Aug 2024 11:25:04 -0700 (PDT) Received: from DESKTOP-DUKSS9G. (c-76-133-131-165.hsd1.ca.comcast.net. [76.133.131.165]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1ff59176c89sm127786065ad.192.2024.08.08.11.25.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Aug 2024 11:25:03 -0700 (PDT) Message-ID: <66b50d7f.170a0220.2171ed.8a4f@mx.google.com> X-Google-Original-Message-ID: Date: Thu, 8 Aug 2024 11:25:02 -0700 From: Vishal Moola To: Alex Shi Cc: alexs@kernel.org, Vitaly Wool , Miaohe Lin , Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, minchan@kernel.org, willy@infradead.org, senozhatsky@chromium.org, david@redhat.com, 42.hyeyoo@gmail.com, Yosry Ahmed , nphamcs@gmail.com Subject: Re: [PATCH v4 06/22] mm/zsmalloc: convert create_page_chain() and its users to use zpdesc References: <20240729112534.3416707-1-alexs@kernel.org> <20240729112534.3416707-7-alexs@kernel.org> <66ad2ef0.170a0220.8fae7.6e38@mx.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 6B4CF12001F X-Stat-Signature: 3xukah1octrcjh4jtut3fr194m9wy3zm X-Rspam-User: X-HE-Tag: 1723141505-636651 X-HE-Meta: U2FsdGVkX19bPT8O5eOGsPfvAz3+QBjrJ4JipKed2At5YDldQxAQdbGlLytta7DuSoLxqY/kBSr5v/a0YBzLCL0i4LDDofEH3bBPpGzzwIT5DgcT7krngx4yUBLrfAqsIDOyGnNAAAOUB3bEbT14QnUg8GO89nBx0J7+WA2Yl4+6eUuOjHoG8+p9BF+Jt03gHtLwPbWSUpPq//LohRYOPdvjdZeRdszOAsSfHqYnGEHLhDP4W0agTT1bhP5oH6rBJPSGnO6hNbr6DnNBEo49nhxqtCjE8SEhn3qRZnNwbSgxLWdIyDzm7vsjo3StmIP8nUtKYPvFwi9QIbc4/CLyCsF0FpymYSTJ0rESH7rfDLyRmOhfSz7UelaBub+waodzlJfLc8N5YfzR1VM7EzT87AG6viJGwcJDVF1QFrDIbYET/uXgfDEUTxT5+4Ky0qCSR36DKKyeJ2VdPV59v2wlVB46oHBD6RgeI8MxhTDFVoq+jBcVICS4mvOYeKcUZMxq/TU561kaRrsIOxCqkaQUbqUfO9fw+VGRO4bKfpLxc/zQzGynvle30oAo5icZuYMZP0ILHFmZggCVsyrsDkR3cif5SiYOO3zbMfI445XbDkjuruz0+Eael0cLeVVluEH8TckjpPPKxd9jpYuxIWCPK3D7S+1jdgKiEHeRhv/jYJ53OszTMj6BTam/Vcp3Ox0GcYomkJJtIWXi0CowPiUfXAs6RJ4X5JFWUOPXJrVK8tSGO8zQ9nppJZxoSTPX7OcCaPycxY+m0FOo/2Kpllx0u1cXJK5Zhk87csUeBVAk0l96NbK/m036gM7YVsardgOtXLbdJ8nVFc99M2XhXseQyn8TDahNZXPc3aLrRs0q0+a5vYHqMDH5HP43ZiGxEqkLvClCleV6wWYkTGokOVtPUyeWF66JaTnw4WhBNlDj9lXnQ8eTzAntsWYvgM841p37QR+VIZU5cnQbyKKUzXd EA28TIGB MPt9ul4dVq/nWpmu2MBaIY3VuvuZ5dwtRcWJnLW5pXf5rJVl46SpbGJzf1V22kJl3luRoAxe0n8TAnXrrd30jR/zq5QEBTSb1rC/m1pUVgw5pPT8HMiL7jvHyFtEwhcUjkitB4jmWbeqcK2kNC9WzekEEluT4434hRe1XhET+NxFboraX6xHI0RpFbgk0Kb1B14dPeFi6LqejpMlGh9j2GX6q5HUJbEbNMxDNA9t6TUrIxcUdc4qmbIfv3/M++p/lEDNQ47QGoUlBTszFPPYq+yQNQIVacAsWdD+wA5U/aAm3xp77A6tfNibBT34K/64jAD4XANe8QVmCOEaWEAJyA+MB6eVzkFVvoEeIALTBdGANi8SYwcP4CBWoaCqyR/Qugt/EvP5fiy/JtvLJhmOZyi8lWpWU+stfdFHGzVEIzb22ADrp9tKd9CnUvLVVuN0mUdFGJFEbNZkqLmlHWeyrMz+NaaTStJYGeEemlSQgc9m+zh6VM/n0hv7iFBh1uI3dTbneCw/ruAEmUx+SsiXFdXu4qHnBt/CBy4k1UlWodrIQgNdLFZsSeP4yhQ== 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: List-Subscribe: List-Unsubscribe: On Mon, Aug 05, 2024 at 04:20:15PM +0800, Alex Shi wrote: > > > On 8/3/24 3:09 AM, Vishal Moola wrote: > > On Mon, Jul 29, 2024 at 07:25:18PM +0800, alexs@kernel.org wrote: > >> From: Alex Shi > >> > >> Introduce a few helper functions for conversion to convert create_page_chain() > >> to use zpdesc, then use zpdesc in replace_sub_page() too. > > > > As a general note, I've been having trouble keeping track of your helper > > functions throughout your patchset. Things get confusing when helper > > functions are "add-ons" to patches and are then replaced/rewritten > > in various subsequent patches - might just be me though. > > Right, maybe too much helper doesn't give necessary help. > > > > >> Originally-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> > >> Signed-off-by: Alex Shi > >> --- > >> mm/zpdesc.h | 6 +++ > >> mm/zsmalloc.c | 115 +++++++++++++++++++++++++++++++++----------------- > >> 2 files changed, 82 insertions(+), 39 deletions(-) > >> > >> diff --git a/mm/zpdesc.h b/mm/zpdesc.h > >> index 79ec40b03956..2293453f5d57 100644 > >> --- a/mm/zpdesc.h > >> +++ b/mm/zpdesc.h > >> @@ -102,4 +102,10 @@ static inline struct zpdesc *pfn_zpdesc(unsigned long pfn) > >> { > >> return page_zpdesc(pfn_to_page(pfn)); > >> } > >> + > >> +static inline void __zpdesc_set_movable(struct zpdesc *zpdesc, > >> + const struct movable_operations *mops) > >> +{ > >> + __SetPageMovable(zpdesc_page(zpdesc), mops); > >> +} > >> #endif > >> diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c > >> index bbc165cb587d..a8f390beeab8 100644 > >> --- a/mm/zsmalloc.c > >> +++ b/mm/zsmalloc.c > >> @@ -248,6 +248,41 @@ static inline void *zpdesc_kmap_atomic(struct zpdesc *zpdesc) > >> return kmap_atomic(zpdesc_page(zpdesc)); > >> } > >> > >> +static inline void zpdesc_set_zspage(struct zpdesc *zpdesc, > >> + struct zspage *zspage) > >> +{ > >> + zpdesc->zspage = zspage; > >> +} > >> + > >> +static inline void zpdesc_set_first(struct zpdesc *zpdesc) > >> +{ > >> + SetPagePrivate(zpdesc_page(zpdesc)); > >> +} > >> + > > > > I'm not a fan of the names above. IMO, naming should follow some > > semblance of consistency regarding their purpose (or have comments > > that describe their purpose instead). > > > > At a glance zpdesc_set_zspage() and zpdesc_set_first() sound like they > > are doing similar things, but I don't think they serve similar purposes? > > zpdesc_set_zspage() only used in one place, a helper maynot needed. Let me remove it. > Same thing for the alloc_zpdesc() and free_zpdesc(), they could be merge into using place. alloc_zpdesc() and free_zpdesc() are fine as is. The helper functions will be useful whenever memdescs can be allocated on their own, so its better to introduce it now. > Thanks > Alex > > > >> +static inline void zpdesc_inc_zone_page_state(struct zpdesc *zpdesc) > >> +{ > >> + inc_zone_page_state(zpdesc_page(zpdesc), NR_ZSPAGES); > >> +} > >> + > >> +static inline void zpdesc_dec_zone_page_state(struct zpdesc *zpdesc) > >> +{ > >> + dec_zone_page_state(zpdesc_page(zpdesc), NR_ZSPAGES); > >> +} > >> + > >> +static inline struct zpdesc *alloc_zpdesc(gfp_t gfp) > >> +{ > >> + struct page *page = alloc_page(gfp); > >> + > >> + return page_zpdesc(page); > >> +} > >> + > >> +static inline void free_zpdesc(struct zpdesc *zpdesc) > >> +{ > >> + struct page *page = zpdesc_page(zpdesc); > >> + > >> + __free_page(page); > >> +} > >> + > >