通过sysctl 配置shall memory
来源:互联网 发布:拖动拼图验证码java 编辑:程序博客网 时间:2024/06/03 20:03
sysctl/sysfs/系统调用/netlink/ioctl 等都是user space和 kernel space通信的方式,其中sysctl是通过在user space配置kernel space的有效手段,sysctl是基于proc系统的
static struct ctl_table ipc_root_table[] = {
{
.procname = "kernel",
.mode = 0555,
.child = ipc_kern_table,
},
{}
};
static int __init ipc_sysctl_init(void)
{
register_sysctl_table(ipc_root_table);
return 0;
}
device_initcall(ipc_sysctl_init);
在kernel初始化的过程中会调用ipc_sysctl_init
static struct ctl_table ipc_kern_table[] = {
{
.procname = "shmmax",
.data = &init_ipc_ns.shm_ctlmax,
.maxlen = sizeof(init_ipc_ns.shm_ctlmax),
.mode = 0644,
.proc_handler = proc_ipc_doulongvec_minmax,
},
{
.procname = "shmall",
.data = &init_ipc_ns.shm_ctlall,
.maxlen = sizeof(init_ipc_ns.shm_ctlall),
.mode = 0644,
.proc_handler = proc_ipc_doulongvec_minmax,
},
}
当在用户空间访问shmall,其会调用到proc_ipc_doulongvec_minmax 来修改init_ipc_ns.shm_ctlall的值。从proc_ipc_doulongvec_minmax的命名来看init_ipc_ns.shm_ctlall 是一个ulong形的参数,修改时不能超过最大最小值
这里以用户空间配置shall memory为例
static struct ctl_table ipc_root_table[] = {
{
.procname = "kernel",
.mode = 0555,
.child = ipc_kern_table,
},
{}
};
static int __init ipc_sysctl_init(void)
{
register_sysctl_table(ipc_root_table);
return 0;
}
device_initcall(ipc_sysctl_init);
在kernel初始化的过程中会调用ipc_sysctl_init
static struct ctl_table ipc_kern_table[] = {
{
.procname = "shmmax",
.data = &init_ipc_ns.shm_ctlmax,
.maxlen = sizeof(init_ipc_ns.shm_ctlmax),
.mode = 0644,
.proc_handler = proc_ipc_doulongvec_minmax,
},
{
.procname = "shmall",
.data = &init_ipc_ns.shm_ctlall,
.maxlen = sizeof(init_ipc_ns.shm_ctlall),
.mode = 0644,
.proc_handler = proc_ipc_doulongvec_minmax,
},
}
当在用户空间访问shmall,其会调用到proc_ipc_doulongvec_minmax 来修改init_ipc_ns.shm_ctlall的值。从proc_ipc_doulongvec_minmax的命名来看init_ipc_ns.shm_ctlall 是一个ulong形的参数,修改时不能超过最大最小值
阅读全文
0 0
- 通过sysctl 配置shall memory
- ipcs 查看shall memory
- sysctl配置
- 通过sysctl关掉oom
- sysctl.conf的配置
- (转)sysctl.conf配置
- sysctl(配置优化参数)
- sysctl tcp 相关配置解释
- sysctl.conf文件配置详解
- sysctl.conf文件配置详解
- sysctl
- sysctl
- sysctl
- 通过/etc/sysctl.conf加固 内核优化
- shall编程
- sysctl.conf 参考配置及说明
- nginx配置个https+backlog+sysctl.conf
- What shall I do?
- centos7 编译安装mysql
- JTable表格实现动态更新的两种方式
- 解决drawerlayout嵌套listview 导致listview不能滑动的问题
- HTTP/2技术解密:如何处理线端阻塞
- Compiling regard3D
- 通过sysctl 配置shall memory
- Python小练习
- Windows单机配置Kafka环境
- strucs2过滤器和拦截器的区别
- Java基础知识总结(面试笔试福利)
- Intel和ARM
- 什么是交叉编译
- LeetCode175 Combine Two Tables
- php 提交字段太多,后台要对很多表进行更新,字段太多怎样处理