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 35E77C001E0 for ; Thu, 13 Jul 2023 04:21:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B96C26B007B; Thu, 13 Jul 2023 00:21:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B1F428D0005; Thu, 13 Jul 2023 00:21:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C0336B007E; Thu, 13 Jul 2023 00:21:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8C7E46B007B for ; Thu, 13 Jul 2023 00:21:08 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 5A055C0109 for ; Thu, 13 Jul 2023 04:21:08 +0000 (UTC) X-FDA: 81005288616.08.5A67615 Received: from mail-oi1-f177.google.com (mail-oi1-f177.google.com [209.85.167.177]) by imf24.hostedemail.com (Postfix) with ESMTP id 5087C180003 for ; Thu, 13 Jul 2023 04:21:06 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=mYhOCoF5; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.167.177 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689222066; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=jcE2YmIW31bFO7IyE1TbOouyqUx4815Ufga9qggKlmE=; b=WcrwaCwy+ArLnPBVLRBVYg/ZR4LC6GaSmiJ0gchVrbvanB9QOACOkvD93SpWieKlC7NIPP d0yVGUvlSHtIOGaEy/OJ8KQ2j6SWQXDOQ84xoHbuIDD3VAglbFPRtcFtYfPw/MiDj315GR zxVsikxL9UOsAPVrs9I8AciZ5UnjQSs= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=mYhOCoF5; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf24.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.167.177 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689222066; a=rsa-sha256; cv=none; b=BPUjW5DuRlpQHBDiTTWLKFLc6BDaE1kIouwpwvW60D0w+NBG2M4/d9nzCld6eyDGT7EyxY VLIfAf8nDF4C7YZSowrD6jl+729w78edzpThZqf5qxvR8vIuzXmf2Y1J+W+kIbXHQb1hrQ oSZ6lVlqYga/QJLlEaNmM5CPZ610mmw= Received: by mail-oi1-f177.google.com with SMTP id 5614622812f47-3a1ebb79579so283554b6e.3 for ; Wed, 12 Jul 2023 21:21:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689222065; x=1691814065; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jcE2YmIW31bFO7IyE1TbOouyqUx4815Ufga9qggKlmE=; b=mYhOCoF5+AgtodxdPh9hQADQfzcGGFdPKxTugVcu2Qs0e1yVg+0UkvCcRf/X3w/74s Kyz6ifXK6zTs2BFM00E8ADWIYlLRhhPSNmHbMUUZlBj8VJNziwCjHk5q1W5JoGbozIkM qI8cO56rtKm63AxeFVfIB07C8I5KBI7+H5+WeFGDdYzbEUHEYPgAoPksrpjWn3Ox9zJz BMPH5pv3QTN4UVgD9QNi87H5RnXLR/nsxOoAuPs2SRz6Ey0ejYmkLYeUBccuiFTR0Oqh q7//HZplNbzxfarT1/+PAPdpS1Cq6urRz8/Ed7OiPdOVBDo5/1Ub5DlQn/PxPVvuBZ4M +pKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689222065; x=1691814065; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jcE2YmIW31bFO7IyE1TbOouyqUx4815Ufga9qggKlmE=; b=jCByuUS37qLJ0dTPsJHfPnAciwNqfc4ta79WhCXlZ7FrfSWUwvLIalKcbJTZNhqveN t+rOTfuNUvgm5oiql+7Au8u96SYsH9vHdzIVHEFxrfvjnmvx4eWX9xrZZyEOAvbzEicf hEIZsMZp7KQcDnBwSVJPmgyVv4lj5qOmch0EBfYHrG0yew4BfaA9fHm0ct9vMeRaIGye mT7U1PssRsY+wy5cigGsE8sATem7L1+eI8wgNqWZONlEE3q3y/2TNBR3QUa0/kc/YhJ1 mLzp5IdNfSTc6kJmXu6Lpgp0fghZly+acAWZHcqD0exFYYDA/OMnQurg7BoJS9csw8i0 iYsQ== X-Gm-Message-State: ABy/qLZ1qRx98UMRMrnsTOTBnmQEXCWfBWxU0bon31mRF7vLbZBiU0tL RQRyazliqRxupJdaPTP5xuLBK551QjJpKxD3VTNtNA== X-Google-Smtp-Source: APBJJlHn+GjEfwkeFf3et/qnGrOvXvkqgNMp79oM2A97NPAz4SPID9PPqYp6PTsedEbPVJXbuLD/Bg== X-Received: by 2002:a05:6808:1286:b0:3a3:baf8:5b8a with SMTP id a6-20020a056808128600b003a3baf85b8amr908456oiw.13.1689222065353; Wed, 12 Jul 2023 21:21:05 -0700 (PDT) Received: from fedora.. ([1.245.179.104]) by smtp.gmail.com with ESMTPSA id u18-20020aa78392000000b006827c26f147sm4346601pfm.138.2023.07.12.21.21.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jul 2023 21:21:04 -0700 (PDT) From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: Minchan Kim , Sergey Senozhatsky Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Matthew Wilcox , Mike Rapoport , Hyeonggon Yoo <42.hyeyoo@gmail.com> Subject: [RFC PATCH v2 04/21] mm/zsmalloc: add alternatives of frequently used helper functions Date: Thu, 13 Jul 2023 13:20:19 +0900 Message-ID: <20230713042037.980211-5-42.hyeyoo@gmail.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230713042037.980211-1-42.hyeyoo@gmail.com> References: <20230713042037.980211-1-42.hyeyoo@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 5087C180003 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: 14dau1znnprhhgum7yh1hmangtsqzn5y X-HE-Tag: 1689222066-42114 X-HE-Meta: U2FsdGVkX1/OMSKIVLWUBEA+sTE2hyZrBQyBQ1JEscjyeTI78llSa607Hih6ui5ULBwlsVd2DhQYO0Pqj5ItN+VSRduHYNGrK0Xq0ccJp9SNElAJBt21LRXs5mBhA7T8IlFykWQqXVG3WYtnpfFaNyEnrnl0HGc6KkUrZ+ymMtCh5XTKToxEOziXh5tDqfY1TIusBAsf44WEE3zvYFVWxQqsMFRNI36dMKZuN1lk2lD2Vmv9ti7aC49DMKR/aFaMPo0pEoThhOmr7BuzeYI2l6xAhu04MWHM3Eg02ffXK9fPm+kA7tFKT/VUsssd5mkvql2+ghpqQ3iCissi+cIA2cWyK3ocOUaa/srWS8iZdG9iHrgqpoyNvT5HNmEgPHbXe9LEbKL1agoeCs94yOgicdqqmX4Cu+ksyeNXXGuD6gw/TBrV+EIkyQkrIu95ysZFc9puYrQjFkBTnAnx2XzJHhC/R7was3z2a8dXm3xcx3GZKYs0ZCIpTYP2PQoqRDnLM2yIjkdIsd3Ay2ZeSTYeWQ6PTS3qfozX49dSPSzgGbfFDpGy8QOJ60bHnDSv9+GPYFhhl0twO8AMMmXsXDUdVqTMM/dePp4it0JmfxbjFmDjmHhYaQY6RdtYl/P+TXp/ajE3TlhyOwdGZ2UgseBNZ2EI5NU0cwncsQfYEuFCXtg0pys1Ks0FezaTNjM4P7HrC4g0Z/CYvyha4mIjM22AzLfJhFegKsr90Zpuqpl60+PPyukQq9ujcXdscr3tw6FtCIbVdxH2HiaX/NQngcRTmjoP/TTEm2+/Xn15PbJ0TKd5DT6FevjwiHNgo8qkdtB+jU10exNUOk8n+SuwROXFhroVHdMPs6+L6WqrGU0zeroLDUfPh9QpQotLNyzI3FfyZ19TPgBw/IDtsYPfAi9PJuDn+/53RB6l80cuVykfOJOkc6RimKkil/ZesOM8wH/NSJqapCAU+D3lTq5lpLq +fWxIwuX C9rC3U86+WP+yrFOxlYbqRq4kS9y3ZO0Dq0nHMg90UqEoAHkPaoTyDcX84P0Z1yv19jW4Rqd+6xXLLrmOag/0jEpYvLx1PyshHeilJvNTIt3mFekrGNsuxMkaoVeAcmXr7dV673r4+w0RJX1SsiVHb9iJjceCbL7w0pYCWGFhdS6a7TyYGxlmBgn7jD6Wq5Upd2nMz75dLwMmXojTKA3y8aAV9fky/Iz+DOKZM9O/TQEjnkH9hQAzgzwTlFug2BH+T6Z1pd8hO3RGvYatFCXpHMsR0SP6uUxi4uEsCsZWegXQXpEv/89jok7rXwVlj+68q/8NnFGYw2wCxE1t8HDXdKCwQw0ef/Ek70ECCb8N22Bk+3DzWQcb1jrpiyj/3EHy9HzreJcHSDBwTTD8shv2GJD5oESCvRA5xOHCRGjTWSoNndKwRnwUlJwZheIZkvy7rWzM7FpuejAJ3RjzNny5miJ06OBulnoFNHMEtmMVulrmV6GFcgeCMzrQ8DHOssJQVon07pBbvRBj5PgWR3f2ZIaz8j7KujO3JypZm3T5soQUUMM= 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: get_first_page(), get_next_page(), is_first_page() are frequently used throughout zsmalloc code. As replacing them all at once would be hard to review, add alternative helpers and gradually replace its users to use new functions. Signed-off-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> --- mm/zsmalloc.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 8f7d9b79d849..f44a2d8a36b5 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -498,6 +498,11 @@ static __maybe_unused int is_first_page(struct page *page) return PagePrivate(page); } +static __maybe_unused int is_first_zsdesc(struct zsdesc *zsdesc) +{ + return PagePrivate(zsdesc_page(zsdesc)); +} + /* Protected by pool->lock */ static inline int get_zspage_inuse(struct zspage *zspage) { @@ -510,7 +515,7 @@ static inline void mod_zspage_inuse(struct zspage *zspage, int val) zspage->inuse += val; } -static inline struct page *get_first_page(struct zspage *zspage) +static __maybe_unused inline struct page *get_first_page(struct zspage *zspage) { struct page *first_page = zsdesc_page(zspage->first_zsdesc); @@ -518,6 +523,14 @@ static inline struct page *get_first_page(struct zspage *zspage) return first_page; } +static __maybe_unused struct zsdesc *get_first_zsdesc(struct zspage *zspage) +{ + struct zsdesc *first_zsdesc = zspage->first_zsdesc; + + VM_BUG_ON_PAGE(!is_first_zsdesc(first_zsdesc), zsdesc_page(first_zsdesc)); + return first_zsdesc; +} + static inline unsigned int get_first_obj_offset(struct page *page) { return page->page_type; @@ -806,7 +819,7 @@ static struct zspage *get_zspage(struct page *page) return zspage; } -static struct page *get_next_page(struct page *page) +static __maybe_unused struct page *get_next_page(struct page *page) { struct zspage *zspage = get_zspage(page); @@ -816,6 +829,16 @@ static struct page *get_next_page(struct page *page) return (struct page *)page->index; } +static __maybe_unused struct zsdesc *get_next_zsdesc(struct zsdesc *zsdesc) +{ + struct zspage *zspage = get_zspage(zsdesc_page(zsdesc)); + + if (unlikely(ZsHugePage(zspage))) + return NULL; + + return zsdesc->next; +} + /** * obj_to_location - get (, ) from encoded object value * @obj: the encoded object value -- 2.41.0