kernel/sysctl.c

查看/proc/sys目录下有哪些内容:

/proc/sys # ls
debug   dev     fs      kernel  net     vm

/proc/sys目录下的内容对应着下面这个sysctl_base_table数组中的procname,sysctl_base_table数组是在sysctl_init函数中通过register_sysctl_table注册的。

static struct ctl_table sysctl_base_table[] = {
        {    
                .procname       = "kernel",
                .mode           = 0555,
                .child          = kern_table,
        },   
        {    
                .procname       = "vm",
                .mode           = 0555,
                .child          = vm_table,
        },   
        {    
                .procname       = "fs",
                .mode           = 0555,
                .child          = fs_table,
        },   
        {    
                .procname       = "debug",
                .mode           = 0555,
                .child          = debug_table,
        },   
        {    
                .procname       = "dev",
                .mode           = 0555,
                .child          = dev_table,
        },   
        { }  
};

然后进入/proc/sys/的每个子目录下,比如进入/proc/sys/vm目录,查看此目录下有哪些内容:

/proc/sys/vm # ls
admin_reserve_kbytes       laptop_mode                overcommit_memory
block_dump                 legacy_va_layout           overcommit_ratio
dirty_background_bytes     lowmem_reserve_ratio       page-cluster
dirty_background_ratio     max_map_count              panic_on_oom
dirty_bytes                min_free_kbytes            percpu_pagelist_fraction
dirty_expire_centisecs     mmap_min_addr              scan_unevictable_pages
dirty_ratio                nr_pdflush_threads         swappiness
dirty_writeback_centisecs  oom_dump_tasks             user_reserve_kbytes
drop_caches                oom_kill_allocating_task   vfs_cache_pressure

对应着进入到sysctl_base_table元素中的.child,这里.child = vm_table,ls的这些内容又和vm_table中的procname对应。proc_handler是这些目录的操作函数。

static struct ctl_table vm_table[] = {
        {
                .procname       = "overcommit_memory",
                .data           = &sysctl_overcommit_memory,
                .maxlen         = sizeof(sysctl_overcommit_memory),
                .mode           = 0644,
                .proc_handler   = proc_dointvec_minmax,
                .extra1         = &zero,
                .extra2         = &two,
        },
        {
                .procname       = "panic_on_oom",
                .data           = &sysctl_panic_on_oom,
                .maxlen         = sizeof(sysctl_panic_on_oom),
                .mode           = 0644,
                .proc_handler   = proc_dointvec_minmax,
                .extra1         = &zero,
                .extra2         = &two,
        },
        {
                .procname       = "oom_kill_allocating_task",
                .data           = &sysctl_oom_kill_allocating_task,
                .maxlen         = sizeof(sysctl_oom_kill_allocating_task),
                .mode           = 0644,
                .proc_handler   = proc_dointvec,
        },
        {
                .procname       = "oom_dump_tasks",
                .data           = &sysctl_oom_dump_tasks,
                .maxlen         = sizeof(sysctl_oom_dump_tasks),
                .mode           = 0644,
                .proc_handler   = proc_dointvec,
        },
...
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luckywang1103

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值