C 如何知道中断后内核开始执行的时间?

C 如何知道中断后内核开始执行的时间?,c,linux,linux-kernel,kernel,interrupt,C,Linux,Linux Kernel,Kernel,Interrupt,Linux已经包含了网络数据的所有中断处理。关于这件事你不必做任何事。数据到达后,Linux将处理它(在内核中),并将其传递给等待数据的进程。不要为网络设备编写中断处理程序。您不必编写中断处理程序,因为Linux已经提供了所需的所有中断处理程序。只需从打开的套接字读取程序 我想知道中断后内核开始执行的时间。有人能帮我知道内核开始执行的时间吗 如何复制中断发生的时间并将其作为响应发送回客户端。此时间将根据机器当前的操作而变化,如果它处于中断被屏蔽的关键部分,它将等待。希望这些关键部分很短。 您可以

Linux已经包含了网络数据的所有中断处理。关于这件事你不必做任何事。数据到达后,Linux将处理它(在内核中),并将其传递给等待数据的进程。不要为网络设备编写中断处理程序。您不必编写中断处理程序,因为Linux已经提供了所需的所有中断处理程序。只需从打开的套接字读取程序

我想知道中断后内核开始执行的时间。有人能帮我知道内核开始执行的时间吗


如何复制中断发生的时间并将其作为响应发送回客户端。

此时间将根据机器当前的操作而变化,如果它处于中断被屏蔽的关键部分,它将等待。希望这些关键部分很短。
您可以使用逻辑分析仪来观察这一点(我很久以前在Windows NT机器上做过,奔腾100 MHz,通常的中断延迟为几微秒,而IDE驱动器同时繁忙时通常为100毫秒)。我敢打赌,对于最新的机器和linux标准内核,它应该总是几微秒,小于30秒,但这只是一个猜测。实时linux内核将有一个一致的响应时间。

请指定“乞讨事件”和“目标事件”——您想知道它们的延迟(您想知道哪些事件之间的差异)。可能重复我忘了提到:它是一个带有实时linux或qnx实时操作系统的嵌入式pc目标。我忘了提到:它是一个带有实时linux或qnx实时操作系统的嵌入式pc目标。那么,当内核中发生中断时,如何找到时间戳呢?您可以使用Linux跟踪工具包(LTTNG)来获取中断的时间戳。在QNX中,您可以使用插入指令的内核()-存在中断事件。编译内核时使用的抢占级别以及系统上运行的其他内容将是您的主要因素。我认为当你说实时内核时,你是在暗示RT_抢占补丁,但即使是这样,它也有几个编译选项(PREEMPT_FULL、PREEMPT_RTB、PREEMPT_LL),等等。你最好的选择是使用Nocolas建议的分析器。