From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A0268366836 for ; Wed, 4 Mar 2026 11:18:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772623125; cv=none; b=vA3ce1LYW3iUkboUUUKoxiaBh1Yh2S6NNJcr2h6Y3gOg1UuE/krbbnizCNh1SEZgbBGDCEdY3UOkf1Z2ilj0neMYoZH3T6EZH8wyzlgQWHdCRfrzjyGs1fgaOuXQLgXVKBTzVCdlEbXOALMNZ5m7bLD6bmWwafEku2zIZANQYfo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772623125; c=relaxed/simple; bh=K1orK4SnlqSOeifXkMKD4BDa0aalYVqN914ZJ+k+LW8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=YPzFSfC4GJsojwk4sGspOEt15ZanFMhV+fmq10b6QuvLJsKpANFKZXeoxJzYZnVOS4C8wNGWOVGFw+dYO7qfILXE3U1fiZ8OZ/pHGy5ohrkofDVSj1SHueqMPkyQPsVbd6UGp6dEubt2QU0l+KAr7kGv8qM4+Jhqj00SIP1x8YI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rKIKk0Wb; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rKIKk0Wb" Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB3E0C4AF0B; Wed, 4 Mar 2026 11:18:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772623125; bh=K1orK4SnlqSOeifXkMKD4BDa0aalYVqN914ZJ+k+LW8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=rKIKk0WbRBO20EyBuqPPN9cNsN7BzvjIA1px6MFBO6pwueh1B4NqsJZgsxSH8iQqh IcnSHRSUffQVXae/5+NEkEjlg8aC7h4af7yyuMhQ19IMuVMFDnXpDwq31RymQAgAQP gQ72eEuKr9HrDPcB8Lo+Ul/ymuLESTzabeXfgbMkllZcQDZOrYc0k5sstOfYN5LpH7 9aZr9iXZkYGf2myPLG8AbrQYw3wXXEXkB5EoBcBP1XXJfYNh9p8jk2cYUzliXw7L0A feA9sxLHDA948FTrU2cu9YdIiS7JP1RenI3pTzS+hIkSmZFSlJ7qAq5qRiUkmJN+xL uPumqZEIJa2CA== Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfauth.phl.internal (Postfix) with ESMTP id B78D4F40068; Wed, 4 Mar 2026 06:18:43 -0500 (EST) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Wed, 04 Mar 2026 06:18:43 -0500 X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgddvieeffeegucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepfffhvfevuffkfhggtggujgesthdtredttddtvdenucfhrhhomhepmfhirhihlhcu ufhhuhhtshgvmhgruhcuoehkrghssehkvghrnhgvlhdrohhrgheqnecuggftrfgrthhtvg hrnhepueeijeeiffekheeffffftdekleefleehhfefhfduheejhedvffeluedvudefgfek necuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepkhhirh hilhhlodhmvghsmhhtphgruhhthhhpvghrshhonhgrlhhithihqdduieduudeivdeiheeh qddvkeeggeegjedvkedqkhgrsheppehkvghrnhgvlhdrohhrghesshhhuhhtvghmohhvrd hnrghmvgdpnhgspghrtghpthhtohepgedvpdhmohguvgepshhmthhpohhuthdprhgtphht thhopehlvghithgrohesuggvsghirghnrdhorhhgpdhrtghpthhtoheprghkphhmsehlih hnuhigqdhfohhunhgurghtihhonhdrohhrghdprhgtphhtthhopegurghvihgusehkvghr nhgvlhdrohhrghdprhgtphhtthhopehlohhrvghniihordhsthhorghkvghssehorhgrtg hlvgdrtghomhdprhgtphhtthhopeiiihihsehnvhhiughirgdrtghomhdprhgtphhtthho pegsrgholhhinhdrfigrnhhgsehlihhnuhigrdgrlhhisggrsggrrdgtohhmpdhrtghpth htoheplhhirghmrdhhohiflhgvthhtsehorhgrtghlvgdrtghomhdprhgtphhtthhopehn phgrtghhvgesrhgvughhrghtrdgtohhmpdhrtghpthhtoheprhihrghnrdhrohgsvghrth hssegrrhhmrdgtohhm X-ME-Proxy: Feedback-ID: i10464835:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 4 Mar 2026 06:18:41 -0500 (EST) Date: Wed, 4 Mar 2026 11:18:37 +0000 From: Kiryl Shutsemau To: Breno Leitao Cc: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Suren Baghdasaryan , Michal Hocko , Brendan Jackman , Johannes Weiner , linux-mm@kvack.org, linux-kernel@vger.kernel.org, usamaarif642@gmail.com, kernel-team@meta.com Subject: Re: [PATCH 0/2] mm: thp: reduce unnecessary start_stop_khugepaged() calls Message-ID: References: <20260304-thp_logs-v1-0-59038218a253@debian.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20260304-thp_logs-v1-0-59038218a253@debian.org> On Wed, Mar 04, 2026 at 02:22:32AM -0800, Breno Leitao wrote: > Breno Leitao (2): > mm: thp: avoid calling start_stop_khugepaged() in anon_enabled_store() > mm: thp: avoid calling start_stop_khugepaged() in enabled_store() I think the same can be achieved cleaner from within start_stop_khugepaged(). Completely untested patch is below. One noticeable difference that with the patch we don't kick khugepaged_wait if khugepaged_thread is there. But I don't think it should make a difference. diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 1dd3cfca610d..80f818d3a094 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -2683,18 +2683,18 @@ static void set_recommended_min_free_kbytes(void) int start_stop_khugepaged(void) { - int err = 0; + guard(mutex)(&khugepaged_mutex); + + /* Check if anything has to be done */ + if (hugepage_pmd_enabled() == !!khugepaged_thread) + return 0; - mutex_lock(&khugepaged_mutex); if (hugepage_pmd_enabled()) { - if (!khugepaged_thread) - khugepaged_thread = kthread_run(khugepaged, NULL, - "khugepaged"); + khugepaged_thread = kthread_run(khugepaged, NULL, "khugepaged"); if (IS_ERR(khugepaged_thread)) { pr_err("khugepaged: kthread_run(khugepaged) failed\n"); - err = PTR_ERR(khugepaged_thread); khugepaged_thread = NULL; - goto fail; + return PTR_ERR(khugepaged_thread); } if (!list_empty(&khugepaged_scan.mm_head)) @@ -2703,10 +2703,9 @@ int start_stop_khugepaged(void) kthread_stop(khugepaged_thread); khugepaged_thread = NULL; } + set_recommended_min_free_kbytes(); -fail: - mutex_unlock(&khugepaged_mutex); - return err; + return 0; } void khugepaged_min_free_kbytes_update(void) -- Kiryl Shutsemau / Kirill A. Shutemov