免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: qinjiana0786
打印 上一主题 下一主题

[出版]--基于2.6.26内核的《追踪LINUX TCP/IP代码运行》 [复制链接]

论坛徽章:
0
351 [报告]
发表于 2010-05-07 20:56 |只看该作者
好东西

论坛徽章:
0
352 [报告]
发表于 2010-05-17 16:30 |只看该作者
net_tx_action 函数书中没有提及?

论坛徽章:
0
353 [报告]
发表于 2010-05-17 16:54 |只看该作者
本帖最后由 qinjiana0786 于 2010-05-17 17:04 编辑
net_tx_action 函数书中没有提及?
Roemer 发表于 2010-05-17 16:30



    有的,书中有函数索引用来查询。

论坛徽章:
0
354 [报告]
发表于 2010-05-17 17:04 |只看该作者
回复 353# qinjiana0786

能说一下页数吗?
我没有看到阿~~

论坛徽章:
0
355 [报告]
发表于 2010-05-17 17:07 |只看该作者
本帖最后由 qinjiana0786 于 2010-05-17 17:13 编辑
回复  qinjiana0786

能说一下页数吗?
我没有看到阿~~
Roemer 发表于 2010-05-17 17:04


实在抱歉,现在出差中,你先查一下书中的索引。

论坛徽章:
0
356 [报告]
发表于 2010-05-17 18:05 |只看该作者
索引中有net_rx_action
没有net_tx_action  

论坛徽章:
0
357 [报告]
发表于 2010-05-17 20:51 |只看该作者
本帖最后由 qinjiana0786 于 2010-05-17 21:14 编辑
索引中有net_rx_action
没有net_tx_action
Roemer 发表于 2010-05-17 18:05



    实在不好意思,出差刚回来,没有随身携带书籍因而未能及时回复,请见谅。

net_tx_action这个软中断发送函数在书中第12章是列出了设置过程,它的作用就是通过软中断发送数据包,这是内核需要执行进程调度时才会执行发送过程dev_queue_xmit()-->qdisc_run()-->__qdisc_run()-->netif_schedule(),最终在netif_schedule函数中触发这个函数。

书中的主要发送路线是dev_queue_xmit()-->qdisc_run()-->__qdisc_run()-->qdisc_restart(),这个路线最后调用dev_hard_start_xmit()来发送数据包,这才是内核的主发送过程,如果你看一下net_tx_action函数的代码会发现它最终又会回到qdisc_run()-->__qdisc_run()-->qdisc_restart()这条主线上来,你在看完前面的内容后会发现其代码相对简单清晰:
  1. static void net_tx_action(struct softirq_action *h)
  2. {
  3.         struct softnet_data *sd = &__get_cpu_var(softnet_data);

  4.         。。。。。。

  5.         if (sd->output_queue) {
  6.                 struct Qdisc *head;

  7.                 local_irq_disable();
  8.                 head = sd->output_queue;
  9.                 sd->output_queue = NULL;
  10.                 local_irq_enable();

  11.                 while (head) {
  12.                         struct Qdisc *q = head;
  13.                 。。。。。。
  14.                                 qdisc_run(q);
  15.                 。。。。。。
  16.         }
  17. }
复制代码
qdisc_run这个函数详细过程在第11章中做了详细的讲述,并且书中也有介绍软中断的内容,由于篇幅所限就没有详细列出这个软中断发送函数的内容。

评分

参与人数 1可用积分 +3 收起 理由
Roemer + 3

查看全部评分

论坛徽章:
0
358 [报告]
发表于 2010-05-17 22:15 |只看该作者
回复 357# qinjiana0786


    多谢~~
   

论坛徽章:
0
359 [报告]
发表于 2010-05-18 09:33 |只看该作者
回复  qinjiana0786


    多谢~~
Roemer 发表于 2010-05-17 22:15



    不用客气,祝你学有所乐、学有所成。

论坛徽章:
5
摩羯座
日期:2014-07-22 09:03:552015元宵节徽章
日期:2015-03-06 15:50:392015亚冠之大阪钢巴
日期:2015-06-12 16:01:352015年中国系统架构师大会
日期:2015-06-29 16:11:2815-16赛季CBA联赛之四川
日期:2018-12-17 14:10:21
360 [报告]
发表于 2010-05-19 10:59 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP