找回密码
 -注册-

Linux音频系统中的延迟优化实践,兼谈preempt rt和augomagic preemption

查看数: 9304 | 评论数: 62 | 收藏 18
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-11-4 01:34

正文摘要:

经常看到有烧友说hifi要降低延迟。很多动手能力强的烧友用上了daphile、snakeoil os、audiolinux/gentooplayer等的rt内核,用上了hqplayer os的低延迟内核,甚至是xenomai内核。有的烧友强化路由器和交换机的性能, ...

回复

norman_lu 来自 上海宝山区 发表于 2023-11-4 10:21
延迟测试对比

1 低延迟内核
gentoo-rpi4 /usr/src # cyclictest  -l 10000 -m -Sp98 -i100 -d0                                                                                             
# /dev/cpu_dma_latency set to 0us                                                                                                                           
policy: fifo: loadavg: 0.08 0.33 0.17 2/108 7829                                                                                                            

T: 0 ( 7826) P:98 I:100 C:  10000 Min:      8 Act:    9 Avg:    9 Max:      60                                                                              
T: 1 ( 7827) P:98 I:100 C:   9936 Min:      8 Act:    9 Avg:    9 Max:      16                                                                              
T: 2 ( 7828) P:98 I:100 C:   9823 Min:      7 Act:    9 Avg:    8 Max:      14                                                                              
T: 3 ( 7829) P:98 I:100 C:   9691 Min:      9 Act:    9 Avg:    9 Max:      30



2 automagic内核 (做了内核隔离,所以只有三cpu的测试结果)
GentooRed /usr/src/linux # cyclictest  -l 10000 -m -Sp98 -i100 -d0                                                                                          
WARN: stat /dev/cpu_dma_latency failed: No such file or directory                                                                                          
policy: fifo: loadavg: 0.97 0.43 0.16 1/124 25456                                                                                                           

T: 0 (25454) P:98 I:100 C:  10000 Min:      4 Act:    4 Avg:    4 Max:      26                                                                              
T: 1 (25455) P:98 I:100 C:   9942 Min:      4 Act:    5 Avg:    5 Max:      61                                                                              
T: 2 (25456) P:98 I:100 C:   9839 Min:      4 Act:    5 Avg:    4 Max:      27


arunayang 来自 陕西渭南 发表于 2024-11-11 21:15
感谢楼主发这么好的技术贴,等有时间自己编译个rt内核玩玩。
中关村东路 来自 北京 发表于 2024-2-26 14:21
xbt123ufo 发表于 2024-2-26 13:29
随便优化了一下Chromebook,延迟测试的数据就比audiolinux的树莓派5的数据低了

恭喜恭喜
xbt123ufo 来自 湖北武汉 发表于 2024-2-26 13:29
随便优化了一下Chromebook,延迟测试的数据就比audiolinux的树莓派5的数据低了
xbt123ufo 来自 湖北武汉 发表于 2024-2-26 13:23
按照楼主的方法,我给我的Chromebook,编译了实时内核,开启Automagic模式,打了cpu优化补丁,另外简单修改了一些选项,rootfs分区用void linux官网提供的rootfs。相比没有优化的通用内核,感觉音乐更有节拍感,身体打节拍更带劲了,不知道是不是脑放。
leonjo 来自 香港 发表于 2024-1-15 16:08
中关村东路 发表于 2024-1-15 15:49
主要还是hqplayer naa没提供RTOS的版本吧

这个确实,RTOS很多软件都没是硬伤。
中关村东路 来自 荷兰 发表于 2024-1-15 15:49
leonjo 发表于 2024-1-15 15:34
lz有考虑过用RTOS来试试么。比如QNX

主要还是hqplayer naa没提供RTOS的版本吧
leonjo 来自 香港 发表于 2024-1-15 15:34
lz有考虑过用RTOS来试试么。比如QNX
中关村东路 来自 北京 发表于 2024-1-15 15:27
本帖最后由 中关村东路 于 2024-1-15 15:31 编辑
clark8888 发表于 2024-1-15 12:36
实时 Linux 内核音质会更好吗? - invalid s的回答 - 知乎
https://www.zhihu.com/question/530950907/answ ...

首先呢,我所有的帖子都不说音质,只讨论技术问题。其次,你发个这种低智网站的低级程序员发的帖子想说明什么……但凡你稍微读懂了我的原贴也不会把cpu延迟和延迟联系当成一个东西,如果没读懂就不要来污染
clark8888 来自 北京 发表于 2024-1-15 12:36
实时 Linux 内核音质会更好吗? - invalid s的回答 - 知乎
https://www.zhihu.com/question/530950907/answer/3360679626
MusesAudio 来自 湖南长沙 发表于 2023-12-27 11:59
楼主技术NB
中关村东路 来自 荷兰 发表于 2023-12-27 02:23
linang 发表于 2023-12-26 23:21
我也觉得没哪么大,可能想尝试下吧,数据输出时不被中断和干扰是不是会更好些

你如果想折腾一下,建议搞一下cpu隔离,好不好听我不知道,确实是不被干扰,性能也是有提升的尤其是responsiveness。举个例子,树莓派4b/cm4网桥有四个核,一个给乱七八糟的东西"housekeeper",一个给roon/naa,一个给usb解码器,一个给网卡。隔离之后网卡就不需要和其他线程进程抢cpu时间了。有更多核心也可以类似利用,我的roon core的八核,四个核心加64G内存给了zfs,另外四个核心和32G内存给roon core。
可参考我在本站的帖子【1】"Roon系统硬核安装笔记",先看目录直接找想要的段落即可。也可以参考ubuntu的手册【2】,opensuse的手册【3】,方案都是类似的,并不必须是实时内核才能用。
【1】http://erji.net/forum.php?mod=viewthread&tid=2253401
【2】https://ubuntu.com/blog/real-time-kernel-tuning
【3】https://www.suse.com/c/cpu-isolation-introduction-part-1/
linang 来自 广东佛山 发表于 2023-12-26 23:21
中关村东路 发表于 2023-12-26 23:14
算错了吧,印象中dsd512应该是和100M网卡一个数量级的。我有时候升dsd1024,有时候升dsd512,树莓派的千 ...

我也觉得没哪么大,可能想尝试下吧,数据输出时不被中断和干扰是不是会更好些
中关村东路 来自 北京 发表于 2023-12-26 23:14
linang 发表于 2023-12-26 23:03
hqplayered输出DSD512数据时,达到500MB,网线要输出又输入会造成拥堵,这时有必要让hq网络输出子进程独 ...

算错了吧,印象中dsd512应该是和100M网卡一个数量级的。我有时候升dsd1024,有时候升dsd512,树莓派的千兆网卡就可以搞定
linang 来自 广东佛山 发表于 2023-12-26 23:03
中关村东路 发表于 2023-12-25 22:25
kidding,archlinux用的systemd,可以实现这个功能,改一下hqplayerd的systemd文件应该就可以,我没有arc ...

hqplayered输出DSD512数据时,达到500MB,网线要输出又输入会造成拥堵,这时有必要让hq网络输出子进程独占一个网口是有必要的,对吗
lalekuku 来自 北京 发表于 2023-12-26 15:29
atioox 发表于 2023-12-26 00:22
音乐回放而言,时延平稳比时延低更有意义
当然,现实是,更多的设备只是模拟输出没做好,而不是什么时钟ji ...

你似乎把播放时延跟实时系统的内部处理延迟搞混了
中关村东路 来自 北京 发表于 2023-12-26 01:21
atioox 发表于 2023-12-26 00:22
音乐回放而言,时延平稳比时延低更有意义
当然,现实是,更多的设备只是模拟输出没做好,而不是什么时钟ji ...

嗯,我在绿檀所有帖子都不讨论听感,只说一个目标如何实现。不过如果你观察一下就会发现,延迟低和延迟的方差低(因为所有延迟都在一个很低的水平上)基本是正相关的
atioox 来自 江苏 发表于 2023-12-26 00:22
音乐回放而言,时延平稳比时延低更有意义
当然,现实是,更多的设备只是模拟输出没做好,而不是什么时钟jitter,处理延迟影响了听感
中关村东路 来自 荷兰 发表于 2023-12-25 22:25
linang 发表于 2023-12-25 16:24
楼主你好,我主板是双网口,安装arch linux ,能不能实现hqplayer输出独占或优先使用一个网口

kidding,archlinux用的systemd,可以实现这个功能,改一下hqplayerd的systemd文件应该就可以,我没有archlinux无法测试了。参考【1】,搜索 RestrictNetworkInterfaces

  1. sudo systemd-run -t -p RestrictNetworkInterfaces=enp0s8 ping 8.8.8.8
复制代码


【1】https://kinvolk.io/blog/2021/04/extending-systemd-security-features-with-ebpf/

Archiver|手机版|粤icp备09046054号|耳机网-耳机大家坛

粤公网安备 44030602000598号 耳机大家坛、www.erji.net、网站LOGO图形均为注册商标

GMT+8, 2024-11-26 22:35

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表