博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
慢慢欣赏linux 网络协议栈三 监听链路状态
阅读量:4070 次
发布时间:2019-05-25

本文共 1109 字,大约阅读时间需要 3 分钟。

唤醒任务队列处理消息

static DECLARE_DELAYED_WORK(linkwatch_work, linkwatch_event);=>void linkwatch_event(struct work_struct *dummy)	rtnl_lock();	__linkwatch_run_queue(time_after(linkwatch_nextevent, jiffies));	=>void __linkwatch_run_queue(int urgent_only)		list_splice_init(&lweventlist, &wrk);		while (!list_empty(&wrk))			dev = list_first_entry(&wrk, struct net_device, link_watch_list);			list_del_init(&dev->link_watch_list);			if (urgent_only && !linkwatch_urgent_event(dev)) {				list_add_tail(&dev->link_watch_list, &lweventlist);				continue;			}			linkwatch_do_dev(dev);				if (!list_empty(&lweventlist))			linkwatch_schedule_work(0);				rtnl_unlock();

状态变化添加消息

void netif_carrier_on(struct net_device *dev)	linkwatch_fire_event(dev);	=>void linkwatch_fire_event(struct net_device *dev)		bool urgent = linkwatch_urgent_event(dev);		linkwatch_add_event(dev);		=>void linkwatch_add_event(struct net_device *dev)			if (list_empty(&dev->link_watch_list)) 				list_add_tail(&dev->link_watch_list, &lweventlist);				dev_hold(dev);		linkwatch_schedule_work(urgent);	if (netif_running(dev))		__netdev_watchdog_up(dev);

 

转载地址:http://dvlji.baihongyu.com/

你可能感兴趣的文章
linux和windows内存布局验证
查看>>
忽略图片透明区域的事件(Flex)
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>
Selenium-WebDriverApi接口详解
查看>>
Selenium-ActionChains Api接口详解
查看>>
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
PHP那点小事--三元运算符
查看>>
fastcgi_param 详解
查看>>
学习python(1)——环境与常识
查看>>
学习设计模式(3)——单例模式和类的成员函数中的静态变量的作用域
查看>>
一文看清HBase的使用场景
查看>>
解析zookeeper的工作流程
查看>>
搞定Java面试中的数据结构问题
查看>>
慢慢欣赏linux make uImage流程
查看>>
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>