From patchwork Thu Jan 18 03:05:40 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chris Li X-Patchwork-Id: 13522325 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 3CEDFC47258 for ; Thu, 18 Jan 2024 03:06:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BEF0B6B0074; Wed, 17 Jan 2024 22:06:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B9EA16B0075; Wed, 17 Jan 2024 22:06:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A8CEE6B0078; Wed, 17 Jan 2024 22:06:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 98EBF6B0074 for ; Wed, 17 Jan 2024 22:06:07 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 708B5A01BC for ; Thu, 18 Jan 2024 03:06:07 +0000 (UTC) X-FDA: 81690942774.28.9C6788D Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf27.hostedemail.com (Postfix) with ESMTP id 70E644000D for ; Thu, 18 Jan 2024 03:06:05 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Fvm0Zspz; spf=pass (imf27.hostedemail.com: domain of chrisl@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=chrisl@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1705547165; 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:dkim-signature; bh=5t8WW2a5QmKlOvStagneE3RmRwukLHdm3rfjomiYQlA=; b=iLhB1LoiVyqYQwqeqxYSaycRYWVR/tXPqWYHpU1pjV4tdQ+yJtNWDyyKx+qbVft31HwdTt rUIFT/dwIiK8i47Ya5dKHzBn6xCm8Vj+Bq8eAIN2Xz9lPombPnMLrjQvpFgI9s9yTMP5q+ 4Z7Wev4Eoy8m2aAlaY6fPxDOxF1+JJw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1705547165; a=rsa-sha256; cv=none; b=mj8jjjBOB+wLtAoWauZxCx1NEGtB4CQKcbH+s/HMuC6I8KcVz+vJBjwlSgJdu52lqWrlZO M7KzofHU8tFsw3Rgjb+S4A6Lbu+Vkym9kkHDPTDPohTVZT0RVfucTtBGV+UYMPuqHsyXT0 k+Jce1+POT3nz4bvDyrKQPZD6HKdBek= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=Fvm0Zspz; spf=pass (imf27.hostedemail.com: domain of chrisl@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=chrisl@kernel.org; dmarc=pass (policy=none) header.from=kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 8484CCE1D7C; Thu, 18 Jan 2024 03:06:01 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 80460C433C7; Thu, 18 Jan 2024 03:05:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1705547159; bh=OKgJl85PBzkDLOECRXoBFZ9nSFWwN6N+G8E0iFDjg2w=; h=From:Subject:Date:To:Cc:From; b=Fvm0Zspz/CNN5KQ3c3PT8DPP7tlnCcuqAG6lVMLeHgcYHdXPeaRYafbaM/Pzef+/8 xp40ZaUpHNnFQ64XyvwdFxQTxYv06XkirXjv1wIP3xzceM5JeJvnPzsJxcILCgDQdK 5A35efQm7HP3sbTsfzPNzXUWuXLbs01LJwU9cbrHvM+WEDtZc3B1XKqGUnL7kp3TIv kUrL8+dVI52kKeUSWHpc+zOINfEWIrsKvSc+44O+tuxjfu30lIDCGh22daQAxhyLS2 XIAhV78mkrVxgPzR5OMIFBpu32N2pO8rDmMds48kRbY4LRjyUTfqFBtCMy5QIa8rU4 AGn97B1AvF4sw== From: Chris Li Subject: [PATCH 0/2] RFC: zswap tree use xarray instead of RB tree Date: Wed, 17 Jan 2024 19:05:40 -0800 Message-Id: <20240117-zswap-xarray-v1-0-6daa86c08fae@kernel.org> MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAISVqGUC/x3MQQqAIBBA0avIrBPUzKCrRAupqWZjMkJZ0t2Tl m/xf4GETJhgEAUYT0p0hArdCJh3HzaUtFSDUcYqrax80uWjzJ7Z37LXzjiFndXYQk0i40r5343 T+36OfBucXgAAAA== To: Andrew Morton Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, =?utf-8?b?V2VpIFh177+8?= , Yu Zhao , Greg Thelen , Chun-Tse Shao , =?utf-8?q?Suren_Baghdasaryan=EF=BF=BC?= , Yosry Ahmed , Brain Geffon , Minchan Kim , Michal Hocko , Mel Gorman , Huang Ying , Nhat Pham , Johannes Weiner , Kairui Song , Zhongkun He , Kemeng Shi , Barry Song , "Matthew Wilcox (Oracle)" , "Liam R. Howlett" , Joel Fernandes , Chengming Zhou , Chris Li X-Mailer: b4 0.12.3 X-Rspamd-Queue-Id: 70E644000D X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: b1zb7n5qfswkuxgdaseq7tbsahdqpyi4 X-HE-Tag: 1705547165-654140 X-HE-Meta: U2FsdGVkX18BooCYzz9o8nEevhaMP2DwFqaO9zP2Tn+jrlY/RuXIcGMfKn+JfThEHUn+9sQuMlNM8J1Tf/uJ2NxehJ+KdKBUOaXYuea3KxIy2qqWwwwU5x2nQn2KQuifq3r7VfXRTB89It5OG6B7neLTx0ufcxnTNVG7/Dcm8pJ0l3Q3Q/ufT/4Kv2/Rz2iYfUCNMP6S9JbvSqtt5YaaFFIZQ1apOdyPXPKMm76O5rz0UWe8/12eFPD6U//SuPgrSL/nbguBe+l0kg3l6tkcamriGtwAXbWoHmIspCEkEpffM0q/h5qRXIYX8RJEpMQlnDASaAnRCUqDo8TbTfF0mmuGPIFnxWfkwQQDtisNN+wWO6cfUSkLrD7IhqKEdwRtHmKO8qLqKtuBcpTaAfo3APyqey+PLRl9/x9WmtV0qr8O7KDCMSuSwphXk16nyEtgTP5U9hXLTtSfxBquJgBUW1yfFX67R4oVYLBrGsf0ZpkvWFcy3mjuoW+8Ek8oSYH1D5+Q9r+s0d99DhZDAy7FdUBcr/mG2bswJHpi3PIT/51oX+bLZbD/HXJxCklCAbxPg4v987Quhc9C3JjD9odsozi35yPQbghVvCTUl4zNDtYwG3sFC0heAhhBm6475qGz3eylri22ZDUAE7W0v+NXiO3pjwfj009g3w2rcbw+Btm/htkNSGJ7Z79mPgVtg20RcyRH6OskXGmW+VghNyqFlH2e9EHraUnEoXR65XI0pNBBdRaACGXCbERvFCBkaMzq9yW2cQsi0L6FdOS2zxSZodUay6ujovBzH9imznYUL7mhX0ZfpXwFrQaGJaNuWZmKrnAX1ltk1+G4NCLl1B7TxHvFSuzTz4imQesY0reXYCqr5BQiTZUJMksoi9V7/Tvti5a3nql0WDh0XH4CAHCJZ6nyArQnknR1B5pHYYLDrpcg031gMtnXzQtupky8ap0CSFgkplHBE5ag7+5IToy R/c2Z5i1 9U5NVZ854iOUaLmxm4HVnvXGJafJuuB2x9CuKAQ6kU9en0qhUvRTRmQVbdaaAuODqjmTaLi6zBzluD8pXAmclcguKAFOWY4tRM9rTGgrqfy01epKHN6RvqJgM6jG6bKtvtxgAABzfa4WSOMULXnIsPkIkN3gP1NERM93O9Dg5h/sFAiwcukYYz/pyS+GqVHBQQ5XrdxajqPPo6dFn5f8cbcEveG6lqEtNZw2+MSSh592hm9rzjNO2KdQIOg== 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: List-Subscribe: List-Unsubscribe: The RB tree shows some contribution to the swap fault long tail latency due to two factors: 1) RB tree requires re-balance from time to time. 2) The zswap RB tree has a tree level spin lock protecting the tree access. The swap cache is using xarray. The break down the swap cache access does not have the similar long time as zswap RB tree. Moving the zswap entry to xarray enable read side take read RCU lock only. The first patch adds the xarray alongside the RB tree. There is some debug check asserting the xarray agrees with the RB tree results. The second patch removes the zwap RB tree. I expect to merge the zswap rb tree spin lock with the xarray lock in the follow up changes. I can surely use some help in reviewing and testing. Signed-off-by: Chris Li --- Chris Li (2): mm: zswap.c: add xarray tree to zswap mm: zswap.c: remove RB tree mm/zswap.c | 120 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 59 insertions(+), 61 deletions(-) --- base-commit: d7ba3d7c3bf13e2faf419cce9e9bdfc3a1a50905 change-id: 20240104-zswap-xarray-716260e541e3 Best regards,