[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220908083452.2844125-1-liushixin2@huawei.com>
Date: Thu, 8 Sep 2022 16:34:52 +0800
From: Liu Shixin <liushixin2@...wei.com>
To: Jonathan Corbet <corbet@....net>,
Johannes Weiner <hannes@...xchg.org>,
Michal Hocko <mhocko@...nel.org>,
Roman Gushchin <roman.gushchin@...ux.dev>,
Shakeel Butt <shakeelb@...gle.com>,
Muchun Song <songmuchun@...edance.com>,
Andrew Morton <akpm@...ux-foundation.org>
CC: <linux-doc@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<cgroups@...r.kernel.org>, <linux-mm@...ck.org>,
Liu Shixin <liushixin2@...wei.com>,
Kefeng Wang <wangkefeng.wang@...wei.com>
Subject: [PATCH] mm/memcontrol: use kstrtobool for swapaccount param parsing
Use kstrtobool which is more powerful to handle all kinds of parameters
like 'Yy1Nn0' or [oO][NnFf] for "on" and "off".
Signed-off-by: Liu Shixin <liushixin2@...wei.com>
---
Documentation/admin-guide/kernel-parameters.txt | 7 ++++---
mm/memcontrol.c | 8 ++++----
mm/swap_cgroup.c | 2 +-
3 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 2434c6729f1c..5f8531e39bc9 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -6037,10 +6037,11 @@
Execution Facility on pSeries.
swapaccount= [KNL]
- Format: [0|1]
+ Format: { [oO][Nn]/Y/y/1 | [oO][Ff]/N/n/0 }
Enable accounting of swap in memory resource
- controller if no parameter or 1 is given or disable
- it if 0 is given (See Documentation/admin-guide/cgroup-v1/memory.rst)
+ controller if no parameter or [oO][Nn]/Y/y/1 is given
+ or disable it if [oO][Ff]/N/n/0 is given
+ (See Documentation/admin-guide/cgroup-v1/memory.rst)
swiotlb= [ARM,IA-64,PPC,MIPS,X86]
Format: { <int> [,<int>] | force | noforce }
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 0a1a8a846870..5511c0c120d9 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -7434,10 +7434,10 @@ bool mem_cgroup_swap_full(struct folio *folio)
static int __init setup_swap_account(char *s)
{
- if (!strcmp(s, "1"))
- cgroup_memory_noswap = false;
- else if (!strcmp(s, "0"))
- cgroup_memory_noswap = true;
+ bool res;
+
+ if (!kstrtobool(s, &res))
+ cgroup_memory_noswap = !res;
return 1;
}
__setup("swapaccount=", setup_swap_account);
diff --git a/mm/swap_cgroup.c b/mm/swap_cgroup.c
index 5a9442979a18..107dd0e94b01 100644
--- a/mm/swap_cgroup.c
+++ b/mm/swap_cgroup.c
@@ -194,7 +194,7 @@ int swap_cgroup_swapon(int type, unsigned long max_pages)
return 0;
nomem:
pr_info("couldn't allocate enough memory for swap_cgroup\n");
- pr_info("swap_cgroup can be disabled by swapaccount=0 boot option\n");
+ pr_info("swap_cgroup can be disabled by swapaccount=[oO][Ff]/N/n/0 boot option\n");
return -ENOMEM;
}
--
2.25.1
Powered by blists - more mailing lists