开源改变世界

网络延迟中断 Mesa 以太网连接 #2281

推推 grbl 2年前 (2023-01-31) 242次浏览
打开
rodw-au 打开了这个问题 2个星期前 · 6条评论
打开

网络延迟中断 Mesa 以太网连接#2281

rodw-au 打开了这个问题 2个星期前 · 6条评论

注释

网络延迟中断 Mesa 以太网连接 #2281
罗德奥 评论了 2个星期前  

我将其作为一个问题提出,但它实际上是一个上游的 Debian 问题

在此处参考论坛上的这个 22 页线程:
https
://forum.linuxcnc.org/27-driver-boards/46911-mesa-hm2-hm2-7i96s-0-error-finishing-read?start=0 这似乎对 Realtek 卡的影响比对其他 NIC 的影响更大,但这不是唯一的。我怀疑 Realtek 卡比 Intel NIC 慢。一位用户还报告了带有大量从站的 ethercat 上的超时错误。

已打补丁的 Debian 内核的延迟过长导致实时线程在伺服线程周期内没有足够的时间与 Mesa 卡通信。mesa 卡然后关闭并且操作被禁用直到重新启动。
除了我自己之外,各种用户的测试表明该问题是在 linux-image-rt (preempt_rt) 内核 5.10 (Bullseye) 中引入的,并且在内核 6.10 当前内核中仍然存在)

从上游 (kernel.org) 源代码编译一个 PREEMPT_RT 内核可以很清楚地解决这个问题,这是由于https://salsa.debian.org/kernel-team/linux/-/tree/master/debian/上的 Debian 补丁中的某些东西补丁-rt

为了协助审查这一点,我从这里的原始来源编译了 linux-headers 的 .deb 文件和内核版本 6.1 的 preempt_rt 内核https://drive.google.com/drive/folders/10uwGg5RvZDDlLtQ8BZhM3At_gODk16na
一些辅助文件概述了这些步骤我着手编译了这个内核。我在这里的论坛上贴了一个贴子:
https
://forum.linuxcnc.org/9-installing-linuxcnc/47696-installing-linuxcnc-and-debian-bookworm-on-problematic-hardware-eg-realtek-nic 一个数字的用户报告说这解决了他们的问题。

我确实在这里用 debian 重新提出了这个问题
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1022170
但当时,我并不完全理解这个问题。如果有更多权限的人可以将此作为针对 linux-image-rt(5.10 至 6.1)的问题提出,那就太好了

我提出这个问题是因为一旦 Bookworm 在短短几个月内成为 Debian 稳定分支,许多用户将受到这个问题的影响,这将对这个项目产生不好的影响。

网络延迟中断 Mesa 以太网连接 #2281
合作者
彼得赖因霍尔特森 评论了 2个星期前 通过电子邮件
网络延迟中断 Mesa 以太网连接 #2281
作者

声音正确。确保你有一个低延迟的网络和网卡(最好是专用的),以避免不可预知的延迟。
……
– 快乐黑客 Petter Reinholdtsen @ .***

它不是那么简单。硬件延迟低,适用于高达 4.9 的内核。带有 mesa 的网络是点对点的专用网段,因此根据定义是低延迟的。它在任何 Debian 提供的内核上都失败了。

网络延迟中断 Mesa 以太网连接 #2281
合作者
彼得赖因霍尔特森 评论了 2个星期前 通过电子邮件
网络延迟中断 Mesa 以太网连接 #2281
作者

您似乎是在说 4.9 以上的 Linux 内核引入了不必要的延迟。如果是这样,我猜这必须在 Linux 内核中解决,而不是 LinuxCNC。你能说出为什么你认为这是 LinuxCNC 的问题吗?
……
——快乐黑客 Petter Reinholdtsen

是的,从 RT 5.10 内核开始的 Debian RT 内核补丁引入了上游 kernel.org 源中不存在的网络延迟。如果 Linuxcnc 与以太网连接上的设备实时通信并且延迟超过可接受的限制,则会生成“错误完成读取”并禁用设备。这个“砖块” Linuxcnc 使它变得无用。需要重新启动程序才能清除错误,但这并不能解决问题,而且会再次出现。我个人在 4-5 台 PC 上遇到过这个问题,许多其他有经验的早期采用者也受到了这个问题的影响。在寻求解决方案时,它让我在一个项目上停滞了好几个月。在许多情况下,更高版本的内核需要为受影响的 PC 提供驱动程序支持,因此继续使用 4.x 内核不是一个可行的选择。

一旦 Linuxcnc 推出 2.9 版,它将出现在 Bookworm 或 Bullseye 平台上。大量用户将受到影响,因为现有的工作 PC 硬件将无法运行更高版本的 Debian 内核。这将对该项目产生不良影响。

显然,如果在 Bookworm 发布时不采取任何行动,Linuxcnc 项目将受到重大影响。

谨慎的做法是 Linuxcnc 项目与 Debian linux-image-rt 开发人员一起处理这个上游问题,试图在即将到来的硬冻结之前解决它。

我没有审查内核补丁的技能。如果我要猜测这个问题,我会调查我认为是在 RT 内核 5.10 中引入的“惰性抢占”补丁。

网络延迟中断 Mesa 以太网连接 #2281

我同意上面的分析。我一直在努力解决完全相同的问题,认为这是我使用的迷你 PC 的硬件问题。恢复到 RT 内核 4.9 立即解决了所有问题。问题是 debian 存储库中提供的 5.10 和 6.0 的编译版本。如果遵循 linuxcnc 文档并为 RIP 或基于包的安装进行编译,这些是内核版本。
我没有尝试从源代码进行编译,但上面提供的信息是有道理的。这不一定是 linuxcnc 问题,但在此处突出显示有助于 a) 确保我们正在跟踪问题,以及 b) 及时与 Debian 团队沟通,以更正其官方仓库中可用内核的编译版本的问题。

网络延迟中断 Mesa 以太网连接 #2281
作者

我同意上面的分析。我一直在努力解决完全相同的问题,认为这是我使用的迷你 PC 的硬件问题。恢复到 RT 内核 4.9 立即解决了所有问题。

您很幸运,4.9 内核仍然适用于您的硬件。如果它配备了 Realtek R8125 NIC,例如在许多最近的迷你 PC 中使用,驱动程序支持直到 5.9 内核才引入,因此需要 Bullseye 或更高版本才能使用制造商的 NIC 驱动程序。但即使这样也已经成为问题,因为 Realtek 支持高达 5.19 内核,而 Bookworm 现在已经超越了这一点。

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

3人参加
网络延迟中断 Mesa 以太网连接 #2281网络延迟中断 Mesa 以太网连接 #2281网络延迟中断 Mesa 以太网连接 #2281

喜欢 (0)