已关闭
A3容器内走hixl_cs HCCS报错 #424
youxiao创建于 7月3日关闭于 7月6日
youxiao
7月6日 评论:
7月6日 评论:
您好,根据 plog 分析,根因如下:
问题根因
A3 容器内走 HIXL_CS + HCCS 建链时,hcomm 在 IPC 内存授权阶段使用了错误的 PID 类型,导致 Driver 白名单校验失败。
HCCS 建链过程中,两端需通过 EnableMemAccess 交换 PID,并将对端 PID 加入 IPC 共享内存白名单。Driver 校验白名单使用的是 Host 侧 bare TGID(宿主机 PID),而非容器内的 namespace PID。
| 获取方式 | 容器内返回值 | 说明 |
|---|---|---|
SalGetPid() → getpid() |
容器 namespace PID(如 70365) | ❌ 旧代码误用 |
SalGetBareTgid() → drvDeviceGetBareTgid() |
Host bare TGID(如 2020343) | ✅ Driver 白名单校验使用 |
旧代码在 AicpuTsHccsChannel::EnableMemAccess() 中使用了 SalGetPid(),导致 grant 写入白名单的是容器 PID,而 Client 实际 open IPC mem 时 Driver 使用的是 host pid,二者不一致,触发 Wlist verify fail。
日志印证
核心报错(Client 端):
Wlist verify fail. (pid=2020343; creator_pid=2020358)
Ipc open fail. (ret=-22)
rtsIpcMemImportByKey execution failed
pid=2020343:Client 实际 open 时使用的 host pidcreator_pid=2020358:Server 创建 IPC mem 时记录的 host pid- Client 的 host pid 不在白名单中,因为 grant 阶段写入的是容器 namespace pid
连带报错(Server 端):
In exchange tgid mesg, recv pid failed. pid[0]
→ HcommChannelCreate failed → HIXL CreateChannel failed (503900)
IPC 授权失败后,后续 Transport 初始化连锁失败;pid[0] 是 recv 失败后结构体未填值,不是独立根因。
结论
| 项目 | 说明 |
|---|---|
| 根因 | hcomm EnableMemAccess 容器内误用 SalGetPid(),与 Driver host pid 校验不一致 |
| 表现 | Wlist verify fail → IPC open 失败 → HCCS Channel 创建失败 |
| 性质 | hcomm 侧问题,非 HIXL 业务逻辑或用户配置问题 |


plog日志:
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:1:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.114.062 [adapter_hccp.cc:1600] [70387][Recv][RaSocket]errNo[0x000000000500000d] recv fail, data[0xffff8f5f9838], size[12], rtRet[228205]
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:2:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.114.068 [hccl_socket.cc:474] [70387][Recv]call trace: hcclRet -> 13
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:3:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.114.071 [transport_base.cc:446] [70387][Exchange][TgidMesg]errNo[0x000000000500000d] In exchange tgid mesg, recv pid failed. remote userrank[4294967295] pid[0] sdid[488bfb19ffffffff] local rank[4294967295]
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:4:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.114.075 [transport_p2p.cc:133] [70387][Init]call trace: hcclRet -> 13
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:5:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.114.078 [aicpu_ts_hccs_channel.cc:208] [70387][TransportInit]call trace: hcclRet -> 13
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:6:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.114.660 [channel.cc:99] [70387][CreateChannel]call trace: hcclRet -> 13
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:7:[ERROR] DRV(70375,test_adxl_server2):2026-06-27-09:50:42.114.667 [devdrv_pcie.c:881][ascend][curpid:70375,70387][drv][devmng][drvP2PAttrOp]P2P operation failed. (dev=8; peer_dev=0; op=1; ret=-1; errno=3)
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:8:[ERROR] RUNTIME(70375,test_adxl_server2):2026-06-27-09:50:42.114.676 [npu_driver.cc:1025]70387 DisableP2P:Call driver api halDeviceDisableP2P failed, drvRetCode=17, devIdDes=8, phyIdSrc=0.
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:9:[ERROR] RUNTIME(70375,test_adxl_server2):2026-06-27-09:50:42.114.698 [api_error.cc:2709]70387 DisableP2P:Disable P2P failed, dest deviceId=8, src phyId=0.
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:10:[ERROR] RUNTIME(70375,test_adxl_server2):2026-06-27-09:50:42.114.711 [api_c_device.cc:351]70387 rtDisableP2P:ErrCode=507899, desc=[driver error:internal error], InnerCode=0x7020022
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:11:[ERROR] RUNTIME(70375,test_adxl_server2):2026-06-27-09:50:42.114.714 [error_message_manage.cc:69]70387 FuncErrorReason:rtDisableP2P execution failed, reason=driver error:internal error
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:12:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.115.010 [adapter_rts.cc:1641] [70387][Disable][P2P]errNo[0x000000000500000f] rt disableP2P deviceLogicId[8] and devicePhyId[0] fail[507899]
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:13:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.115.014 [hccs_reged_mem_mgr.cc:379] [70387][MemoryDisableP2P]call trace: hcclRet -> 15
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:14:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.115.016 [aicputs_hccs_endpoint.cc:148] [70387][MemoryDisableP2P]call trace: hcclRet -> 15
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:15:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.115.019 [channel_process.cc:87] [70387][CreateChannelsLoop]call trace: hcclRet -> 13
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:16:[ERROR] HCCL(70375,test_adxl_server2):2026-06-27-09:50:42.115.022 [hcomm_c_adpt.cc:518] [70387][HcommChannelCreate]call trace: hcclRet -> 13
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:17:[ERROR] GE(70375,test_adxl_server2):2026-06-27-09:50:42.115.035 [channel.cc:24][HIXL] 70387 Create: ErrorNo: 503900 Call hccl api:HcommProxy::ChannelCreate(ep_handle, engine, &ch_desc, list_num, ch_list) failed, ret: 0xD
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:18:[ERROR] GE(70375,test_adxl_server2):2026-06-27-09:50:42.115.049 [endpoint.cc:180][HIXL] 70387 CreateChannel: ErrorNo: 503900 [Channel] Create failed, local=[protocol=hccs, addr=ID:0x8, devPhyId=8], remote=[protocol=hccs, addr=ID:0x0, devPhyId=0], type=1, index=0
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:19:[ERROR] GE(70375,test_adxl_server2):2026-06-27-09:50:42.115.057 [hixl_cs_server.cc:373][HIXL] 70387 CreateChannel: ErrorNo: 503900 Failed to create channel
/root/ascend//log/debug/plog/plog-70375_20260627095042114.log:20:[ERROR] GE(70375,test_adxl_server2):2026-06-27-09:50:42.115.096 [msg_handler.cc:60][HIXL] 70387 HandleMsg: ErrorNo: 503900 Failed to handle msg
/root/ascend//log/debug/plog/plog-70365_20260627095042112.log:1:[ERROR] DRV(70365,test_adxl2):2026-06-27-09:50:42.112.378 [drv_share_log.c:238][ascend][curpid:70365,70365][drv][devmm][share_log_read_in_single_module]Find wlist fail. (name=001ed4060000000000000888080006d000080000000000000000000000000000; pid=2020343; creator_pid=2020358) Wlist verify fail. (pid=2020343) Ipc open fail. (ret=-22; name=001ed4060000000000000888080006d000080000000000000000000000000000; vptr=0x12c200000000)
/root/ascend//log/debug/plog/plog-70365_20260627095042112.log:2:[ERROR] DRV(70365,test_adxl2):2026-06-27-09:50:42.112.384 [devmm_svm.c:1637][ascend][curpid:70365,70365][drv][devmm][devmm_ipc_mem_open]<errno:22, 8> Open memory error. (ret=8; *ptr=0x12c200000000)
/root/ascend//log/debug/plog/plog-70365_20260627095042112.log:3:[ERROR] DRV(70365,test_adxl2):2026-06-27-09:50:42.112.397 [devmm_svm.c:1708][ascend][curpid:70365,70365][drv][devmm][halShmemOpenHandleByDevId]<errno:22, 8> Alloc ipc memory and set name failed. (ret=8)
/root/ascend//log/debug/plog/plog-70365_20260627095042112.log:4:[ERROR] RUNTIME(70365,test_adxl2):2026-06-27-09:50:42.112.437 [npu_driver.cc:560]70365 OpenIpcMem:Call driver api halShmemOpenHandle failed, drvRetCode=8, name=001ed4060000000000000888080006d000080000000000000000000000000000, drvDevId=0.
/root/ascend//log/debug/plog/plog-70365_20260627095042112.log:5:[ERROR] RUNTIME(70365,test_adxl2):2026-06-27-09:50:42.112.442 [api_error.cc:3115]70365 IpcOpenMemory:Ipc open memory failed, name=001ed4060000000000000888080006d000080000000000000000000000000000.
/root/ascend//log/debug/plog/plog-70365_20260627095042112.log:6:[ERROR] RUNTIME(70365,test_adxl2):2026-06-27-09:50:42.112.453 [api_c_memory.cc:924]70365 rtsIpcMemImportByKey:ErrCode=507899, desc=[driver error:internal error], InnerCode=0x7020010
/root/ascend//log/debug/plog/plog-70365_20260627095042112.log:7:[ERROR] RUNTIME(70365,test_adxl2):2026-06-27-09:50:42.112.457 [error_message_manage.cc:69]70365 FuncErrorReason:rtsIpcMemImportByKey execution failed, reason=driver error:internal error