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 601DDC3DA49 for ; Fri, 26 Jul 2024 09:43:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E07496B009C; Fri, 26 Jul 2024 05:43:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DB6FD6B009E; Fri, 26 Jul 2024 05:43:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CCD306B009F; Fri, 26 Jul 2024 05:43:50 -0400 (EDT) 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 B04636B009C for ; Fri, 26 Jul 2024 05:43:50 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C13C68173D for ; Fri, 26 Jul 2024 09:43:49 +0000 (UTC) X-FDA: 82381416978.21.0C245E2 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf26.hostedemail.com (Postfix) with ESMTP id ACBCB140012 for ; Fri, 26 Jul 2024 09:43:47 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=none; spf=pass (imf26.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721987002; a=rsa-sha256; cv=none; b=Fap4pWcuUzFDK43tvtzwnbQkLKC30SYrgvH5nt4qODArdRr9VQdwtyaAB0lEBIoPfYL1a/ xzSuSdK4l+cS41jqSbsG9/2/1LIIejMU4mchOrdjvKJZji/shxAoWsaTboT/cTqDKkUTSf xB2cq2UXlsI4oDhEI32NWdybHh0WdqE= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; spf=pass (imf26.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com; dmarc=pass (policy=none) header.from=arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721987002; 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:in-reply-to:references:references; bh=jB6JS/bHdeTuavUIxGEdNCoVK2Xk//Ztr4Vqbzl0haE=; b=xubVpphrywl6nq3AGzRONDjqkRscbCcTFMc/IHqVv2yvu3xDfrl7UbaTQEnl16U0QeZzFT jc+7Of/p7Z7P+hNZJXYbON0xMEGEWuIITxVbtBTpUKxewAi4i5mDp9eJsXWD2YOC6BKVN3 R3AimjcAQMtfVhDjwzEQoFfG6JBm6kU= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 27E7D1476; Fri, 26 Jul 2024 02:44:12 -0700 (PDT) Received: from [10.57.78.186] (unknown [10.57.78.186]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CAA323F5A1; Fri, 26 Jul 2024 02:43:44 -0700 (PDT) Message-ID: Date: Fri, 26 Jul 2024 10:43:43 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: huge_memory: don't start_stop_khugepaged for non-PMD THP Content-Language: en-GB To: Barry Song <21cnbao@gmail.com>, akpm@linux-foundation.org, linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Barry Song , Lance Yang , Baolin Wang , David Hildenbrand , Yang Shi , Zi Yan References: <20240726082818.260008-1-21cnbao@gmail.com> From: Ryan Roberts In-Reply-To: <20240726082818.260008-1-21cnbao@gmail.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Stat-Signature: 6wc5gf95y95rt5ykh6kqts3sqp8d7ich X-Rspamd-Queue-Id: ACBCB140012 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1721987027-153296 X-HE-Meta: U2FsdGVkX19qv7eGYSC4WxW9boOz4k8gYK2BtCkvBdYpSkPUwWnf4iRVprlq9f27k/NSjtxP3SW0MN//0bIgAbAtB5mAxOH8Te1E3HCI5m3X7Dco3XIr6yPD+/SffcltpEJ2glNQPnyn37bo7VOCMiwaGuZj+Th2OO1jGgEm+AwYRoIpY2/ZHJb8HcP/YvGx3NWNerUflmJqRlfRFjXWyjJDm8W/488orOFWMpBF7A4j3h7oeJol5gjGBraSBW5BORru+xwLMUGNF7Jp2HRaGRRTEdGm0/Bu1ZcNn9B6Ejt9BP5KFQngwY5q+jgHvPNCnDWgERLCpfWgvcJwc6x2qS61oLFZsDAzncbDVTsb1jSPFXmxeItLym4abeLqr0FuhI47Zb/r0PIRyl18RhM+5c7TgunYRgLLwWa9djVJxwNMShpBd7V2xZXC3KaJ+tZ9UvONUxd8jPTqQdDNRcrQZ42kS3EQimyi+eZOAvFEWMbaxQlTRPyFxJnZ8Bliu0VefUJ3NF2qhNb89jt+lRp6SeC0qzy0aShNVcOuKtTpSCg1qWaXdCRznEmrY9mZbmhOojcsDXG/L+YSbJMFRb4NyWawUizTfNmG8Bc3tN7Qu87r1p9ETGjuqgxz4h2GJAlad/4IyNgqh2dh/5TOuFdvySnRz0nY44O0aVa2bUEszUCW0Gw06Zm95OceCbmHsfqpAsjEKutwgFZdQ9XLVn5TEj8ESlmqr89P6ulvJdPgpBK+W4aT1s7tPmxK0etQs+nPUqVgmU+39mFBBkJyr1+oIOAaZMKTfDE7J6mblVAkg6zzzsLfexMLwMxs7O2NGh/5Eorlfe1iuXgPd9NQtKK5KD7x29J5ioB7J9LL8PW6Z9+RqjyUmuufF1pfbB4e8qWAM9M/0tf1zu1EYtVvCMRrpVQrVKiFhNnZi9LcO7MhiWot+DX/+OZ2pFLF/JWi9xcwxryR70fAEDft4eMg9GK H+4HejKz 8k79VaSBPjgV5EZxBwMOS1lJtIJ+VQJ7yGOoCEZLg4bJD5FO7BW8EGLFzvXwbCQk8OyMstEOi1fIbkJCK76Ns9lewaYHtH+jEVyLzKQPMRHQHoOgCnZDiv4mvnGSAHwCRrRWcvjmd/pfE9KDB5K/kJdy6i0/8lfDYdfKKxSY2PKR/IJ+iz1RvcS39z4tQ2faor7CsrDh2h9NKdkosXLmKKMoWAW+ijLAqI7n124x+rH1XGAoiHvGbmDvuDc15wLIcUA3LO3yS5wgSCtdFh/x/NsNBJc0DI7ilq/S5zGZTDG3pMuoEKBxQkVJNXEjk50mpMjFJ/MqhORuUag5UHW7X9F99JnN/HTomhfJubgUvG9ncNMFjGubss6mjPAJRgzUrDD51qE7+daFV0BgRTGm+a+HXIA== 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 26/07/2024 09:28, Barry Song wrote: > From: Barry Song > > khugepaged will be automatically started when PMD-sized THP is enabled > (either of the per-size anon control or the top-level control are set > to "always" or "madvise"), and it'll be automatically shutdown when > PMD-sized THP is disabled (when both the per-size anon control and the > top-level control are "never"). > > It seems unnecessary to call start_stop_khugepaged() for non-PMD THP, > as it would only waste CPU time. > > Cc: Lance Yang > Cc: Ryan Roberts > Cc: Baolin Wang > Cc: David Hildenbrand > Cc: Yang Shi > Cc: Zi Yan > Signed-off-by: Barry Song > --- > mm/huge_memory.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 41460847988c..bd365e35acf7 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -514,7 +514,7 @@ static ssize_t thpsize_enabled_store(struct kobject *kobj, > } else > ret = -EINVAL; > > - if (ret > 0) { > + if (ret > 0 && order == HPAGE_PMD_ORDER) { > int err; > > err = start_stop_khugepaged(); Personally I see this as a bit of a layering violation; its start_stop_khugepaged() that should decide the policy for when to start and stop the daemon. thpsize_enabled_store() should just be calling start_stop_khugepaged() to notify that something potentially pertinent to the a policy decision has changed. And I don't think this should be a hot path; I'd expect the global thp size configuration to be set at boot and remain pretty static. Do you have evidence to the contrary?