我正在阅读理解linux网络内部书和链接上Linux内核空间中的pdf网络数据包捕获
在主题9.2.2下的LinuxNetworkingInternational的理解中,给出了
处理输入帧的代码分为两部分:首先驱动程序将帧复制到内核可访问的输入队列中,然后内核处理它(通常将其传递给相关协议(如IP)的处理程序)。第一部分在中断上下文中执行,可以抢先执行第二部分。
现在查询是何时排定第二部分?谁安排他们?调用是在中断处理程序中进行的吗?在Linux内核空间的网络数据包捕获中,分组输入流描述为:-
When working in interrupt driven model, the n
这是我的C程序(在Linux中)的相关部分:
while (input != ' '){
write(serial_port, msg, sizeof(msg));
//1. here I would like to wait at least 100 us with the Tx line high
//2. followed by at least 8us with the Tx line low
//3. and then repeat the message
input = mygetch();
}
如您所见,每次通过串口发送msg后,我希望将Tx行设置为10
我一直在阅读Linux的性能调优,以便在接收金融市场数据时获得最快的数据包处理时间。我看到,当网卡接收到一个数据包时,它会通过DMA将其放入内存中,然后引发一个HardIRQ --这反过来会设置一些NAPI设置并引发一个SoftIRQ。然后,SoftIRQ使用NAPI/设备驱动程序通过轮询从RX缓冲区读取数据,但这只运行一段有限的时间(net.core.netdev_budget,默认为300个数据包)。这些是指运行ubuntu的真正服务器,其中有一个太阳光NIC,我的问题如下:
如果每个HardIRQ引发一个SoftIRQ,而设备驱动程序在1 go (netdev_budget)中读取多个数