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 B3E7CE77187 for ; Wed, 18 Dec 2024 20:21:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2A1506B0082; Wed, 18 Dec 2024 15:21:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 251AA6B0085; Wed, 18 Dec 2024 15:21:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1196C6B0088; Wed, 18 Dec 2024 15:21:09 -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 EA3AC6B0082 for ; Wed, 18 Dec 2024 15:21:08 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 742EFA11CA for ; Wed, 18 Dec 2024 20:21:08 +0000 (UTC) X-FDA: 82909196748.17.DF1EF8D Received: from out-172.mta1.migadu.com (out-172.mta1.migadu.com [95.215.58.172]) by imf30.hostedemail.com (Postfix) with ESMTP id 176678000C for ; Wed, 18 Dec 2024 20:20:04 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=LJcfY7Ru; spf=pass (imf30.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.172 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1734553236; a=rsa-sha256; cv=none; b=Ml9TkBl5UGS+/HIT6IZnX5TR9kAtokWFoVHuofQA3Peq8gt057oEQdGVtVAOhfnc5xLVMj h8qxxMuqwQWbdSrP/az+uy5uHRPaFHExFfKT2jhrWe+8avqnvf5B+vb6zkUaPpjCm6U2/u +bI4SS0XSNfR3KIYJkloiYmo3dbYK0I= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=LJcfY7Ru; spf=pass (imf30.hostedemail.com: domain of shakeel.butt@linux.dev designates 95.215.58.172 as permitted sender) smtp.mailfrom=shakeel.butt@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1734553236; 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=vyeK6+qc1CQufwhwXb7NYPY5xDaeGBe2cg6H5pmM7bc=; b=DknF0/KG2sjegRqenS1pQ/Rgv6AMIh0m/tSgRfvKgoLqVIbJwwEIpAKqg4yXVAvYDJhfQA 5eq2oUaeIYBfkiOIhQ3bGfq+4Cq/YO9fu+dkMqNlcNYuqLfx24+UfSm7eOhA+/zef032s9 2Gru3I3ZcyTJsIh7hJGEDfUC5D70wxQ= Date: Wed, 18 Dec 2024 12:20:57 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1734553263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=vyeK6+qc1CQufwhwXb7NYPY5xDaeGBe2cg6H5pmM7bc=; b=LJcfY7Ru9Ok6GV4jysWeYm7KVsOT7I1JuLoCHk2k4mPMUzrpbmGKo1rknjvCvuksMByQbk tVl5hxewvc4qE46PIOoEpE8y9ruA4wHesgAd46tCSwF+7mzqXd7yPz+MA7r/usnl/eqJwl r5uykku75FUNGvmcaethcm604YaMxWg= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Shakeel Butt To: Rik van Riel Cc: Andrew Morton , "Huang, Ying" , Chris Li , Ryan Roberts , David Hildenbrand , "Matthew Wilcox (Oracle)" , linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel-team@meta.com Subject: Re: [PATCH] mm: add maybe_lru_add_drain() that only drains when threshold is exceeded Message-ID: <43o2dqigz6cap75h7y25jz6qbdzoinyq3ntxx4sm5cn3y4dddm@mwyjjygrxhmm> References: <20241218115604.7e56bedb@fangorn> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241218115604.7e56bedb@fangorn> X-Migadu-Flow: FLOW_OUT X-Rspamd-Queue-Id: 176678000C X-Stat-Signature: xm3fsc35zybc1r9j6r8fuwt9byij7z4d X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1734553204-38423 X-HE-Meta: U2FsdGVkX1/eBPugh+rFPE8S66uGwa0mMsVkEM6d0DqxOI7vPrKvV0xe0EVuqYquekNbCCL1EqFi0e7c/ljzxB6fnrRdFW6VYhU4C4ROkVVUvFrUUxVjIIgiy3D+NlAJY8o68LExSYRL8Qf6CyJmLvwsw0Eae4xywMVvChX6F3B0u4yYNgOAyufNJ7KsAmtXEsGl8ZrUqqucWFZMR84koHoAbELqjf8sK/fb2G8OvRIZ+UhxRKRoZtVWK+DL+Xn2uKLOckzbpd1V20sNU9gXHFDxr5JBej9Pgk2xNvX11DpWqA7LVhCM5U48mLYeIhC8FdnwpP1C6rrShZCM1LMddghx0eutP5eQtGBp92AA37VDDb67kwRyHUVgwuXUZiNbMSyPJzItOWktBmJgYJ6FExD0Gqyi+IanhlBkZCQnS1IMAVq/JxgVI9aseNoCpTC01QaUGgThFk8vrGfjwiQOc8KLNx/+sQNJRvTmzHf+8ZB3W+fxTk3jAxLTBlCICyumPxEXfjcO6XY/DTuMU7Qru97lF4Ti/aelk1EiPjg0wWLSRyNvG8ziUjAUG8kE++KzXOASWE4s125+IsEVPocsMiRua2VLxUexIzT1DBhS8Hwy3qO6pjQ/tptfP6H8gcEzPN5rcAX5tq/fQJtNrF+8zMYPKn5khYmqD0NNOKvbtD5FoGuRuo/JFCoThBk4lrg6ZIobTtDnQqsZI82++cjnsutfrOVNp1jbPPo1H+cP7S4ZnWdqpngo76dLaRZz3T2pD6HICzBhWyqbd3YvHA4ldk5Qa69F48VaeTweCkVa1okXAd4yBmA9AH1QOZf0/DUuX8IgtslCg01ze2y2kNuSOkDm+7WboI+WI6UQ5CpFCG7TrDsyDmskOBz9yDe7Q3R644OYc6DUEVQQWohhfDsc2qwOfW4TidAZ2IRn/cAIIyVYhjW1Iivnmn6xT7iPYYcGAwAt4BO7Wj8EbtlWf+B DDIGNo/c ikQz+zYsqfwppgayX1bUfwW07wMRzmQUAvAdW72JnRQq0g3VzvpnuDKyv8AIveCGsc5niV+5KXSnLqaxgNamGHnt53135IG4dhBBl7a8hhqoTfjSo5HTZyHcCK/9dGWjg/f6oaXfkMvec+TYgrgLM2d9dmd4smx00Y4vLBAS1qWxMvrsvsEGFVTtqZYNNxBP2F3ca/nDJtrYYIs3FHsyPKS2Z+A== 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, Dec 18, 2024 at 11:56:04AM -0500, Rik van Riel wrote: [...] > > +static bool should_lru_add_drain(void) > +{ > + struct cpu_fbatches *fbatches = this_cpu_ptr(&cpu_fbatches); You will need either a local_lock or preempt_disable to access the per cpu batches. > + int pending = folio_batch_count(&fbatches->lru_add); > + pending += folio_batch_count(&fbatches->lru_deactivate); > + pending += folio_batch_count(&fbatches->lru_deactivate_file); > + pending += folio_batch_count(&fbatches->lru_lazyfree); > + > + /* Don't bother draining unless we have several pages pending. */ > + return pending > SWAP_CLUSTER_MAX; > +} > + > +void maybe_lru_add_drain(void) Later it might also make sense to see if other users of lru_add_drain() should be fine with maybe_lru_add_drain() as well. > +{ > + if (should_lru_add_drain()) > + lru_add_drain(); > +} > +