项目

一般

简介

错误 #1386

飞腾arm 处理器下, 用fhdemo测试,会出现RX减半的情况。

战 弋戈超过一年 之前添加. 更新于 超过一年 之前.

状态:
已解决
优先级:
普通
指派给:
开始日期:
2023-10-28
计划完成日期:
% 完成:

0%

预期时间:

描述

用fhdemo测试,直接运行还是用taskset绑定进程到特定cpu,均会出现这个问题。


文件

20231028-115902.jpg (563 KB) 20231028-115902.jpg 战 弋戈, 2023-10-28 11:59
20231028-115902.jpg (563 KB) 20231028-115902.jpg 战 弋戈, 2023-10-28 12:02
20231028-140408.jpg (422 KB) 20231028-140408.jpg 战 弋戈, 2023-10-28 14:04
lY6jSBVi7q.jpg (317 KB) lY6jSBVi7q.jpg 战 弋戈, 2023-11-03 11:07

历史记录

#1

战 弋戈 更新于 超过一年 之前

#2

战 弋戈 更新于 超过一年 之前

从程序的输出上看,少了一次rx的打印。 可能的原因是没有收到FPGA的rx完成标志。

#3

战 弋戈 更新于 超过一年 之前


这次ttiCount 数不够。有可能是tti 发生错误,或者变慢。

#4

战 弋戈 更新于 超过一年 之前

这两个的共性是当rx速率减半时,timeDiff 突然增大。

#5

战 弋戈 更新于 超过一年 之前

战 弋戈 写到:

这两个的共性是当rx速率减半时,timeDiff 突然增大。

进行打印输出的统计是根据count值来进行的, count值在进行rx,tx release时会增加。tticount 在获取tti值并且正确时增加,从两次的运行情况中发现tti值差别不大, count 准确, Total 正确, 唯一差别大的点就是timeDiff,并且timeDiff 是原来的2倍,造成这种情况的点是某次的count 应该到达10000次,但实际情况没有到达。

#6

战 弋戈 更新于 超过一年 之前

战 弋戈 写到:

战 弋戈 写到:

这两个的共性是当rx速率减半时,timeDiff 突然增大。

进行打印输出的统计是根据count值来进行的, count值在进行rx,tx release时会增加。tticount 在获取tti值并且正确时增加,从两次的运行情况中发现tti值差别不大, count 准确, Total 正确, 唯一差别大的点就是timeDiff,并且timeDiff 是原来的2倍,造成这种情况的点是某次的count 应该到达10000次,但实际情况没有到达。

通过对tti值的打印,发现偶尔会出现tti的步长突然大于1的情况, 这是不正确的。 可能的情况是:
1. get tti 时就错误。
2. 获取tti后某个函数运行超时,导致fpga写入了2次tti值。

#7

战 弋戈 更新于 超过一年 之前

战 弋戈 写到:

战 弋戈 写到:

战 弋戈 写到:

这两个的共性是当rx速率减半时,timeDiff 突然增大。

进行打印输出的统计是根据count值来进行的, count值在进行rx,tx release时会增加。tticount 在获取tti值并且正确时增加,从两次的运行情况中发现tti值差别不大, count 准确, Total 正确, 唯一差别大的点就是timeDiff,并且timeDiff 是原来的2倍,造成这种情况的点是某次的count 应该到达10000次,但实际情况没有到达。

通过对tti值的打印,发现偶尔会出现tti的步长突然大于1的情况, 这是不正确的。 可能的情况是:
1. get tti 时就错误。 (不太可能)
2. 获取tti后某个函数运行超时,导致fpga写入了2次tti值。(可能)

#8

战 弋戈 更新于 超过一年 之前

战 弋戈 写到:

战 弋戈 写到:

战 弋戈 写到:

战 弋戈 写到:

这两个的共性是当rx速率减半时,timeDiff 突然增大。

进行打印输出的统计是根据count值来进行的, count值在进行rx,tx release时会增加。tticount 在获取tti值并且正确时增加,从两次的运行情况中发现tti值差别不大, count 准确, Total 正确, 唯一差别大的点就是timeDiff,并且timeDiff 是原来的2倍,造成这种情况的点是某次的count 应该到达10000次,但实际情况没有到达。

通过对tti值的打印,发现偶尔会出现tti的步长突然大于1的情况, 这是不正确的。 可能的情况是:
1. get tti 时就错误。 (tx 发送是正确的,不可能是tti错误)
2. 获取tti后某个函数运行超时,导致fpga写入了2次tti值。(可能)
3, 可能release释放不及时。(只启动rx 看看打印)

#9

战 弋戈 更新于 超过一年 之前

对rx require, rx release 的整个流程耗时进行打印,发现大部分在499us,也会有500us的耗时,这个会导致tti 的步长超过1.

txQ:1, rxQ:2 symbol_max_num:14 symbol_size_max:65536
mkdir OK: /tmp/savedata/rx/
[RX]: Tput=5877Mbps timeDiff=5000268us Total=3673600000 Count=10000 seq: 10000, ttiCount: 10001
[RX]: Tput=5877Mbps timeDiff=4999953us Total=3673600000 Count=10000 seq: 20000, ttiCount: 20001
[RX]: Tput=5877Mbps timeDiff=4999959us Total=3673600000 Count=10000 seq: 30000, ttiCount: 30001
[RX]: Tput=5877Mbps timeDiff=4999956us Total=3673600000 Count=10000 seq: 40000, ttiCount: 40001
[RX]: Tput=5877Mbps timeDiff=4999958us Total=3673600000 Count=10000 seq: 50000, ttiCount: 50001
[RX]: Tput=5877Mbps timeDiff=4999956us Total=3673600000 Count=10000 seq: 60000, ttiCount: 60001
[RX]: Tput=5877Mbps timeDiff=4999957us Total=3673600000 Count=10000 seq: 70000, ttiCount: 70001
[RX]: Tput=5877Mbps timeDiff=4999957us Total=3673600000 Count=10000 seq: 80000, ttiCount: 80001
[RX]: Tput=5877Mbps timeDiff=4999956us Total=3673600000 Count=10000 seq: 90000, ttiCount: 90001
[RX]: Tput=5877Mbps timeDiff=4999955us Total=3673600000 Count=10000 seq: 100000, ttiCount: 100001
[RX]: Tput=5877Mbps timeDiff=4999961us Total=3673600000 Count=10000 seq: 110000, ttiCount: 110001
[RX]: Tput=5877Mbps timeDiff=4999959us Total=3673600000 Count=10000 seq: 120000, ttiCount: 120001
[RX]: Tput=5877Mbps timeDiff=4999955us Total=3673600000 Count=10000 seq: 130000, ttiCount: 130001
[RX]: Tput=5877Mbps timeDiff=4999958us Total=3673600000 Count=10000 seq: 140000, ttiCount: 140001
[RX]: Tput=5877Mbps timeDiff=4999958us Total=3673600000 Count=10000 seq: 150000, ttiCount: 150001
[RX]: Tput=5877Mbps timeDiff=4999961us Total=3673600000 Count=10000 seq: 160000, ttiCount: 160001
[RX]: Tput=5877Mbps timeDiff=4999956us Total=3673600000 Count=10000 seq: 170000, ttiCount: 170001
[RX]: Tput=5877Mbps timeDiff=4999960us Total=3673600000 Count=10000 seq: 180000, ttiCount: 180001
[RX]: Tput=5877Mbps timeDiff=4999960us Total=3673600000 Count=10000 seq: 190000, ttiCount: 190001
[RX]: Tput=5877Mbps timeDiff=4999962us Total=3673600000 Count=10000 seq: 200000, ttiCount: 200001
[RX]: Tput=5877Mbps timeDiff=4999955us Total=3673600000 Count=10000 seq: 210000, ttiCount: 210001
[RX]: Tput=5877Mbps timeDiff=4999962us Total=3673600000 Count=10000 seq: 220000, ttiCount: 220001
[RX]: Tput=5877Mbps timeDiff=4999958us Total=3673600000 Count=10000 seq: 230000, ttiCount: 230001
[RX]: Tput=5877Mbps timeDiff=4999959us Total=3673600000 Count=10000 seq: 240000, ttiCount: 240001
[RX]: Tput=5877Mbps timeDiff=4999958us Total=3673600000 Count=10000 seq: 250000, ttiCount: 250001
[RX]: Tput=5877Mbps timeDiff=4999961us Total=3673600000 Count=10000 seq: 260000, ttiCount: 260001
[RX]: Tput=5877Mbps timeDiff=4999960us Total=3673600000 Count=10000 seq: 270000, ttiCount: 270001
[RX]: Tput=5877Mbps timeDiff=4999960us Total=3673600000 Count=10000 seq: 280000, ttiCount: 280001
[RX]: Tput=5877Mbps timeDiff=4999957us Total=3673600000 Count=10000 seq: 290000, ttiCount: 290001
tti error slotStep: 2.

#10

战 弋戈 更新于 超过一年 之前

根据日志的输出打印,只有当count 大于10000时,才会输出打印。而count的自增1,是在rx_release下进行的。当count不够时,说明rx_release没有释放。估计可能的情况是fpga没有写入完成。

#11

战 弋戈 更新于 超过一年 之前

[RX]: Tput=5877Mbps timeDiff=4999951us Total=3673600000 Count=10000 seq: 210000, ttiCount: 210001
[RX]: Tput=5877Mbps timeDiff=4999953us Total=3673600000 Count=10000 seq: 220000, ttiCount: 220001
[RX]: Tput=5877Mbps timeDiff=4999952us Total=3673600000 Count=10000 seq: 230000, ttiCount: 230001
[RX]: Tput=5877Mbps timeDiff=4999951us Total=3673600000 Count=10000 seq: 240000, ttiCount: 240001
[RX]: Tput=5877Mbps timeDiff=4999952us Total=3673600000 Count=10000 seq: 250000, ttiCount: 250001
[RX]: Tput=3273Mbps timeDiff=8976427us Total=3673600000 Count=10000 seq: 260000, ttiCount: 267954
[RX]: Tput=2938Mbps timeDiff=9999924us Total=3673600000 Count=10000 seq: 270000, ttiCount: 287954
[RX]: Tput=2938Mbps timeDiff=9999922us Total=3673600000 Count=10000 seq: 280000, ttiCount: 307954
[RX]: Tput=2938Mbps timeDiff=9999926us Total=3673600000 Count=10000 seq: 290000, ttiCount: 327954
[RX]: Tput=2938Mbps timeDiff=9999927us Total=3673600000 Count=10000 seq: 300000, ttiCount: 347954
[RX]: Tput=2938Mbps timeDiff=9999926us Total=3673600000 Count=10000 seq: 310000, ttiCount: 367954
[RX]: Tput=2938Mbps timeDiff=9999927us Total=3673600000 Count=10000 seq: 320000, ttiCount: 387954
[RX]: Tput=2938Mbps timeDiff=9999927us Total=3673600000 Count=10000 seq: 330000, ttiCount: 407954
[RX]: Tput=2938Mbps timeDiff=9999930us Total=3673600000 Count=10000 seq: 340000, ttiCount: 427954
[RX]: Tput=2938Mbps timeDiff=9999927us Total=3673600000 Count=10000 seq: 350000, ttiCount: 447954
[RX]: Tput=2938Mbps timeDiff=9999929us Total=3673600000 Count=10000 seq: 360000, ttiCount: 467954
[RX]: Tput=2938Mbps timeDiff=9999929us Total=3673600000 Count=10000 seq: 370000, ttiCount: 487954
[RX]: Tput=2938Mbps timeDiff=9999931us Total=3673600000 Count=10000 seq: 380000, ttiCount: 507954
[RX]: Tput=2938Mbps timeDiff=9999927us Total=3673600000 Count=10000 seq: 390000, ttiCount: 527954
[RX]: Tput=2938Mbps timeDiff=9999930us Total=3673600000 Count=10000 seq: 400000, ttiCount: 547954
[RX]: Tput=2938Mbps timeDiff=9999931us Total=3673600000 Count=10000 seq: 410000, ttiCount: 567954

有时很久才会出现一次, 当发生rx 速率减半时, ttiCount 大于10000了,这是两次的tti。因为打印是根据count数来进行打印的。count数的增加是在rx release 后进行的。

#12

战 弋戈 更新于 超过一年 之前


通过对FhDemo 接收的打印,当发生减半时,对接收的打印进行统计,可以发现打印的数量减少一半,应该是未收到完成标志造成的。

#13

杨 晋 更新于 超过一年 之前

  • 状态新建 变更为 进行中
  • 指派给 被设置为 杨 晋

FPGA已出新版本,待测试

#14

战 弋戈 更新于 超过一年 之前

  • 状态进行中 变更为 已解决
#15

战 弋戈 更新于 超过一年 之前

在自己的arm中测试,当全部关闭zlog后不会出现这个问题。 当设置zlog 线程跟主线程不在一个cpu上时,即使有几个log也不会出现这个问题。

导出 Atom PDF