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 B518ECD1284 for ; Fri, 5 Apr 2024 02:45:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E6B296B00C4; Thu, 4 Apr 2024 22:45:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E1B466B00C5; Thu, 4 Apr 2024 22:45:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CEC4B6B00C6; Thu, 4 Apr 2024 22:45:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id B0CCC6B00C4 for ; Thu, 4 Apr 2024 22:45:04 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 0798CA0D76 for ; Fri, 5 Apr 2024 02:45:04 +0000 (UTC) X-FDA: 81973936128.27.2C1D653 Received: from mail-qt1-f169.google.com (mail-qt1-f169.google.com [209.85.160.169]) by imf15.hostedemail.com (Postfix) with ESMTP id DE6EAA0008 for ; Fri, 5 Apr 2024 02:45:01 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=Mts7eQ44; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf15.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.169 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712285102; 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=14/Jmqw/F513fEFD4zyhSbn6EUBGIv7v5bPF2RRkA6k=; b=5Qztx3b7JNBEp4c32nvFv9llr4vz7rC1Dg66ZL/L1q8Jb4lkLviwoWOPPaMgrfhebJtHCX aqx0qpLO0v1ALN5BLBa2kVkoN+rkyUuijL//nui1CaJpsxvkrD2anVr7D48fO+5fHaK99o /CyU9nwYC4fOkZRmgMxvyf3itj3VoZI= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=Mts7eQ44; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf15.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.169 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712285102; a=rsa-sha256; cv=none; b=LyyYiJXKa5nkiGudh5uqqRJ0lUQ7NMFB94sAVBHt6JLIT0sVDBIJU2GCgK8Y6oKAZLVV8u GaBmMoK8XRTR55MX7+w1nelugE9Boec2tLkMiuL0DgwT6edCR8pVwU/1cRvBvSwyM71QTe UYdXpMqwxIH2WTCzMSdh3USeqf9ZqMk= Received: by mail-qt1-f169.google.com with SMTP id d75a77b69052e-432fa3f6847so9335621cf.2 for ; Thu, 04 Apr 2024 19:45:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1712285101; x=1712889901; 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=14/Jmqw/F513fEFD4zyhSbn6EUBGIv7v5bPF2RRkA6k=; b=Mts7eQ44NsRs5z3Qva7TAarW7Q8dLfWz++Qw0F60B6MJyhuPEgKDfMM1kA9FXFDAgp wlbRQed6LXXedywn8j419+EOp0NtfoINgwIwnwgfH9QogwU/53RrrIBJz34DG9z9iFBP pUutVWutxfETXg5+FGvj6GTzUnrN9jldMXLTMBgiZ4ZVZej82jZhZi4Db2qf+8NXSMYE 25/hRVXBH7kJnCRFbxkH+3yseejqt41hD1G5uH8TgSSMcMjyDrI4N7gSRF1FpdIhwBXS sxY4yM85v1YPYkDyoe1NIQWzOLt8fO9eOGDqr6/jcj2mrvzN6jpadoCNnJFnEHo5Bt8O Kkfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712285101; x=1712889901; 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=14/Jmqw/F513fEFD4zyhSbn6EUBGIv7v5bPF2RRkA6k=; b=IxZowVHj79P3KcLfkdByJ43n5Mkd3WThtZkeCWlXsF99ZpBh7FN8ZWzXWHxD582QcV LYpGOPQ0hW3z4c0TsQyBpWKAxe4/2TGDpxL95W253OR9Jw5ZYKtyqfo2ufJCdAKwh0nB 3RqWlfAMiPkB2y2b9k90531CTZ38E+zGb771lcn7vDX3X/7aAaSBUXjhomAI7TAhMy3Q DOeKdSdfBqcKWhyYt/1XaWgnsyuAEY8S3p0HCNM9k8k1IcYuN8pTQwpLjslmDNxiXoA0 rWpiEqIzalobwzutOYiLIA5o/b1sVLEIIwwE04mdPGuECodcludt7bzt3PvAnOQ/WQcS 4k4A== X-Forwarded-Encrypted: i=1; AJvYcCUZ/WKSo2WX+CvRFV1DE5L01Ck2tOPiEJkYJg9eROhWNz/hON+kmX7ZR5wnsnvczhzDfpukOo/HBe5Pz6Fot5KxERE= X-Gm-Message-State: AOJu0YzrIv/6S5vtjmvH4KR82aSU6b/cmqtyNdD7bMbFWVPNrdr0067J EPfm1UShlB93JvhX/uLvqsczUVNGPnIZ3obE4JmQ/faH5KFHpalHgCZGueaiJ44= X-Google-Smtp-Source: AGHT+IGavZtnoQPJhG1A86bHtiTFeAPWXXoTPEGfjOceSc3n9e3JOO+zdDrP6qQRqwZUkdkKfBNXnw== X-Received: by 2002:ac8:5dd0:0:b0:434:515e:4120 with SMTP id e16-20020ac85dd0000000b00434515e4120mr110174qtx.42.1712285100819; Thu, 04 Apr 2024 19:45:00 -0700 (PDT) Received: from localhost (2603-7000-0c01-2716-da5e-d3ff-fee7-26e7.res6.spectrum.com. [2603:7000:c01:2716:da5e:d3ff:fee7:26e7]) by smtp.gmail.com with ESMTPSA id c12-20020ac86e8c000000b00432cf894d57sm322016qtv.48.2024.04.04.19.45.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Apr 2024 19:45:00 -0700 (PDT) Date: Thu, 4 Apr 2024 22:44:59 -0400 From: Johannes Weiner To: Yosry Ahmed Cc: Andrew Morton , Nhat Pham , Chengming Zhou , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v1 2/5] mm: zswap: refactor limit checking from zswap_store() Message-ID: <20240405024459.GE641486@cmpxchg.org> References: <20240405013547.1859126-1-yosryahmed@google.com> <20240405013547.1859126-3-yosryahmed@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240405013547.1859126-3-yosryahmed@google.com> X-Rspamd-Queue-Id: DE6EAA0008 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: 7tnk1n8wup1zwe8s7j3m94uer17mbow1 X-HE-Tag: 1712285101-439642 X-HE-Meta: U2FsdGVkX1+dv/+Qqd99zLuZZJwvrj8TI5DsCOX35PKv48J1hcsSpZ49+oAiI+rxXwl86O8huBNfd1nHOoTIugMxT3hgV9QZrLQYlj78jvaSLhAZL7HIiUjDxZmk5teTNudpa2ncyBYuG9EYsnT98wWRZLbpaK3oGbpOxx6voqR2OSYjXOlwMxZ/FXY+L461newzRLSfuX/qj590jV+oDF+Qg/R8oODyX4X2bZ5QG695bo8F19ZRYTSVIt8C2p0Rr6Y3PVwtCYTLr01qZKL+ohq8JgT7aAJMMP///exTRXqHkL9nKohRWyDAe+lipr6o1JBqaFtPwwfHey+ZCkaz9BCPTUe53yEWbvKs/HkFnVxklvfnGGEZcgJWGR65OCqUYXyI9K5OsqBItx2b6cT+C4PlUkQgS3RBl5jOXA6b9L8/c+CzXvLeBwQNT3dADvoZObLIpjLowDiPRnQkeiwFd6LIMiQ/WGB39Y66UTEgu7PKMt5Nh0RMUcynvpW65nTvv4FmklG+8oyvFU4RRggqcXSxcOoOSL4ao9hRzN2t0SHInKiiutkdo0pUED51LNkPOZ2Zm843bVMnAMujBYawWARnU/3ANHmfd1L/VfuhkBybBmY+XbVAx/ZHWVVV4wWUKAZXwv8qpuzbt0XgKJY/DZojqzz9b6gUEDqVoXZYO42yBISz3dPqSRk1SDCd7nfhZyMkyNOA/gjAITmyX/pCpIOArXFNu3PjSB0fBwQF7tOkXFzy6laumxlaKpoDhjYAZp7k/gb61jlQL5V6+3at4JdtvlqKXeg/nbG2gzfXo+/PQs0p5qlN3M6SN4WSr92QYHh3nYawrTTzxNpkT4tikocDClOmLK7hlf2NsxK/Gn05QOYBFInWkRYZBk3BzrNuukfrvnHS1+ViO9V69NRQW+UE6CxGwjyydFAE3WR2LUmePL9AWgCyviSYjmQsmYZPE+RnH2as0ylkg/OpIwJ VuzHeQCO LB7MF59O1MUfk9WxVwfUKKDbc/cD04EXjBf1FlV+bSLjMwMIM+2tLL2lLFVhRtiD+QACxHA60/dMjHXokHpeFiBi3DbtxjnpaRE4QV2RnwCR5zNiNCS5SAkHxuX3CKLAwGy3o++zO92bnMDHX8iAzSgDxePXmi29PrszAHRLhSI3sPuftMDWtJQ54cnY0isNtgb7PVQjwdhmlPahyDNBtekV0ZNGkUMzsp3t72p4XbDcud9qctZupcuk0c4aXEk7T8toLczBwuoYoE6dpvh6Wh8jZcwKVURKRWxMjbQ0y1Mjd2nHLo+aDTO/fTgMkrLTnnv6/dRn0HRUAgbnO0sqW9mVTJyP8+uIC3yzLIr6q+Lcz6njg8gpazA/CyyG0OBrOruB5aLybEha+5f/qRwr72iTYD5X7AbDkPyZTNqOLQIJdd8rqpVxhcCLS+Y017axEo4Sf9suqXydn/ijde9Uc8vpXWQ== 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 Fri, Apr 05, 2024 at 01:35:44AM +0000, Yosry Ahmed wrote: > Refactor limit and acceptance threshold checking outside of > zswap_store(). This code will be moved around in a following patch, so > it would be cleaner to move a function call around. > > Signed-off-by: Yosry Ahmed > --- > mm/zswap.c | 32 ++++++++++++++++---------------- > 1 file changed, 16 insertions(+), 16 deletions(-) > > diff --git a/mm/zswap.c b/mm/zswap.c > index 1cf3ab4b22e64..fba8f3c3596ab 100644 > --- a/mm/zswap.c > +++ b/mm/zswap.c > @@ -1391,6 +1391,21 @@ static void zswap_fill_page(void *ptr, unsigned long value) > memset_l(page, value, PAGE_SIZE / sizeof(unsigned long)); > } > > +static bool zswap_check_full(void) > +{ > + unsigned long cur_pages = zswap_total_pages(); > + unsigned long thr = zswap_accept_thr_pages(); I know this looks neater, but it adds an extra division to the very common path where the limit hasn't been reached yet. It should really stay inside the branch. Another option could be to precalculate the max and the accept threshold in absolute pages whenever their respective module param changes. That would eliminate both divisions from the hot path. > + unsigned long max_pages = zswap_max_pages(); > + > + if (cur_pages >= max_pages) { > + zswap_pool_limit_hit++; > + zswap_pool_reached_full = true; > + } else if (zswap_pool_reached_full && cur_pages <= thr) { > + zswap_pool_reached_full = false; > + } > + return zswap_pool_reached_full; > +} > + > bool zswap_store(struct folio *folio) > { > swp_entry_t swp = folio->swap;