浅谈Linux网络协议栈之接收数据

文章来源:角膜穿孔   发布时间:2020-9-2 20:40:38   点击数:
  

本文继上篇后续,介绍了一个Linux服务器接收一个数据包并发送的协议栈和用户套接字的过程。全文篇幅(约字,阅读至少需15分钟)

回顾上篇文章:浅谈Linux网络协议栈之接收数据(上篇)

SoftIRQs

什么是softirq?

Linux内核中的softirq系统是一种在驱动程序中实现的中断处理程序的机制。

softirq系统可以想象为一系列内核线程(每个CPU一个),为处理不同的终端事件而存在的函数。你可以通过top命令来看到ksoftirqd/0在你的进程列表中,这说明softirq正运行在CPU中。

内核的子系统通过open_softirq函数来注册一个softirq处理函数。

1

ksoftirqd

首先我们看看ksoftirqd是如何初始化的。

kernel/softirq.c

staticstructsmp_hotplug_threadsoftirq_threads={.store=ksoftirqd,.thread_should_run=ksoftirqd_should_run,.thread_fn=run_ksoftirqd,.thread_

转载请注明:http://www.iwkqm.com/tjyy/11105.html
  • 上一篇文章:
  • 下一篇文章: 没有了