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 D6004C4707B for ; Thu, 18 Jan 2024 15:11:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 36ABF6B0075; Thu, 18 Jan 2024 10:11:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 31B516B0087; Thu, 18 Jan 2024 10:11:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1E33A6B009A; Thu, 18 Jan 2024 10:11:28 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 0CEF86B0075 for ; Thu, 18 Jan 2024 10:11:28 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D88C61A0D01 for ; Thu, 18 Jan 2024 15:11:27 +0000 (UTC) X-FDA: 81692770614.02.65FCDA4 Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by imf21.hostedemail.com (Postfix) with ESMTP id AE1291C001F for ; Thu, 18 Jan 2024 15:11:25 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=DG557F9j; spf=pass (imf21.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.173 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1705590686; a=rsa-sha256; cv=none; b=p+rGP4qa7x3OYa8lVcyDK/ciSfdA5Pn7FK2yVmmVolSEDb6AyrvvUQKtKvPIkTaHp99i1o iDqMvRXHU1Zkp94vNr9z+tUaUBRTrY0mz6dyHtezsZpUlI4OljDLr9Lt37lxKqVq39Lx15 L2sodcdgLHnUuSaNLk8BbG0yoTl17wc= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=DG557F9j; spf=pass (imf21.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.173 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org; dmarc=pass (policy=none) header.from=cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1705590686; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=n+n3702DzjvE8I5kV3B0z7yiCOBGUE0gdpStZqeKioA=; b=kJVyfWT2UrPCfCafk7xzW6tMmaSfbTnz0g6+7119pJHZTFvUICfCwfnpimJ584NUfRODtM lgLde3b3t0LSZPLRIOETTut+1pqqoiS5r48wzGn8HlLDqRlrczMpacc3nzsduQaOTga2n8 bgRAr7XDPpi6piVvKrpJsi0zO8dhfi0= Received: by mail-qk1-f173.google.com with SMTP id af79cd13be357-7831aacdaffso1155810285a.3 for ; Thu, 18 Jan 2024 07:11:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1705590684; x=1706195484; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=n+n3702DzjvE8I5kV3B0z7yiCOBGUE0gdpStZqeKioA=; b=DG557F9jX/Zbm5Ao720UUh3KNPgYO/TNOCl49K3w6MzUpuXyHO6Au6bh7iMw7lndle 7A6axdZou82SwdCsdgCSb+uKHjdJkjlEEH11N7D9l1RnhSu/c2xXxokxHN1nMfA9SGzY wSRvCnz61+u/u872D9U6fvKB3+dYllnxcxZRXGH+Z0IRrLcnj7YZr76FTiX/5IRFfTiR FMmOe4xXypb7IL56UoRwpF+QyTOk9tclXH9KjLAlKtA+SsXci0Fl0I83wTcblBLPFZjs 3d5Ce9rVZBAYFfn0GlL4HA+Agu/8EdSp+DgfmEjPEw8mFjShR8jxEOZxh0Yz8gKStJjm LyCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705590684; x=1706195484; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=n+n3702DzjvE8I5kV3B0z7yiCOBGUE0gdpStZqeKioA=; b=h46B+07uM2jvpiVNjjgr/xj0TX5RhIzbPvfpPe62ZJPaEvyOlkUuWGr7ZbJCDHZOBl E702yvuOUGe1KqNxIYQrBtqS0GSJfY/Y5cH88yTYeZ3g9pXPThqDKxGS5QBCcueiKqKO dy6LFw6wjiVfnGgslb8cuIpdzvb+h2o6Wdseca1uV8oFX19lYf7s7MnfokYoYPIbaycq 3Chrc7Tu3E5nfu3ln3l9Ltbig4cL87n/Gkz1wD1U6g7qoh78RI/IcMvdbjSsAv4p6JVi EjlbCObAI9MrWsmZ5zywfNRKn6SWvepFf3CoY08UoQIVZ2e2f8+XqA2RKW8pM0wNnJ4J UkIQ== X-Gm-Message-State: AOJu0YzE/fFiM7WcV4FEmSQL9EG5WPDbDZ7nB4jF0xOlHy2wn83oAW2Q o+ZA6VnigUFFafEwzYJ1teHwrFCGMFv4n/TM4wZZNF8pv8hisQOo9JgaQhuARwA= X-Google-Smtp-Source: AGHT+IHuI1hfsw0fiD9pOlV/VA4wpxp5PF3DTKwIpiToe6fi39i/8ohEnl7jT9S2c/geBCDuE0ChWg== X-Received: by 2002:a05:6214:5191:b0:681:7859:8d7f with SMTP id kl17-20020a056214519100b0068178598d7fmr894837qvb.81.1705590684757; Thu, 18 Jan 2024 07:11:24 -0800 (PST) Received: from localhost ([2620:10d:c091:400::5:dd09]) by smtp.gmail.com with ESMTPSA id pd2-20020a056214490200b0068187a62fc0sm993203qvb.90.2024.01.18.07.11.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jan 2024 07:11:24 -0800 (PST) Date: Thu, 18 Jan 2024 10:11:23 -0500 From: Johannes Weiner To: Chengming Zhou Cc: Andrew Morton , Yosry Ahmed , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Chris Li , Nhat Pham Subject: Re: [PATCH 2/2] mm/zswap: split zswap rb-tree Message-ID: <20240118151123.GH939255@cmpxchg.org> References: <20240117-b4-zswap-lock-optimize-v1-0-23f6effe5775@bytedance.com> <20240117-b4-zswap-lock-optimize-v1-2-23f6effe5775@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240117-b4-zswap-lock-optimize-v1-2-23f6effe5775@bytedance.com> X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: AE1291C001F X-Stat-Signature: dsfq7sfwrjt47fpk7u1fq91rdx71oez9 X-Rspam-User: X-HE-Tag: 1705590685-845580 X-HE-Meta: U2FsdGVkX19x8hYQ9bi/1MZc4r/mTG4Vex0mOw9Lo09mC1wL9Z5P7Z9zg1zzi/9kbWtP5BrK6lUcQFFtDvZeLxhkzN05lJyR3wwkKDwf7dmP9EGvt4z8EZW9sxUXti4uyhmAIPA6FcfPaXcUl0nzJyUYFmH+P2EcOqdu0Af4EPPq/teM5Lwj3PS5w+CzxhiyRaxYRiKXtRxi7GYqfiNUXQkl+WOvF7hDY4NlLtX9Kr2JNlglsqrwW9GLaC0lQEtqKKOkteHu4lpiVQsK7zByVgaZ/YB1plJDrFKyUBq3heCFXGcmzVxK42pqyYh64D5sdXFb6J2Wk6PGCyASq3YaZaUvBcf4dn6OgZJPPLht9QVsJPw0HvnwOk3VXCrxtEy/elitkHDR2YLO2jvr6JNN5cyU0Nm+VqNkzgF3LHnoLA4fsTClCel1rKZgqMpePFoFVQpwYa1CKA7PFIIpaCJogcUf13tkH8w06Zae2FgC+MJIU2AJXVIJUvIYicODcJiT+N5TEd7cK1vXnZYz6tb6ejQArHAvqFbFl9zf5O/Bxg1YvLRgY8ejzzUds6+B1tLNu+jfMKIH9H8Q0+L+7aECGXlg6XRLaJPnJT2Yw9Q6gylTKql/vymzp88xdIeCR69PMvCwVpHaoDJrQAZaTB0/eh9Nd7AANPUyiGMhVb2dAY3u3QF9Vhssz9bXKRxFZE4PKkKiLCG1v0uaaK0CgIUb2PqXVloRMfgzCFO2rYdCFPj8AIvwE+Asv8GqJzjwcjqvM5vfBAWkrTJolGjh29E3qvTPpUohs/UVNNYusy83S9MV/mikqATPgRXJKRQk3SChGj3f0MifxduUsSIrABtDTwlLSSszwEywaD5GtjNDQ/2+2/92/bB/VfDwwikjWhG0dLUXKG5bhHEyZzpIdeklXlg1Cn9Q+gdWxgDR/MdssF/olI/sWAKGGRTZeHA6KsL7IF+9arXVOaLykdahGfc wA3qRQiV 1l19BwDxjCX9xv4QQjP+Z1+RtYjxUFyG5PKL2QDICgsANF4xk0bHGh47TDAPp0LnDgTyVHJNz+LvMXleVQ+DA77+BJjauPpTcpO5MqhMoUsVDdwV3QKxs7g2s6ZYTjzO0MnW5zvx225ozrihV3lbZf+8iXPVMw2KJ5EZOtntN7tWZRB6VDLQbhEBMlx09E7mutSjpt/8t+dwNTCkxJCNxehlidhGcRRCaxJNPXgL2gL/fqWMmZ0aWGZgSK7V86O7gxVMYPdk1J+LC5Dp5CuPRIWYHWyG4hc8d9PwaSIovyJlumMtHEHJBwQFbWx/8r5N9OKDhJYRBjtxLYF/+3OWxsHIddxod+QYltGdM0mq3PKqJGGY+1wOvEw1ucb+j6Ypoje0qHl7PkH1K/4K2ayKQ00zsE8JFxt0tkSUuFHCsunStNOlJ2RRLBdtZnOUo6v+Q3Z5lxUn9b3A9fFuJRxx0MuF26UaVwUIh+ZxpXBknGG8EN8icnDtuFk7iCEgijFdNoFMy2MJzyWLcgS6HDVXL4gCyFXjL7O1z4iI3 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: On Wed, Jan 17, 2024 at 09:23:19AM +0000, Chengming Zhou wrote: > Each swapfile has one rb-tree to search the mapping of swp_entry_t to > zswap_entry, that use a spinlock to protect, which can cause heavy lock > contention if multiple tasks zswap_store/load concurrently. > > Optimize the scalability problem by splitting the zswap rb-tree into > multiple rb-trees, each corresponds to SWAP_ADDRESS_SPACE_PAGES (64M), > just like we did in the swap cache address_space splitting. > > Although this method can't solve the spinlock contention completely, it > can mitigate much of that contention. Below is the results of kernel build > in tmpfs with zswap shrinker enabled: > > linux-next zswap-lock-optimize > real 1m9.181s 1m3.820s > user 17m44.036s 17m40.100s > sys 7m37.297s 4m54.622s > > So there are clearly improvements. > > Signed-off-by: Chengming Zhou Acked-by: Johannes Weiner One minor nit: > @@ -265,6 +266,10 @@ static bool zswap_has_pool; > * helpers and fwd declarations > **********************************/ > > +#define swap_zswap_tree(entry) \ > + (&zswap_trees[swp_type(entry)][swp_offset(entry) \ > + >> SWAP_ADDRESS_SPACE_SHIFT]) Make this a static inline function instead?