linux kernel notifier chain(事件通知链)

Posted rivsidn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux kernel notifier chain(事件通知链)相关的知识,希望对你有一定的参考价值。

  Linux内核中各个子系统相互依赖,当其中某个子系统状态发生改变时,就必须使用一定的机制告知使用其服务的其他子系统,以便其他子系统采取相应的措施。为满足这样的需求,内核实现了事件通知链机制(notification chain)。

struct notifier_block {
       int (*notifier_call)(struct notifier_block *, unsigned long, void *);
       struct notifier_block *next;
       int priority;
};

  此处只要注意一个 priority 优先级,参见下面一段代码(./net/rds/tcp.c p382)

static struct notifier_block rds_tcp_dev_notifier = {                                                                                                   
    .notifier_call        = rds_tcp_dev_event,
    .priority = -10, /* must be called after other network notifiers */
};

  想要接受一个通知链信息需要自己设置两个参数:通知链调用函数,优先级。

  优先级能够控制函数调用的顺序,默认优先级为 0,数字越小表示越晚被调用。

 

  看着很简单吧,哈哈哈,方案暂时不用这个啦,回头再看,:)。

 

以上是关于linux kernel notifier chain(事件通知链)的主要内容,如果未能解决你的问题,请参考以下文章

Linux kernel oops

Linux内核基础--事件通知链(notifier chain)转

Linux学习日记之crontab使用notify-send实现每小时通知提醒

使用 notify-send 的远程 linux 桌面通知

Linux 内核模块开发怎么进行单元测试

linux kernel 没有输出信息 怎么调试