gpt4 book ai didi

linux - 如何测量硬件中断和相关系统调用之间的延迟?

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:00 26 4
gpt4 key购买 nike

我有一台带有两个 PCIe RS-485 卡(XR17V354 和 XR17V352)的 Linux 机器。我将其中一张卡上的一个端口硬接线到另一张卡上的一个端口。这些卡由通用串行驱动程序 (serial8250) 驱动。

我正在运行测试并测量延迟。我有一个 Linux 进程从端口发送两个字节,然后监听两个传入字节。另一个进程收到两个字节并立即发回两个字节。

我测得此往返延迟约为 1500 微秒,标准偏差约为 40 微秒。我试图了解这种延迟的来源。具体来说,我想了解从硬 IRQ 触发到信号数据已准备好读取的时间与字节可供用户空间进程使用的时间之间的差异。

我知道 ftrace 功能,但我不确定如何最好地利用它,或者是否有其他更合适的工具。谢谢。

最佳答案

这是什么驱动程序?我假设它是内核空间中的驱动程序而不是 UIO。独立于您的问题,您可以开始查看从硬件中断到内核驱动程序以及从那里到用户空间需要多长时间。

这里 [1] 是一些古老的测试用例,可以稍微修改一下,因此您可以将中断延迟与“标准”Linux、抢占式 rt 修补的 Linux 以及 Xenomai 之类的东西进行比较(尽管 Xenomai 解决方案需要你重写你的驱动程序)。

您可能想看看 [2]、cyclictest 和 friend ,并尝试使用 perf 深入您的系统以查看系统范围内的更多详细信息。

最后但同样重要的是看一下 LTTng[3],它使您能够检测代码并且它已经有很多检测点。

[1] http://www.denx.de/wiki/DULG/AN2008_03_Xenomai_gpioirqbench

[2] http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-rt/rt-tests/

[3] http://lttng.org/

关于linux - 如何测量硬件中断和相关系统调用之间的延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44320214/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com