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 71558C02193 for ; Wed, 29 Jan 2025 13:18:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B6638280057; Wed, 29 Jan 2025 08:18:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B1625280055; Wed, 29 Jan 2025 08:18:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9DDC3280057; Wed, 29 Jan 2025 08:18:21 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 8076E280055 for ; Wed, 29 Jan 2025 08:18:21 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 1AC3280D45 for ; Wed, 29 Jan 2025 13:18:01 +0000 (UTC) X-FDA: 83060542362.28.ED459BA Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) by imf08.hostedemail.com (Postfix) with ESMTP id 2C294160010 for ; Wed, 29 Jan 2025 13:17:58 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="d9w4s5+/"; spf=pass (imf08.hostedemail.com: domain of chao.shun.cheng.tw@gmail.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=chao.shun.cheng.tw@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=1738156679; 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=EN2j19Gze47EGky54lLqaxbHUjo0ZeEgkIdzOu/+oXw=; b=PJRqhbUZysjat92/4m+7HggDRQuB2XQd2VHFMabWgdr84fCgYnxsFkabeThOKdb0pM18Eq gfP9zcgsw1QMoinGM+Cgc4aH5JwU12ouJ4DFA+26Z2WxORXJlsDPsQVMbcHXWVFDNqIhTY UyYVsSVfJecAGN9L+jzIimk2719SrB4= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="d9w4s5+/"; spf=pass (imf08.hostedemail.com: domain of chao.shun.cheng.tw@gmail.com designates 209.85.216.42 as permitted sender) smtp.mailfrom=chao.shun.cheng.tw@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738156679; a=rsa-sha256; cv=none; b=bo2VYsHQMFQJm6tPp1SvcwOHtYbw0SpRo7zUAcf8WLZtQtu6slxDohILg0xW1OTokXfUVu muBWTexNZJK9GJ7CrJiu4DolA33sOq0pS7PMdf2b3E9b9YXIc88HYIfEUToee7XSdSLudo lRrukLroyhPVWaYp8MwG7FdK7KfLn5s= Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-2ef28f07dbaso9476380a91.2 for ; Wed, 29 Jan 2025 05:17:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738156678; x=1738761478; darn=kvack.org; 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=EN2j19Gze47EGky54lLqaxbHUjo0ZeEgkIdzOu/+oXw=; b=d9w4s5+/xdCVWIqIqRfrZwHkYfxaZkdvgCuw7URssExEleausVBCRkM8G8lFbBR37u ZOAcNNKdoVQ+2G06BJyExrNDW7OoKdPNBlSDOZHTqPU6+K7gxB1fT49dX4Xi2h54S5tg revSFhgOJPOMoQbN5AuvAAh4j6Onwrr9tAd2H4ODEWbxTIERfCWzSGuzzc9oOOBycLdu XdNVpSPCY8RaFwIsA2GwBbbwNqKVQYfkk2c1caEgjzgLZOPBkjbMZqFm2IITQ3GEDc1D TXMucrKdTAmuFdoAUtDYasnPstOWgysQ82WmpZLCRYZZ0D//uegF7uFmaYKivFgSMWXq LcXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738156678; x=1738761478; 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=EN2j19Gze47EGky54lLqaxbHUjo0ZeEgkIdzOu/+oXw=; b=BGK6U6gIPwXqdQZEIXU9lXKRpyByvcNTEDf1FX5bJdkTApCNOwkZ2RKsBIFuqPlJm7 M5FUE27+qZBlNAXIzHREJiwq9XNFlnG9gRDhxRPEN2hpi0kSvgSZCLpx++xeVzMAWBis s7eSlDBmBUqGQolXYSwMaREiDmaj419Ye/jg1Txkgleatezacc71hl0pQpEzVnbvRgcP OPL4QZEpZN/n4JJUrfGUPQBN/TN2iJcWkedixrDgi3Nl8RdXWOLJkFy62avUgxjjr6kE ANq2vftJyv4z08LNEchnYCWEkoKpjpnTGMPium4R4gq8Q12EYiM802UYf5Cxy+T3DjLg ZuUw== X-Forwarded-Encrypted: i=1; AJvYcCVioHHmIG9lTjxiWtsahy+y82h9A6v8riiVnsAuOwgk5ojEDIJUs6rafXAG2T5dyr6fVL9ry1SFRQ==@kvack.org X-Gm-Message-State: AOJu0YwGSk+e+RwwZ+tB2TfYbzIOpkcMQQbvmi0LVzPhW2Ez1B/j4zHV TtQ9PUjeS0Yl6O7tCdr/slm5+GoT3thxueA5hbR4WmzysnO89n82 X-Gm-Gg: ASbGncuKIjtG8/RfFZjse/9SRIEdaTHVJGydEWvTglvdTBYtbIsGrc+Z6maY51s/CCX 9BFTqhJyfTfUHMvo14aoziAihSMOpTH1bo9RYhRiD7MxdTw/AiOteh1HumR1CHsr1lSrcawF049 ts7adDOeE92TqLXyl4EqmHR4Sv1TtbbcqJg+CPmnlc0gxPN6oGPv0xyx1THduImHCn0BMjmtOUM csGnM/soMQC/g1/RmnosoqnXT9MnEb902oIlRh7/p/lt7i2raBafxEflNEvVSkCTmtItED3Kf5t mRhLHcccRQxm6OeJmkfyQHNYHdPTiFgIO8ClfAS5I+yLK7EOk8xn+P9KBq3gEw== X-Google-Smtp-Source: AGHT+IF1ge6Xdo8rgNAav1pyx/40GOR4bJBaR3SLRpLWfuvZ28Zrxx+75bl1SAW7PT7lEJ2S/Li6WA== X-Received: by 2002:a17:90b:4d06:b0:2ee:ab29:1a57 with SMTP id 98e67ed59e1d1-2f83abb3553mr4731322a91.2.1738156677747; Wed, 29 Jan 2025 05:17:57 -0800 (PST) Received: from mm2dtv09.. (60-251-198-229.hinet-ip.hinet.net. [60.251.198.229]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2f83be35850sm1637439a91.48.2025.01.29.05.17.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 05:17:57 -0800 (PST) From: Kenny Cheng To: senozhatsky@chromium.org Cc: akpm@linux-foundation.org, c.s.cheng@realtek.com, chao.shun.cheng.tw@gmail.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, minchan@kernel.org, yosry.ahmed@linux.dev Subject: Re: [PATCH v2] zsmalloc: Fix address alignment in zspage for performance improvement Date: Wed, 29 Jan 2025 21:17:23 +0800 Message-Id: <20250129131723.3761142-1-chao.shun.cheng.tw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2C294160010 X-Stat-Signature: t78xuytftrtrt6kxwds8bpughdqwakmt X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1738156678-380328 X-HE-Meta: U2FsdGVkX18ZGpFJijsS/VSSYpsteU5Z7lhZmZ3hWp1XsxDgEptxIVcg/4DkjkL5HgR9aiEUWsA0zq4s28PS/cCdtUGIjIvT5emsA3IMB67TQNJ61CDaZ6n4mtjMf/uwgA58ic4kLSVv4my+gp86gjv9AYzyGSX0P0rijIQ3t6fGte060/QeZ45M9yfPvFedLWDTl1LfkxR32eilEltV5dubeM2pkwe0nuZUHewHWz91dYopnMcNFwrlvqRFVYs/wNdUn/LkSDphtjyqRV4L6thXDfqH1aVyHtIYELHI0amSMXNAiMfbv6OmC+/2O21bDNGtbxOhY+22SwI7ORTAwFvpARqqudayDl0MjcTIVneGXbvZ8iAjbRA2BExT1ckR6PV/D9n0xgQLMsBQXWa3oKyu+vRICDWsZdqgsQQmhK6i8ell67o37IJHTr59TINIhmac4o36kv7i6FAOuePb493kH3ECAcHiQ1XYBdaLXuCAlmx6wVUdQu7DeuHOoa6tOHHrLgG8ukfqvLj5ELPCLLR6GW0w3S4U9nvYZ7sU3ZRLM54Di43j7P41JqpGvitQh6guChR2ymYNYGfXoOj7Cu7YkyfAn5hFdgiHiAhd9VzuORFtj4VXB08/1+5N4Mu4q0n5j4coOAPEwRvYp7K9MTOGITwsqofBFyYZ0ZKMeeEHTcmd4VUES2AXRo79qttlpQZnmK96uwHp5DVrgQUGkC5KGHiKDYKLDzcdCoakeJDCESJk0nAl5jcJZKZI7eKx2f09aXkDA0jg8JPOd8kebFCK9tjcSzNSlZxA+Kq4SdjZkDFAv5ke73TB3YgCvLUOlzxpLhxriAJi49bnLUtuRcuJLO3Ph0j4ZKAZS8vH3v6Z1tedc3D/hg7AGS+ZLnBgUnX5ulOcHzpXF4D2nI40ikGBf/b5lS3EFKPuet+pJ0rzyWmJ/OMFMt7WdFcF0sAYxQpCyTJwjB6hTo/4PkT 9j4mS3Pw fbxdbAUDqoKxXk9XNpaJkjQ8oVPmVoao8Iyi9AmYbei3cH5XD0U8mxU7vpvbwyIeQ7hHttQ+M1zpzDwgUopspzZK5SUVHq16SniHgH1T7MpAQiODVTcaetaTqs5J4V8F8yys78wyjOg6gtYzRgjQTRo2CIWV3+y/3UGUvxZ8oMlyaZNiiqB0pimQnhHGoJKYmGRx+M/Z1FSZSvN66szZnNArWj5lnWfRswopJnbDe65bPWcuuJx6COqstY4yHuVYiUdQ9DY4Okg6rg/2UY4jCib5xBHYlpfgMbvpbFbvlghjGdhWRju54TX9Xz/SUXFSP5XHAds/6GyWok2gA7cLUWJPN3e9Nge/QZ+A+BM5lfW9gbbGnnt2tmMghe7M9xKPduuKy5jR2VXQDMiuHf9xGRWU5roLb7b0t+1fvm6YOVsUTCEOXezeUY1a5b55rgV0zUeQjPPD/9Y4pU8s= X-Bogosity: Ham, tests=bogofilter, spamicity=0.002272, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: > Hmm, I don't know. If we change zsmalloc to make some H/W happy, how > do we make sure that something that is good for Realtek is not "bad" > for some other H/W? No, this patch would not have any impact on other HW. This patch only changes the position of "link struct" from head to tail in an object. Example: A 32-bit system, using a zspage with a class size of 32 bytes and a 4K page system. In this case, the address is obtained from zs_map_object if zsmalloc is used with this zspage. Without this patch: The address is aligned to 4 bytes. The alignment size is always the same as the size of the "link struct." With this patch: The address is aligned to 32 bytes. The alignment size can be controlled by the class size. For the SW zram algorithm, this patch has no effect. For the HW zram algorithm, which requires 4-byte alignment, this patch has no effect either. However, for the HW zram algorithm that requires more than 4-byte alignment, this patch can improve zram performance if the class size is aligned with the required size. > I'm very unsure about having "vendor-specific" (by the way, is that > out-of-tree compression/decompression driver?) changes in zsmalloc. Yes, it is an out-of-tree driver. It is common compression/decompression algorithm such as lz4, zstd, and so on. The only difference is that the implementation is based on in-house designed HW.