编译RT-tests对Linux实时性测试

本文解析了cyclictest原理,讲述了如何通过定时中断测量中断和调度延时,以及如何在Linux下进行长时间跨负载测试。重点介绍了下载源码、编译和运行步骤,并强调了测试环境准备的重要性。
Stable-Diffusion-3.5

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

        当事件发生时,系统响应该事件的时间即为延时。
        延时在不同的上下文有不同的含义,而cyclictest所测得的延时是中断延时加调度延时,如下图。中断延时(interrupt latency),即中断发生到进入中断处理程序ISR的延时。调度延时(scheduling latency),即当任务被唤醒到任务真正获得CPU使用权中间的延时。  

cyclictest原理:

        通过启动一个master的普通进程,然后master进程再启动指定数量指定优先级的实时进程,实时进程会设置一个timer周期性的唤醒自己(从timer溢出触发中断并进入ISR调用wake_up_process()唤醒实时进程,到进程真正能被运行,这中间的时间即我们需要测量的延时)。实时进程得到运行后会再次获取当前系统时间,减去睡眠时间时的时间以及睡眠的时间即可得到延时时间,并通过共享内存将该值传递给master进程进行统计,如此周而复始,最终由master进程将结果输出。

注意:当造成延时的事件发生在timer溢出之前,那么这样的延时将不会被捕捉到,所以我们需要足够久的运行cyclictest才能更大概率的抓取全面的延时数据。

        运行cyclictest前,我们有几点需要注意的地方。首先是短时间的运行cyclictest得出的结果是无意义的,再就是测试系统上没有合适负载的情况下运行cyslictest所得到的延时统计也是无意义的。所以我们最好在待测系统上模拟出负载并运行cyclictest大于24小时统计出延时。

1,下载源码

        git clone git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git

        git checkout origin/stable/v1.0

2,交叉编译

        修改Makefile中的编译器

        CC = arm-linux-gnueabihf-gcc

        AR = arm-linux-gnueabihf-ar

        执行make

        如果报错: src/cyclictest/rt_numa.h:29:18: fatal error: numa.h: 没有那个文件或目录

                1)安装apt-file 来找到依赖库

                    apt-get install apt-file
                    apt-file update #更新源

                2)寻找 numa.h

                    apt-file install numa.h

                3) 安装相应的库

                    apt-get install libnuma-dev

3,运行cyclictest程序进行实时性测试:

        cyclictest -t 5 -p 80 -n

4,cyclictest运行结果详解

T: 0 序号为0的线程
P: 0 线程优先级为0
C: 9397 计数器。线程的时间间隔每达到一次,计数器加1
I: 1000 时间间隔为1000微秒(us)
Min: 最小延时(us)
Act: 最近一次的延时(us)
Avg:平均延时(us)
Max: 最大延时(us)

参考链接:实时性测试:cyclictest详解 - 知乎

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值