- 论坛徽章:
- 8
|
本帖最后由 firocu 于 2013-12-04 12:37 编辑
Hi all
我有三个module: log, qos , proxy。
其中log提供了一个接口,是最先insmod的,他提供了一个函数接口,让qos 和proxy 在
在注册是得到一个log 基础能力。
log这个函数提供了在/proc/sys 下面动态改变log级别。
我现在的写方法是:
static struct ctl_path ctl_path[] = {
{.procname = "core",},
{.procname = "log",},
{}
};
之后这个函数调用这:
ctl_table_header = register_sysctl_paths(ctl_path, module->log_ctl)
log_ctl是每个模块自身的ctl_table.
假如 qos 先注册了, 之后proxy又注册了。
/proc/sys/core/log/ 下面就有了qos he proxy的控制文件了。
接下要是先移除 qos 整个/proc/sys/core/ 都没了。
要是先移除proxy则没有问题。
也就是说
register_sysctl_paths()这个接口这么用不对, 应该还有别的借口。
或是好的方法。
====================答案====================================
这种问题的解决思路, 就是看kernel。
我仿照内核中注册sysctl_base_table, 在core模块注册了一条ctl 路径,其他照旧。
fin
|
|