]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commitdiff
mm: hugetlb: move hugeltb sysctls to its own file
authorKefeng Wang <wangkefeng.wang@huawei.com>
Thu, 9 Mar 2023 12:20:11 +0000 (20:20 +0800)
committerLuis Chamberlain <mcgrof@kernel.org>
Tue, 21 Mar 2023 05:39:03 +0000 (22:39 -0700)
This moves all hugetlb sysctls to its own file, also kill an
useless hugetlb_treat_movable_handler() defination.

Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
Reviewed-by: Muchun Song <songmuchun@bytedance.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
include/linux/hugetlb.h
kernel/sysctl.c
mm/hugetlb.c

index 7c977d234aba3c546fa2f61f35a349d8281001d0..4056b05d81edf6db0332640e5af3e6e2328b48d2 100644 (file)
@@ -124,14 +124,6 @@ void hugepage_put_subpool(struct hugepage_subpool *spool);
 
 void hugetlb_dup_vma_private(struct vm_area_struct *vma);
 void clear_vma_resv_huge_pages(struct vm_area_struct *vma);
-int hugetlb_sysctl_handler(struct ctl_table *, int, void *, size_t *, loff_t *);
-int hugetlb_overcommit_handler(struct ctl_table *, int, void *, size_t *,
-               loff_t *);
-int hugetlb_treat_movable_handler(struct ctl_table *, int, void *, size_t *,
-               loff_t *);
-int hugetlb_mempolicy_sysctl_handler(struct ctl_table *, int, void *, size_t *,
-               loff_t *);
-
 int move_hugetlb_page_tables(struct vm_area_struct *vma,
                             struct vm_area_struct *new_vma,
                             unsigned long old_addr, unsigned long new_addr,
index c14552a662ae1afde0b1d2fcb18bcd6e7ed739b8..ce0297acf97c633f1e9d8e9e1efb08f0b1c05ad2 100644 (file)
@@ -2140,38 +2140,6 @@ static struct ctl_table vm_table[] = {
                .extra1         = SYSCTL_ZERO,
                .extra2         = SYSCTL_ONE,
        },
-#endif
-#ifdef CONFIG_HUGETLB_PAGE
-       {
-               .procname       = "nr_hugepages",
-               .data           = NULL,
-               .maxlen         = sizeof(unsigned long),
-               .mode           = 0644,
-               .proc_handler   = hugetlb_sysctl_handler,
-       },
-#ifdef CONFIG_NUMA
-       {
-               .procname       = "nr_hugepages_mempolicy",
-               .data           = NULL,
-               .maxlen         = sizeof(unsigned long),
-               .mode           = 0644,
-               .proc_handler   = &hugetlb_mempolicy_sysctl_handler,
-       },
-#endif
-        {
-               .procname       = "hugetlb_shm_group",
-               .data           = &sysctl_hugetlb_shm_group,
-               .maxlen         = sizeof(gid_t),
-               .mode           = 0644,
-               .proc_handler   = proc_dointvec,
-        },
-       {
-               .procname       = "nr_overcommit_hugepages",
-               .data           = NULL,
-               .maxlen         = sizeof(unsigned long),
-               .mode           = 0644,
-               .proc_handler   = hugetlb_overcommit_handler,
-       },
 #endif
        {
                .procname       = "lowmem_reserve_ratio",
index 07abcb6eb203044e39ed9cb839023774c53f3a8a..0ee77c55e44e1fe3fc2027cab7059f500fdfac57 100644 (file)
@@ -4202,6 +4202,12 @@ static void __init hugetlb_sysfs_init(void)
        hugetlb_register_all_nodes();
 }
 
+#ifdef CONFIG_SYSCTL
+static void hugetlb_sysctl_init(void);
+#else
+static inline void hugetlb_sysctl_init(void) { }
+#endif
+
 static int __init hugetlb_init(void)
 {
        int i;
@@ -4257,6 +4263,7 @@ static int __init hugetlb_init(void)
 
        hugetlb_sysfs_init();
        hugetlb_cgroup_file_init();
+       hugetlb_sysctl_init();
 
 #ifdef CONFIG_SMP
        num_fault_mutexes = roundup_pow_of_two(8 * num_possible_cpus());
@@ -4588,7 +4595,7 @@ out:
        return ret;
 }
 
-int hugetlb_sysctl_handler(struct ctl_table *table, int write,
+static int hugetlb_sysctl_handler(struct ctl_table *table, int write,
                          void *buffer, size_t *length, loff_t *ppos)
 {
 
@@ -4597,7 +4604,7 @@ int hugetlb_sysctl_handler(struct ctl_table *table, int write,
 }
 
 #ifdef CONFIG_NUMA
-int hugetlb_mempolicy_sysctl_handler(struct ctl_table *table, int write,
+static int hugetlb_mempolicy_sysctl_handler(struct ctl_table *table, int write,
                          void *buffer, size_t *length, loff_t *ppos)
 {
        return hugetlb_sysctl_handler_common(true, table, write,
@@ -4605,7 +4612,7 @@ int hugetlb_mempolicy_sysctl_handler(struct ctl_table *table, int write,
 }
 #endif /* CONFIG_NUMA */
 
-int hugetlb_overcommit_handler(struct ctl_table *table, int write,
+static int hugetlb_overcommit_handler(struct ctl_table *table, int write,
                void *buffer, size_t *length, loff_t *ppos)
 {
        struct hstate *h = &default_hstate;
@@ -4634,6 +4641,44 @@ out:
        return ret;
 }
 
+static struct ctl_table hugetlb_table[] = {
+       {
+               .procname       = "nr_hugepages",
+               .data           = NULL,
+               .maxlen         = sizeof(unsigned long),
+               .mode           = 0644,
+               .proc_handler   = hugetlb_sysctl_handler,
+       },
+#ifdef CONFIG_NUMA
+       {
+               .procname       = "nr_hugepages_mempolicy",
+               .data           = NULL,
+               .maxlen         = sizeof(unsigned long),
+               .mode           = 0644,
+               .proc_handler   = &hugetlb_mempolicy_sysctl_handler,
+       },
+#endif
+       {
+               .procname       = "hugetlb_shm_group",
+               .data           = &sysctl_hugetlb_shm_group,
+               .maxlen         = sizeof(gid_t),
+               .mode           = 0644,
+               .proc_handler   = proc_dointvec,
+       },
+       {
+               .procname       = "nr_overcommit_hugepages",
+               .data           = NULL,
+               .maxlen         = sizeof(unsigned long),
+               .mode           = 0644,
+               .proc_handler   = hugetlb_overcommit_handler,
+       },
+       { }
+};
+
+static void hugetlb_sysctl_init(void)
+{
+       register_sysctl_init("vm", hugetlb_table);
+}
 #endif /* CONFIG_SYSCTL */
 
 void hugetlb_report_meminfo(struct seq_file *m)