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 AB7D9C3DA42 for ; Mon, 15 Jul 2024 01:33:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F2F506B0085; Sun, 14 Jul 2024 21:33:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EDEE36B0088; Sun, 14 Jul 2024 21:33:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DA6536B0089; Sun, 14 Jul 2024 21:33:14 -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 BC26E6B0085 for ; Sun, 14 Jul 2024 21:33:14 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 6B38EA4DEC for ; Mon, 15 Jul 2024 01:33:14 +0000 (UTC) X-FDA: 82340263908.30.4ECCB77 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) by imf20.hostedemail.com (Postfix) with ESMTP id 90AA81C001B for ; Mon, 15 Jul 2024 01:33:12 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="niYZXQS/"; spf=pass (imf20.hostedemail.com: domain of seakeel@gmail.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=seakeel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721007143; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=sQwnzP38ldU+pzsKvRMORy4OwiKshmlc+I/N7QR8eVw=; b=7tagsNHj5w1iRD+E5vhNYzb+4uCXugU8pWxhi/YRP+omfRPTu+9h8KdCSHFo2Zw/j/plXh 7s15rO7DUQh8QTXrl+SyzAWwPR76Rf4k3sZrwbZDuvRizR/C+NoNLh44OHgXJI9gwgA9hj XctxPB2QmrbqsevvVT2frGwUzyvxzy0= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="niYZXQS/"; spf=pass (imf20.hostedemail.com: domain of seakeel@gmail.com designates 209.85.214.169 as permitted sender) smtp.mailfrom=seakeel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721007143; a=rsa-sha256; cv=none; b=67DCJ5qq2Ebvd1zV2PssFB6wp5ZArH/mNBV3Opw39NLzuFUM7cRUoxtys+FRmqJ1oapCja eZLusGh48fNTPFFw26wq3ZQDHTvVYpWdMaGslRiAcpzqm2ywV2pvJiDBXKsNyNsldrsal2 6eq1W8jKvFlmoMHDN3wfCZGJhTgP2m4= Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-1fbda48631cso26568375ad.0 for ; Sun, 14 Jul 2024 18:33:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721007191; x=1721611991; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=sQwnzP38ldU+pzsKvRMORy4OwiKshmlc+I/N7QR8eVw=; b=niYZXQS/RwDiGPIKUzFRHYKixCSvdDT/DNfIucMWcb6vgWj/oWmDS37HabkKQme1du gK0xoknL3cnsPziLuwswoFCzQ59l+OSK1wTBNTb9cOuo3O/otljKwsVsEVxojcy4X5XJ ZC8IzBgDz2g1WQKcWx4DkqhsIYYhEi0ivE9Ej94xam2PRT80qeOZ1+CMaS3wDTJF0m4M Ff/vfiM0sNbyXfgy4kmiIOSsfSTxsDFfrWBDHiTYzK7Vs6DKeK7YGWZ5uvlHqkptEz6c gg0f0ObuZyPByHkXcxa5Ii44vHNxtDZqYeUvJ1rzXSE9Bi1IylEZqbgPlSR3y5CDnIOs nmGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721007191; x=1721611991; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=sQwnzP38ldU+pzsKvRMORy4OwiKshmlc+I/N7QR8eVw=; b=pidCNcyxmbo5jq0IxyOYSDyyKtLk1KrDMyoP7pJKAeI69mh7n/hTJwvvgKiO5hBSFC bvThbvK14X2lNC1HyJ9SrHOJhcx72RxzpheoIJDmuaalOm/SDiWclbB+CwhZgffhhOYo i3L8k/meLlDEHIBbLAUk5a1Gqy0r6ps403i+8lZKdYvhc7h7O/XNyDiJua6PJXkg3r8O 6SMJPVcVoZIzLA7XukAW9uv3ldCZQGxPdm/4E1cgv6cjwaS5gVDP0CBYTmnpHt02v5JY mApOyDeAFV4h7RojcKNvj0dktRbwnLVTqtWlxszi30IYueBNymS/vvV8Ow1D3roHZkNS rshA== X-Forwarded-Encrypted: i=1; AJvYcCUJONYziMi1tBrmdU45O0QYd8B3ILPMOcwyoPtRO1a4qJ5rf6TGGZSDKSys3UhNTltPl7uW+y2jhdcU+vILunEWqR0= X-Gm-Message-State: AOJu0YzeFV3okfgQTubxFfUMNGdfndCDDmKV1w7eRoRuR35NMP87wv8H pdkyjkgkJilmr1av/pnYO4Yqfa0h4efF0IBZdgDHlpBgW472Ujh/ X-Google-Smtp-Source: AGHT+IGQSf1sujxfjmUCB8gGxHXz6zSqCUQIGVvQrI5FsxLcbrEG9wdkFJLYTUrk7aJFkwqLluXs5Q== X-Received: by 2002:a17:903:234e:b0:1f9:fe14:592f with SMTP id d9443c01a7336-1fbefb911f8mr148908895ad.17.1721007191302; Sun, 14 Jul 2024 18:33:11 -0700 (PDT) Received: from [192.168.255.10] ([43.132.141.24]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1fc0bc2888csm29954665ad.146.2024.07.14.18.33.08 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 14 Jul 2024 18:33:10 -0700 (PDT) Message-ID: <8007538a-5680-4e43-b204-21ce62943eee@gmail.com> Date: Mon, 15 Jul 2024 09:33:06 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 00/20] mm/zsmalloc: add zpdesc memory descriptor for zswap.zpool To: 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 References: <20240708063344.1096626-1-alexs@kernel.org> Content-Language: en-US From: Alex Shi In-Reply-To: <20240708063344.1096626-1-alexs@kernel.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 90AA81C001B X-Stat-Signature: 53pi7rdegm5s8utbgbj5zoeiqxiwjqr4 X-Rspam-User: X-HE-Tag: 1721007192-314623 X-HE-Meta: U2FsdGVkX18h3Y+d9KnZuNPi7TKAUk6w274khBYB+noiNenNSP8KN/xyWfKzilv4lK1dNiVcjvjCj7RZQwuqjpkNez6o95hLSVG1HBtkEzOmDXKjuIRXe+u3bQSaVm3dQoVEt0xa205+wCfyxvZRIh0yuYxnF9fLKNLR4HNEX9bawP5a/3WiKwpJjb57R1bfN9AZ760YxYrU97jW/DrWd4osHOf3T69PefAG4sA0TW8BLMoL6+muYQuEOBWUa12zc0PPw0c8wun1bhIbqpSvy+dM3uA08zbd3+m+c7EOBkbeTJ4J9ELw+SN/ydu5o1JSNMG586bSLni60K+dKL4Nz2ff+ljNO+qUwYNGZ7gdyn4F6i6tmnROxjif7c0BaxejOu1CxJSxw2ZhuMb6eUrUupizFtqav16GIMQU1gi7g7YRskNWbAZFUKnp8filzpiaUeiE6gbufDyKlmxpl1KeXwOG3umqB95da/Q61XHfYK5lDwVNsGSxE8Om0b6Go7PVz2B0HT/uImsoE9QzphoZHTtiZNXZmQ4Dnw5I/C4SuzOi+Qw9khOuhuWvEqAcB9V2xtspPQa0X2/YN1Q+R9QljK/jYFDkVsMZ8jJti1sBVpzNLuoRr7xjh/rluCBga6ykeTXpptOzxuo7E7XwK3ntRHphMCgwL3BX2aZl/lrfrGdZJrtin85qUziypQKWJVnOK06EX80TNXCIP/4uB3GGKOl9xR4oWJjHKjRyajtnVr6rb07yI+0aSLg/KMF7xLizyxpZtYvkCIxbKCUjggZovTD8DGQDzTCI0TogVXt5QAE51BPpaqXKUW+7VBEArW9fdTMgPFHv3A6Y7K75Son3PZz3q9iQCrxhXEla8K0kx6PnaZSuqN8HsF7FqN1E7gKYq6gfdos+n09qBraZFFG0hh3mRqQmkxzdNopdC4UFT+DbCFScfyCleJOdURXP5ExhtPg4/ie3QC2fIsLOw0R KaRqFtb6 74BKuWc/QdcM41TxwRB1KRoVr8K+SAATfsKPQItS/nXAC44Npdvyzxld3OvApl0WL+aI2Pj8RNrgMyJ55bG2so/i8SK997+5YibLqOfuuNqEEBJf0OYioyVj+ZJoN/9QQFkEVaLMU7DCgu0lizVEseSDWjYUBBf6zZrjKO5Wpwail5ejFBVH8Q9rvMjAjdJbTsOrmpeBoj7DI8bLd5YXS9DtyCkT+wZ5CP68AD075K08Aj/DC4ouEbBrlMqzglcZI0aAEnHpq2BwotKXoin7abzt/PNwEIAap3bGLLgG7C/6j1YMlUP3h1S9k6ewx4kNWvJms4IxC18xOWXtR2doUjINT2ZqSsPJdAu4ZkJ/JS0yQO5RGi4+M5zHnnx1mRb3PncRzHwWWXnBhyJ4NHXL1OkWOwqkyks1EPl/XejxSNfdQVJCWR0PezRytsXRCrea77Dqi34A9YYPwI3XF4P9jddE/48YC6ytgXTuqqI5pfqdqVPgpGllwv6nKBt8PMek3KdYmKXj0PqeoEGU8RdOhJyOgOhbHmrPFMdrBTzo34p81Lg/MIUAOwnzqr/nmQVCgyQwk X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, 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 7/8/24 2:33 PM, alexs@kernel.org wrote: > From: Alex Shi (Tencent) > > According to Metthew's plan, the page descriptor will be replace by a 8 > bytes mem_desc on destination purpose. > https://lore.kernel.org/lkml/YvV1KTyzZ+Jrtj9x@casper.infradead.org/ > > Here is a implement on zsmalloc to replace page descriptor by 'zpdesc', > which is still overlay on struct page now. but it's a step move forward > above destination. > > To name the struct zpdesc instead of zsdesc, since there are still 3 > zpools under zswap: zbud, z3fold, zsmalloc for now(z3fold maybe removed > soon), and we could easyly extend it to other zswap.zpool in needs. > > For all zswap.zpools, they are all using single page since often used > under memory pressure. So the conversion via folio series helper is > better than page's for compound_head check saving. > > For now, all zpools are using some page struct members, like page.flags > for PG_private/PG_locked. and list_head lru, page.mapping for page migration. > > This patachset does not increase the descriptor size nor introduce any > functional changes, and could save about 122Kbytes zsmalloc.o size. > > Thanks > Alex > Any comments for this patchset? Thanks Alex > --- > v3->v2: > - Fix LKP reported build issue > - Update the Usage of struct zpdesc fields. > - Rebase onto latest mm-unstable commit 2073cda629a4 > > v1->v2: > - Take Yosry and Yoo's suggestion to add more members in zpdesc, > - Rebase on latest mm-unstable commit 31334cf98dbd > --- > > Alex Shi (Tencent) (9): > mm/zsmalloc: add zpdesc memory descriptor for zswap.zpool > mm/zsmalloc: use zpdesc in trylock_zspage/lock_zspage > mm/zsmalloc: convert create_page_chain() and its users to use zpdesc > mm/zsmalloc: rename reset_page to reset_zpdesc and use zpdesc in it > mm/zsmalloc: convert SetZsPageMovable and remove unused funcs > mm/zsmalloc: convert get/set_first_obj_offset() to take zpdesc > mm/zsmalloc: introduce __zpdesc_clear_movable > mm/zsmalloc: introduce __zpdesc_clear_zsmalloc > mm/zsmalloc: introduce __zpdesc_set_zsmalloc() > > Hyeonggon Yoo (11): > mm/zsmalloc: convert __zs_map_object/__zs_unmap_object to use zpdesc > mm/zsmalloc: add and use pfn/zpdesc seeking funcs > mm/zsmalloc: convert obj_malloc() to use zpdesc > mm/zsmalloc: convert obj_allocated() and related helpers to use zpdesc > mm/zsmalloc: convert init_zspage() to use zpdesc > mm/zsmalloc: convert obj_to_page() and zs_free() to use zpdesc > mm/zsmalloc: add zpdesc_is_isolated/zpdesc_zone helper for > zs_page_migrate > mm/zsmalloc: convert __free_zspage() to use zdsesc > mm/zsmalloc: convert location_to_obj() to take zpdesc > mm/zsmalloc: convert migrate_zspage() to use zpdesc > mm/zsmalloc: convert get_zspage() to take zpdesc > > mm/zpdesc.h | 146 ++++++++++++++++ > mm/zsmalloc.c | 460 +++++++++++++++++++++++++++----------------------- > 2 files changed, 398 insertions(+), 208 deletions(-) > create mode 100644 mm/zpdesc.h >