错误 #5325
历史记录
由 宋 承立 更新于 2 个月 之前
使用systemd服务拉起协议栈核0 100%引起
main函数中:
icli_run ();
LCORE_WAIT;
gdb调试发现,手动启动主进程阻塞在icli_run()等待输入。而服务拉起是阻塞在LCORE_WAIT
因为systemd没有提供交互式终端,icli_run()会退出,进入到LCORE_WAIT忙等待,占满核0。根因在于DPDK。
修改服务文件,增加
TTYPath=/dev/tty3
StandardInput=tty
在西安板卡测试:
1、上电服务自启,有少概率失败1/10,需重新上电。正常情况核0正常。
2、系统启动,ssh登录,服务命令拉起,核0恢复正常。gdb显示主进程阻塞在icli_run()。
使用北京整机测试:
1、上电服务自启,测试一次依旧失联
2、不自启,ssh登录后使用命令systemctl start b5gue.service拉起,核0正常,启动正常
需要进一步分析
由 宋 承立 更新于 2 个月 之前
- 指派给 从 宋 承立 变更为 李 常
进一步验证,修改服务文件,延长等待时间到35s
ExecStartPre=/bin/sleep 35
开启服务自启,systemctl enable b5gue之后reboot
等待23s之后可以ssh登录,journalctl -u b5gue.service -f查看日志
从reboot开始计时1min30s走到gps同步
10次有1-2次会在如下gps同步阶段断联。情况与手动启动可能出现的gps同步失联一致。
拉起后业务正常,正常灌包。
May 27 01:50:54 driver start.sh372: [DEBUG]:Memory Section - [MSG_DDR_MEM]: Variable Name: [ulAddr]; Allocated Address: [0x7eda080000]; Allocated Size: [1310720]
May 27 01:50:54 driver start.sh372: msg_transfer_init is success !!!
May 27 01:50:54 driver start.sh372: handIdOam 66048
May 27 01:50:54 driver start.sh372: [DEBUG]:core[0x0000000c] send handshake request message,value[0x5a5a5a66].
May 27 01:50:54 driver start.sh372: ucp_handshake is success!!!
May 27 01:50:54 driver start.sh372: clkMode is :1,start to sync gpswill get gps sync status.
May 27 01:51:04 driver start.sh372: ..........
May 27 01:51:04 driver start.sh372: gps 8a34 no lock, pls wait.
May 27 01:51:14 driver start.sh372: ..........
May 27 01:51:14 driver start.sh372: gps 8a34 no lock, pls wait.