1
2
您提到Linux主机已冻结。我首先要确定它是否被锁定在内核中,或者是否有一些用户空间进程占用了太多的CPU。 主机是否可以被ping(最好是在与您的FPGA以太网卡分开的接口上)?如果它回复,内核就不会被锁定。 硬件问题?如果可能,是否可以临时更改设置以删除FPGA以太网卡,然后重新生成问题?我这样做是为了帮助隔离与硬件(FPGA以太网)特定相关的问题。 用户空间(软件)问题?如果您从等式中删除VLC,您仍然可以通过使用另一种方法生成以太网流量来实现锁定/挂起吗? 您可以尝试创建一个以更高优先级运行的shell,以便在系统似乎挂起时检索数据。也许通过在这个高优先级shell中运行top,您可以确定谁(如果有)正在使用所有CPU。您可以通过网络(telnet/ssh)或通过串行终端运行此shell。
内核(软件)问题?您可以启用 magic sysrq key 然后检查系统状态并从那里开始。内核开发人员使用这个接口调试他们的软件。要使用此功能,必须在内核编译时启用config“magic”sysrq选项。 通过经验将bug缩小到特定模块后,printk()仍然是一个很好的资源。 它还可以帮助启用内核调试程序( KDB )并通过串行电缆连接到它。 |
2
1
@JScheimer:感谢您对我的问题提供详细的指导。在工作场所与其他系统开发人员进行了大量的调试和讨论之后,我终于找到了根本原因。在整个设置中,有一个DMA外围设备进入画面。DMA被配置为对齐访问,但是在某些数据传输中,由于我没有在代码中检查缓冲区对齐,它接收到一个未对齐的地址,这导致了挂起/冻结。这种行为没有任何模式。 |
ilya · 使用iperf3测量STM32板上的UDP吞吐量 6 年前 |
KSK · 如何在中检测通过串行端口或以太网连接的设备状态的变化。净额 7 年前 |
ransh · iperf-带宽的含义是什么? 7 年前 |
gamma_spec · java套接字数据处理 7 年前 |
br0ken.pipe · VMWare卸载后以太网适配器损坏 7 年前 |
Spook · 如何检查以太网报头是否为IEEE 802.1Q类型? 7 年前 |
ConfusedDev · 部署的以太令牌合同的总供应读数为零 7 年前 |
torsten · 以太网和网桥wifi并行RPI接入网络 7 年前 |
i3luefire · lwip stm32-http请求失败 7 年前 |