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 2775CC48BEB for ; Thu, 22 Feb 2024 11:53:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AF8E76B00A0; Thu, 22 Feb 2024 06:53:54 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A5B156B00A1; Thu, 22 Feb 2024 06:53:54 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 922B56B00A2; Thu, 22 Feb 2024 06:53:54 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 7FF016B00A0 for ; Thu, 22 Feb 2024 06:53:54 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 56B0C160D42 for ; Thu, 22 Feb 2024 11:53:54 +0000 (UTC) X-FDA: 81819280788.18.E5E0003 Received: from out30-133.freemail.mail.aliyun.com (out30-133.freemail.mail.aliyun.com [115.124.30.133]) by imf05.hostedemail.com (Postfix) with ESMTP id 66AA1100013 for ; Thu, 22 Feb 2024 11:53:51 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=KkD3StkC; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf05.hostedemail.com: domain of xiangzao@linux.alibaba.com designates 115.124.30.133 as permitted sender) smtp.mailfrom=xiangzao@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1708602832; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=jRGUipf9sjRgAhn1TLOVo6LsSXfi8+r33WymnSOzv7s=; b=SCjObypnF/rXgZp4GZU6tlW7cBq9OBPmyObQLi52Om8/m7Q4tl3WMBVf1gJ1XsR8xIfUxb JaK4L7KcIQoCshxx1QmdxXG+ERFXVgJrCO3R3kuMp0TvJx3htqjoHpdJz+9U/cRUGA4PAT LSAas8CG/0GCu4n7t8N9416WdyxU61g= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=KkD3StkC; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf05.hostedemail.com: domain of xiangzao@linux.alibaba.com designates 115.124.30.133 as permitted sender) smtp.mailfrom=xiangzao@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1708602832; a=rsa-sha256; cv=none; b=f6W8fOu4VXc28IvgASnNH6OIbkTa6iltQFdgzLurtxZZP8leii3qXVUgpbQxIOjSH3kYwu rGaWaLIpA5xbwy1abvNDTsorHi7zQAgR7/WgIL9I3ab8tClu8nRqB1CR87dutsomfD1HE7 ynWeGWqLhS5MabCfwziWbTU2FeVMy2E= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1708602828; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=jRGUipf9sjRgAhn1TLOVo6LsSXfi8+r33WymnSOzv7s=; b=KkD3StkC2FtFlfNHMecMM3vDnaD6Je72j/iML4BM4X/4gejbAbe6f/IYxA12DljgHrE8O0v6dT/FS3OZqvgY4VzcKiJRLQrCQvJunTCtpdBAv2OR7wpOgJqt4S8UycL4m/J7yqFOsp9XnHsUMmhjYMJXYu7HXODSc2iYOzsiuBw= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R191e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046051;MF=xiangzao@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0W10vJn7_1708602815; Received: from localhost.localdomain(mailfrom:xiangzao@linux.alibaba.com fp:SMTPD_---0W10vJn7_1708602815) by smtp.aliyun-inc.com; Thu, 22 Feb 2024 19:53:47 +0800 From: Yuanhe Shu To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, xiangzao@linux.alibaba.com, liusong@linux.alibaba.com Subject: [PATCH] mm, thp: display [never] for defrag when THP is set to never Date: Thu, 22 Feb 2024 19:53:23 +0800 Message-Id: <20240222115323.4925-1-xiangzao@linux.alibaba.com> X-Mailer: git-send-email 2.39.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 66AA1100013 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 6attgprt5ybjotdxp54jbanojjprpeph X-HE-Tag: 1708602831-602119 X-HE-Meta: U2FsdGVkX19F2XbS+3HqXBXcSQGrRz4cdbYZI7aAi7Hm2sSYoIbwteDU/YOEful0G9CIx0FhUS21r3IPB6+tHsweeiyKNozx5r2GzTLQDHGED9JjIesjwehBp3jXrVIEEec/xzOKnjmIrmIazejxtJOaERyBpzI/8FkrXxVWLo22fpDGteoLOWa1EsZ0g75YLNTk3d4dO8JQt55VDOYMGi+YD0NiKEF7CpQp+mdKjI4QAkFD+SsTPbmtAXrCTsdc4bgzmcEEVSMwMPsRT5NqTuBX/VswBC/JEqTiAk0QqUmciomn5VaYqauhPcLYowFnaaEqYTyKOINu0sfR3GHcXQit9l5CVxlSjm7twxol2mQia9m48SszabyIQTD0AlMLroFzcn86Dg0n8RalZyBEkp652QFzZagpCVsK8uTzrTFAhk9Y44kPdXvPIS+CtqVUHr/s0XVYLJsvd1tTKCkQQ/Evh0Af9HiXAVoetgpUOG6E1DS6vyFriYZ8/Jn/BxY00qvm9rbbUK/losWMXfBouow9nNjBKnTRUMdsihojwYJul9Hk1nbMEjNIA9BYtgPviCOMJcf1jFu9otrIgYDasyK1BFTMjtev0UCr0HNzht9hBl8C1DLd838tZeWh7bnVeaRyxM9wRnvUYXkptrkPFdaI54uSa6uWiwhRCN6rIB4Gn1N4/0j2SIWj8N9RUrZWipIcTCb/+qquMnCtsLmdewRdJpS6N+wu4k0y0dWFibdekFM0OIa4/irsX3miApm5FIkfIQPGmBFffevglNqbvufDADAC5pVsdm6iUn2r+uE8mx5lIOaWk4OKj2SrN0K7hhS9wQXjxA9vAVXq40Ccbwo088DXtmz9VVp6o0r2cBvfm00m78o8ErdBcrXTfP5G7S+qfWZR2DTHcgFiHH0pXblC5pD484s3 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: When transparent_hugepage is set to never by cmdline or echo, defrag still show what it used to be and can be modified which makes user confusing whether defrag would take effect. Actually if transparent_hugepage is set to never, defrag will not take effect. Just Display never and remain unchangeable to for defrag when transparent_hugepage is set to never. Suggested-by: Liu Song Signed-off-by: Yuanhe Shu --- mm/huge_memory.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 94c958f7ebb5..03cd22a87b93 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -349,21 +349,25 @@ static ssize_t defrag_show(struct kobject *kobj, { const char *output; - if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG, - &transparent_hugepage_flags)) - output = "[always] defer defer+madvise madvise never"; - else if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG, - &transparent_hugepage_flags)) - output = "always [defer] defer+madvise madvise never"; - else if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG, - &transparent_hugepage_flags)) - output = "always defer [defer+madvise] madvise never"; - else if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG, - &transparent_hugepage_flags)) - output = "always defer defer+madvise [madvise] never"; - else + if (!test_bit(TRANSPARENT_HUGEPAGE_FLAG, &transparent_hugepage_flags) && + !test_bit(TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG, &transparent_hugepage_flags)) output = "always defer defer+madvise madvise [never]"; - + else { + if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG, + &transparent_hugepage_flags)) + output = "[always] defer defer+madvise madvise never"; + else if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG, + &transparent_hugepage_flags)) + output = "always [defer] defer+madvise madvise never"; + else if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG, + &transparent_hugepage_flags)) + output = "always defer [defer+madvise] madvise never"; + else if (test_bit(TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG, + &transparent_hugepage_flags)) + output = "always defer defer+madvise [madvise] never"; + else + output = "always defer defer+madvise madvise [never]"; + } return sysfs_emit(buf, "%s\n", output); } @@ -371,6 +375,12 @@ static ssize_t defrag_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count) { + if (!test_bit(TRANSPARENT_HUGEPAGE_FLAG, &transparent_hugepage_flags) && + !test_bit(TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG, &transparent_hugepage_flags)) { + pr_warn("transparent_hugepage not enabled, defrag takes no effect\n"); + return -EINVAL; + } + if (sysfs_streq(buf, "always")) { clear_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG, &transparent_hugepage_flags); clear_bit(TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG, &transparent_hugepage_flags); -- 2.39.3