Message ID | 20231213-zswap-dstmem-v4-0-f228b059dd89@bytedance.com (mailing list archive) |
---|---|
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 D2079C46CD3 for <linux-mm@archiver.kernel.org>; Tue, 26 Dec 2023 15:54:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1D50C6B0072; Tue, 26 Dec 2023 10:54:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 185336B0074; Tue, 26 Dec 2023 10:54:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0741F6B0075; Tue, 26 Dec 2023 10:54:51 -0500 (EST) 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 EA36B6B0072 for <linux-mm@kvack.org>; Tue, 26 Dec 2023 10:54:50 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id C49A6A1052 for <linux-mm@kvack.org>; Tue, 26 Dec 2023 15:54:50 +0000 (UTC) X-FDA: 81609417540.20.DF4A8F0 Received: from out-180.mta0.migadu.com (out-180.mta0.migadu.com [91.218.175.180]) by imf15.hostedemail.com (Postfix) with ESMTP id 78350A001A for <linux-mm@kvack.org>; Tue, 26 Dec 2023 15:54:48 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=none; spf=pass (imf15.hostedemail.com: domain of chengming.zhou@linux.dev designates 91.218.175.180 as permitted sender) smtp.mailfrom=chengming.zhou@linux.dev; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=bytedance.com (policy=quarantine) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1703606089; 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: references; bh=erIcs5w/+7NKxS+v1vPhy9NXwQ5ijhxwZFY1V1sNlMU=; b=Hy99WTXYF5R9afDI2ZfY7mlhOJYNXPySTHdC6df7n6fCmazaiT5IEQeNMt0rG97J2MEMcJ 6PnnMVObBjgBset//UBhwsREMUCohzgVN5jQLbtOXddad8INMZ7SxsmD+Gv6W7+syusCIv xfUymj5KJACWwpuz8ebnrdZ7mqzsEsU= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1703606089; a=rsa-sha256; cv=none; b=7PA7hRMJvNMrhX7SX1aos0+Uf4XA0mSuleere0Y+FALW1NIUXBIK5QkCKutRbKT9pT49Ju f2s0PPeRQy3QEWshfTiAnt5RSDDLJG4e0qHusjmCKJoVnjFebpV8Bhj+HbrjtHq4HTWNq8 M4bBt7gccUHf2MDP9mFzh1OrlmCQ6Wc= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=none; spf=pass (imf15.hostedemail.com: domain of chengming.zhou@linux.dev designates 91.218.175.180 as permitted sender) smtp.mailfrom=chengming.zhou@linux.dev; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=bytedance.com (policy=quarantine) Subject: [PATCH v4 0/6] mm/zswap: dstmem reuse optimizations and cleanups MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-b4-tracking: H4sIAB/3imUC/33NywrCMBAF0F8pWRvJq4+48j/ExTQZbcC2ktRILf13B5eiXQ33wj2zsIQxYGKHYm ERc0hhHCiYXcFcB8MVefCUmRJKSyU1f6Un3LlPU489941qLmWltdCe0aSFhLyNMLiORsPjdqOyC2ka 4/x5kSWd0x8tSy54Y6uawMp6YY7tPKEnDfdu7NmZsKy2AEWAByi9BTQS6l+A3gI0AQbBCdtagw6/gX Vd31Uw7PQzAQAA X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Chengming Zhou <zhouchengming@bytedance.com> Date: Tue, 26 Dec 2023 15:54:07 +0000 Message-Id: <20231213-zswap-dstmem-v4-0-f228b059dd89@bytedance.com> To: Andrew Morton <akpm@linux-foundation.org>, Seth Jennings <sjenning@redhat.com>, Johannes Weiner <hannes@cmpxchg.org>, Vitaly Wool <vitaly.wool@konsulko.com>, Nhat Pham <nphamcs@gmail.com>, Chris Li <chriscli@google.com>, Yosry Ahmed <yosryahmed@google.com>, Dan Streetman <ddstreet@ieee.org> Cc: linux-kernel@vger.kernel.org, Chengming Zhou <zhouchengming@bytedance.com>, linux-mm@kvack.org, Nhat Pham <nphamcs@gmail.com>, Yosry Ahmed <yosryahmed@google.com>, Chris Li <chrisl@kernel.org> X-Developer-Signature: v=1; a=ed25519-sha256; t=1703606082; l=2468; i=zhouchengming@bytedance.com; s=20231204; h=from:subject:message-id; bh=YQTxvUwsZzqyH52o9J1hnYzVus+yan/sec/bpXl9qAA=; b=vtscZKZGioQki3CX7H/cGeD1VGNfoxL3URCIQMIxd7QzKGd3qrywLLvUUXdtpdCeOU9lmh3Ng d+07cNETScAA7d8uf9HF1edMEzA2Rk8z++NIbW4xC6ZQstVMAFOSu1Q X-Developer-Key: i=zhouchengming@bytedance.com; a=ed25519; pk=xFTmRtMG3vELGJBUiml7OYNdM393WOMv0iWWeQEVVdA= X-Migadu-Flow: FLOW_OUT X-Stat-Signature: qd591mo6tzoh5nkw7okkr46i5gbix891 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 78350A001A X-Rspam-User: X-Rspamd-Pre-Result: action=add header; module=dmarc; Action set by DMARC X-Rspam: Yes X-HE-Tag: 1703606088-296533 X-HE-Meta: U2FsdGVkX1/tT08vMfEUxgBwsnb+Y3MUG18fL+dAW/u+LsMJ6nz6BNhP4/n80gOhp4ua4/fabap77aiRHicDpkSDArtHZtrLWnjJyGreZ+XDR+vxus3EU1jVH+B6i1M5SoCETPAYKWhVY/0NSKKysVnAcaQopkjxjxw/5TtECVYRabFaxGkHbPvvC/i6gxRy3q9pNW3w6nQJacBsefgXAUpxIUvdM7QXh2xN64fqIcPFIm/qAG1xUJ7C4jhto22oUQaB4KOjFy/YnavSCB7R6Tb/z+Vkts453Xp4amdziI/2feqsUx7yHAwYICKEvLJlxBMUBgdIHh4zc7xS8H2Yyt6UPP8yuHqmpubuF8PEs7Yd/0NATVHRyQG7DcwK1f6WXzqlpXPjkmL0CLN5hdSgwSVCPqv97mAaCeA+sDRdzwhjUwgGJZP5tC4X/kiKl2puT7Yu4sRERTmninUIGCXQ5w34GKxpd12X0cj7T3DGddI4HyUTza0wakDLaFELmb/gM1tMX3wEVeMjsGE+DEW1cZDr5bFAqDoi4O0UxmmcWkfEm8j7MLJi7JDcaKllq+l9pLuccE1GA7dbpR17LvRWtetPmQuOxE3roOzyipVNJtJ8k03kq2iNLGMv5+G90V6Xvy/dQgrIFUrvUKagZBFUujzLUv5o6DHX9TxMwdzyAZOt7ZQomRhIZh5fVUMjtzFQP6rUd/i2iSvbFh6pfJdT6cHCso07qsOAiym88aCvMJ4ix/Hg+tLABUptEbKKdqG/GivpJrPyVTagpRfp/tvcjgrp0MbuhYxBzIa7ZIJOVWipeE1AJmdPb+XckyftA4j/p6g+YeNM76we84VGYKYDEZzRY7PVLn64NO27RroRceL69NnvaOP6E0OIh7dbw25i6KHNrbgcDyhnP1Gxb8E653JFOk8IvsgrrzHOUsWmFXwmTx2MKAV2qlEilgFAyHVnODUMi0DRMvOZuo6GtNd DGtmuCF8 UNZLT6UMjwxFR6cO3n2cOCwRTedOeKhhE+tocI1webWwYDT+5Puk10O/JiMSEYVyAQ3414d1GDfc/AO1LnqrWpHfH0GDmUk333P/nhLRmuoJgYrX0J5ZIcy4iIThyuP2yRTCCuOtAGCtSRh6REKiQoU3woQqrlf1WqcXW9+M2FpKYRY10H+gOHejYCQNIpzlVGfjqR5nGvunvKrnZdJRihvTkT0esj2bivyB1BBxD9+2kGEzGj3CeRWvC95uEXpVOuTuY4gAFWbkjv0NBkIKuukfrpGk7qbJSBmBvjUSsL8Qa0vn8c00i7QhP5rx4wBfoZZaBVzhQsBAN9naAJZfZjDCzXqHhr9aoOYG1OfQkboTA9VxDrjABOkDJyuJ+tleCdIzV/cuQDpMltLrvgsMp0YjK+zHdLv46+5gL 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: <linux-mm.kvack.org> List-Subscribe: <mailto:majordomo@kvack.org> List-Unsubscribe: <mailto:majordomo@kvack.org> |
Series |
mm/zswap: dstmem reuse optimizations and cleanups
|
expand
|
Hi everyone, Changes in v4: - Collect Reviewed-by and Acked-by tags. - Fold in the comment fix in zswap_writeback_entry() from Yosry Ahmed. - Add patch to change per-cpu mutex and dstmem to per-acomp_ctx. - Just rename crypto_acomp_ctx->dstmem field to buffer. - Link to v3: https://lore.kernel.org/r/20231213-zswap-dstmem-v3-0-4eac09b94ece@bytedance.com Changes in v3: - Collect Reviewed-by tag. - Drop the __zswap_store() refactoring part. - Link to v2: https://lore.kernel.org/r/20231213-zswap-dstmem-v2-0-daa5d9ae41a7@bytedance.com Changes in v2: - Add more changelog and test data about changing dstmem to one page. - Reorder patches to put dstmem reusing and __zswap_load() refactoring together, still refactor after dstmem reusing since we don't want to handle __zswap_load() failure due to memory allocation failure in zswap_writeback_entry(). - Append a patch to directly use percpu mutex and buffer in load/store and refactor out __zswap_store() to simplify zswap_store(). - Link to v1: https://lore.kernel.org/r/20231213-zswap-dstmem-v1-0-896763369d04@bytedance.com This series is split from [1] to only include zswap dstmem reuse optimizations and cleanups, the other part of rbtree breakdown will be deferred to retest after the rbtree converted to xarray. And the problem this series tries to optimize is that zswap_load() and zswap_writeback_entry() have to malloc a temporary memory to support !zpool_can_sleep_mapped(). We can avoid it by reusing the percpu crypto_acomp_ctx->dstmem, which is also used by zswap_store() and protected by the same percpu crypto_acomp_ctx->mutex. [1] https://lore.kernel.org/all/20231206-zswap-lock-optimize-v1-0-e25b059f9c3a@bytedance.com/ Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com> --- Chengming Zhou (6): mm/zswap: change dstmem size to one page mm/zswap: reuse dstmem when decompress mm/zswap: refactor out __zswap_load() mm/zswap: cleanup zswap_load() mm/zswap: cleanup zswap_writeback_entry() mm/zswap: change per-cpu mutex and buffer to per-acomp_ctx include/linux/cpuhotplug.h | 1 - mm/zswap.c | 246 +++++++++++++-------------------------------- 2 files changed, 71 insertions(+), 176 deletions(-) --- base-commit: 1f242c1964cf9b8d663a2fd72159b296205a8126 change-id: 20231213-zswap-dstmem-d828f563303d Best regards,