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 4E0C3C0015E for ; Thu, 3 Aug 2023 09:34:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C302A280224; Thu, 3 Aug 2023 05:34:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BE20F2801EB; Thu, 3 Aug 2023 05:34:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ACF74280224; Thu, 3 Aug 2023 05:34:56 -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 9A2502801EB for ; Thu, 3 Aug 2023 05:34:56 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 6B082B2B2A for ; Thu, 3 Aug 2023 09:34:56 +0000 (UTC) X-FDA: 81082284192.20.7B9C325 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by imf02.hostedemail.com (Postfix) with ESMTP id 87C2580015 for ; Thu, 3 Aug 2023 09:34:53 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=none; spf=pass (imf02.hostedemail.com: domain of ruanjinjie@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=ruanjinjie@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691055294; 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=r2C4EfXoJWYPUh7QSf/eRTTRkCmv5JUUMGaO0Er57I8=; b=yb5LqWtbqmGIcl5dCq1AZlljD7Q0byXtacWQIOgRtYeEZmSuaKKPJFnPRVFrpOqN6PV2cQ 521FZGF4tTaGc6zL29hrm1kEZmnYpQQoEL1YIXjtRtInfZqpeLD7WKETzbWM9rvxTVAGRu t/mXMXW6OT+X8CFNjl5j051c+UOH2wY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691055294; a=rsa-sha256; cv=none; b=WXdt6UilrhvBC3x5eMrqZe4ZKpz/h4y2LYF7U5f5iFslMrwk6Sf1FmuoIjXJ4MBJlVvsYZ M+Qmzw7wu9EbKbEV6GmI2qztTqpG7vRHp5Ye1u7d+pY90HKY7Agx43sgwxdc6xrHG6GONe SyH2DliC49LPvjegooHbL134BftadAw= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=none; spf=pass (imf02.hostedemail.com: domain of ruanjinjie@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=ruanjinjie@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com Received: from kwepemi500008.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4RGkDn1qXqzrS9x; Thu, 3 Aug 2023 17:33:45 +0800 (CST) Received: from [10.67.109.254] (10.67.109.254) by kwepemi500008.china.huawei.com (7.221.188.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 3 Aug 2023 17:34:48 +0800 Message-ID: Date: Thu, 3 Aug 2023 17:34:48 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.2.0 Subject: Re: [PATCH -next] mm: zswap: use helper function put_z3fold_locked() Content-Language: en-US To: Vitaly Wool CC: , Miaohe Lin , Andrew Morton References: <20230803070820.3775663-1-ruanjinjie@huawei.com> From: Ruan Jinjie In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [10.67.109.254] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To kwepemi500008.china.huawei.com (7.221.188.139) X-CFilter-Loop: Reflected X-Rspamd-Queue-Id: 87C2580015 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: ygj7frcbw38fcmgiow1tepsr17qbo3sp X-HE-Tag: 1691055293-579187 X-HE-Meta: U2FsdGVkX1+V3EsIhd+MsVA8J885gK+sXXrXjdKjP2bqv1/gW1GeJ+9fd+8nCEuoHEs90BMuDMxI4n7Nct8DZO3/mArAXIVguU7FbeVcGCam8yQ2hEQU9fBJ66zr7dXklHMnPgY5lFoLZ4rmrIHVR8qe22T+URAvLNQai6KOKJLdzHsGU3WG6+PFMdqZYvrNJQiB54AlAE8SE8obj0BEevOt6xMjrq1W4kdGkbB/WQYzSlOoM2ohuwAsdHBkeGf8yIVkXDgm2sm2B8BKyTBI9L1s+/hQLRoOJnh9SpGxCrG1DFgPXRahIPlOhP43GPCWzSylXRDJjXAwDv7v2ux7YdIKJRTA2GmwrktFnQ+9vb67C79jGniRuMzvreo6qxImyVKt0yjhFllHod0CQNcKSxQoiibT/CW/oRY9HQPIdtp7m+0kU80epvMD57q8GWnbbq/WveU7H37qMPF8q4CCx5XzdpVWFcTVn2LnpnLev9YGoOKwgQSfjEv0OyNgP1FoM2pYA4wHxF8YNFfX5PdMktgp2HiwLlPRJM9XeBuSZvipKj44p/T+2qmWz+FinS+iQRxTtO8uVhulKXwlLuVsCAj8DLbf/Or3E0WtGhL19ywDQuTOtwgDtoWb1TLnkuTLh05992dWdZF71U1+lavlDUyQJV/E4hYi8RcnwT7mSgZp5Zcd2y7MSlCrIH58a6kra3Wh2PI6RwcKQoRLLoAZW/mgEK+asa62AVDscazShQiZbgN5q6IzzE7t6DRb7XyOnNGQskT3W2gP84gSaD2n5idHxYwVcZNY7+lhitFt7RVpDK1FH6p0+lvq3uW8guMxz0GSZBnh/8a5gupD8c5njr1xg1hNxf5S73fv0uQVXdIOVbtH++xg3whfKN5nXqiarEmUp/C/Gl+8IWlHntxqSgLsyyRgmRVvXMqj8bqargYK/5j6+f04x70l3qNcD3PS0wPlY0v+fBwrChtAGou Sy574Oyl CebxH2IXsFzd/x5vsGljuXZah9d+Jvg6V7mGeWI15yw6GDGt+mfNvYlhAYxo/YxmlCGz/osZfKuacRJrLtYbcxU4Q7H+SRv77v+GHiFa4YMzMe1s67j9i3S/NjybVG1Yy0wF9rJqmgP9+yqafO05dMGNTdLDJ73EiMPgRAducXIet0RHSt98n1dU+F3/Nzon3BU6+NO2UP4ZlsM4= 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: On 2023/8/3 16:11, Vitaly Wool wrote: > On Thu, Aug 3, 2023 at 9:09 AM Ruan Jinjie wrote: >> >> This code is already duplicated six times, use helper function >> put_z3fold_locked() to release z3fold page instead of open code it >> to help improve code readability a bit. No functional change involved. >> >> Signed-off-by: Ruan Jinjie > > Sure, just fix the subject please. It's not zswap :) Ok, thank you very much! > > ~Vitaly > >> --- >> mm/z3fold.c | 18 +++++++++++------- >> 1 file changed, 11 insertions(+), 7 deletions(-) >> >> diff --git a/mm/z3fold.c b/mm/z3fold.c >> index e84de91ecccb..0b483de83d95 100644 >> --- a/mm/z3fold.c >> +++ b/mm/z3fold.c >> @@ -480,6 +480,11 @@ static void release_z3fold_page_locked_list(struct kref *ref) >> __release_z3fold_page(zhdr, true); >> } >> >> +static inline int put_z3fold_locked(struct z3fold_header *zhdr) >> +{ >> + return kref_put(&zhdr->refcount, release_z3fold_page_locked); >> +} >> + >> static void free_pages_work(struct work_struct *w) >> { >> struct z3fold_pool *pool = container_of(w, struct z3fold_pool, work); >> @@ -666,7 +671,7 @@ static struct z3fold_header *compact_single_buddy(struct z3fold_header *zhdr) >> return new_zhdr; >> >> out_fail: >> - if (new_zhdr && !kref_put(&new_zhdr->refcount, release_z3fold_page_locked)) { >> + if (new_zhdr && !put_z3fold_locked(new_zhdr)) { >> add_to_unbuddied(pool, new_zhdr); >> z3fold_page_unlock(new_zhdr); >> } >> @@ -741,7 +746,7 @@ static void do_compact_page(struct z3fold_header *zhdr, bool locked) >> list_del_init(&zhdr->buddy); >> spin_unlock(&pool->lock); >> >> - if (kref_put(&zhdr->refcount, release_z3fold_page_locked)) >> + if (put_z3fold_locked(zhdr)) >> return; >> >> if (test_bit(PAGE_STALE, &page->private) || >> @@ -752,7 +757,7 @@ static void do_compact_page(struct z3fold_header *zhdr, bool locked) >> >> if (!zhdr->foreign_handles && buddy_single(zhdr) && >> zhdr->mapped_count == 0 && compact_single_buddy(zhdr)) { >> - if (!kref_put(&zhdr->refcount, release_z3fold_page_locked)) { >> + if (!put_z3fold_locked(zhdr)) { >> clear_bit(PAGE_CLAIMED, &page->private); >> z3fold_page_unlock(zhdr); >> } >> @@ -878,7 +883,7 @@ static inline struct z3fold_header *__z3fold_alloc(struct z3fold_pool *pool, >> return zhdr; >> >> out_fail: >> - if (!kref_put(&zhdr->refcount, release_z3fold_page_locked)) { >> + if (!put_z3fold_locked(zhdr)) { >> add_to_unbuddied(pool, zhdr); >> z3fold_page_unlock(zhdr); >> } >> @@ -1012,8 +1017,7 @@ static int z3fold_alloc(struct z3fold_pool *pool, size_t size, gfp_t gfp, >> if (zhdr) { >> bud = get_free_buddy(zhdr, chunks); >> if (bud == HEADLESS) { >> - if (!kref_put(&zhdr->refcount, >> - release_z3fold_page_locked)) >> + if (!put_z3fold_locked(zhdr)) >> z3fold_page_unlock(zhdr); >> pr_err("No free chunks in unbuddied\n"); >> WARN_ON(1); >> @@ -1346,7 +1350,7 @@ static void z3fold_page_putback(struct page *page) >> if (!list_empty(&zhdr->buddy)) >> list_del_init(&zhdr->buddy); >> INIT_LIST_HEAD(&page->lru); >> - if (kref_put(&zhdr->refcount, release_z3fold_page_locked)) >> + if (put_z3fold_locked(zhdr)) >> return; >> if (list_empty(&zhdr->buddy)) >> add_to_unbuddied(pool, zhdr); >> -- >> 2.34.1 >>