错误 #2148
2.1.15p_pre1_T4版本,10ue上下行同时udp灌包场景,构造大误码率以及反复接入,一段时间后,长则5h,短则5min,就会出现上行译码阻塞导致的phy挂死
状态:
已解决
优先级:
普通
指派给:
-
类别:
-
开始日期:
2024-09-13
计划完成日期:
% 完成:
0%
预期时间:
问题归属:
PHY
发现问题版本:
Rel_2.1.15P
目标解决问题版本:
Rel_2.1.15P
FPGA板卡类型:
CPU类型:
描述
目前发现出现挂死时:均为上行译码阻塞、同时phy日志能看到tti跳变等,提单跟踪
相关的问题
历史记录
由 匿名用户 更新于 12 个月 之前
- 状态 从 新建 变更为 转测试
代码修改:
CpaStatusInt32 cpa_5g_decode_req (CpaInstanceHandleVoidP pHandle,
CpaBbBufferListStruct * pSrcBuffer,
CpaBbBufferListStruct * pDstBuffer,
CpaTransportBlockCallbackFn pCallback,
void *pCallbackTag)
{
DeviceHandleInfoStruct *pInfo = (DeviceHandleInfoStruct *) pHandle;
CpaStatusInt32 nStatus = CPA_STATUS_SUCCESS;
DescriptorQueueStruct QueueElement;
/**< Check for the valid arguments*/
CHECK_NOT_NULL (pSrcBuffer, CPA_STATUS_INVALID_PARAM);
CHECK_NOT_NULL (pInfo, CPA_STATUS_INVALID_PARAM);
CHECK_NOT_NULL (gDescRing[FPGA_FEC], CPA_STATUS_INVALID_PARAM);
if (pCallback == NULL)
{
printf ("no callback\n");
return CPA_STATUS_FAIL;
}
QueueElement.pSrcBuf = pSrcBuffer;
QueueElement.pDstBuf = pDstBuffer;
QueueElement.pCallback = pCallback;
QueueElement.pCallbackTags = pCallbackTag;
pthread_mutex_lock(&mutex_decode); /* 加锁 */
dm_register_request (gDescRing[FPGA_FEC], &QueueElement, QUEUE_SECTOR0_DE_IN+pInfo->nIndex);
dm_register_request (gDescRing[FPGA_FEC], &QueueElement, QUEUE_SECTOR0_DE_OT+pInfo->nIndex);
pthread_mutex_unlock(&mutex_decode); /* 解锁 */
return nStatus;
}
增加了发送译码输入数据的时候, 访问链表的线程锁。
防止 同时访问带来的数据异常问题。同时 增加了 线程退出时候的线程退出处理。