LCOV - code coverage report
Current view: top level - legacy/ascend910/platform/common/unfold_cache - op_unfold_cache.cc (source / functions) Coverage Total Hit
Test: coverage.info Lines: 6.7 % 224 15
Test Date: 2026-08-18 17:47:01 Functions: 30.0 % 10 3

            Line data    Source code
       1              : /**
       2              :  * Copyright (c) 2025 Huawei Technologies Co., Ltd.
       3              :  * This program is free software, you can redistribute it and/or modify it under the terms and conditions of
       4              :  * CANN Open Software License Agreement Version 2.0 (the "License").
       5              :  * Please refer to the License for details. You may not use this file except in compliance with the License.
       6              :  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
       7              :  * INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
       8              :  * See LICENSE in the root of the software repository for the full text of the License.
       9              :  */
      10              : 
      11              : #include "op_unfold_cache.h"
      12              : 
      13              : #include "aicpu_hccl_sqcq.h"
      14              : #include "aicpu_hccl_sqcqv1.h"
      15              : #include "aicpu_hccl_sqcqv2.h"
      16              : #include "config_plf_log.h"
      17              : #include "log.h"
      18              : 
      19              : namespace hccl {
      20              : 
      21              : constexpr size_t OP_UNFOLD_CACHE_CAPACITY = 500; // Cache entry数目的上限
      22              : 
      23           11 : OpUnfoldCache::OpUnfoldCache()
      24              : {
      25           11 :     HCCL_INFO("[OpUnfoldCache][OpUnfoldCache] create a cache at 0x%016llx for operator unfolding", this);
      26           11 : }
      27              : 
      28           11 : OpUnfoldCache::~OpUnfoldCache()
      29              : {
      30           11 :     HCCL_INFO(
      31              :         "[OpUnfoldCache][~OpUnfoldCache] release dynamically allocated entries from the cache at 0x%016llx", this);
      32              : 
      33           11 :     for (CacheHashMap::const_iterator constIter = cacheHashMap_.cbegin(); constIter != cacheHashMap_.cend();
      34            0 :          ++constIter) {
      35            0 :         OpUnfoldCacheEntry* entryPtr = constIter->second;
      36              : 
      37              :         // 不能使用CHK_PTR_NULL,因为会return HcclResult
      38            0 :         if (UNLIKELY(entryPtr == nullptr)) {
      39            0 :             HCCL_ERROR("[OpUnfoldCache][OpUnfoldCache] entryPtr is nullptr");
      40            0 :             continue;
      41              :         }
      42              : 
      43              :         // 释放当前cache entry
      44            0 :         delete entryPtr;
      45            0 :         entryPtr = nullptr;
      46              :     }
      47           11 : }
      48              : 
      49            0 : bool OpUnfoldCache::IsCacheFull() const
      50              : {
      51            0 :     const size_t curSize = cacheHashMap_.size();
      52            0 :     if (curSize >= OP_UNFOLD_CACHE_CAPACITY) {
      53            0 :         HCCL_INFO(
      54              :             "[OpUnfoldCache][IsCacheFull] cacheHashMap_.size[%u] >= capacity[%u]", cacheHashMap_.size(),
      55              :             OP_UNFOLD_CACHE_CAPACITY);
      56            0 :         return true;
      57              :     }
      58            0 :     return false;
      59              : }
      60              : 
      61            0 : HcclResult OpUnfoldCache::FindEntry(const OpUnfoldKey& key, OpUnfoldCacheEntry** entryPtrPtr) const
      62              : {
      63              :     // 检查入参
      64            0 :     CHK_PTRPTR_NULL(entryPtrPtr); // 检查指针, entryPtrPtr不应该是null, 但*entryPtrPtr应该是null
      65              : 
      66            0 :     CacheHashMap::const_iterator constIter = cacheHashMap_.find(key);
      67            0 :     if (constIter != cacheHashMap_.cend()) {
      68              :         // 检查cache entry pointer
      69            0 :         *entryPtrPtr = constIter->second;
      70            0 :         CHK_PTR_NULL(*entryPtrPtr);
      71              : 
      72            0 :         HCCL_INFO("[OpUnfoldCache][FindEntry] find cache entry for key[%s]", key.GetKeyString().c_str());
      73              :     } else {
      74            0 :         *entryPtrPtr = nullptr;
      75              : 
      76            0 :         HCCL_INFO("[OpUnfoldCache][FindEntry] not find cache entry for key[%s]", key.GetKeyString().c_str());
      77              :     }
      78              : 
      79            0 :     return HCCL_SUCCESS;
      80              : }
      81              : 
      82            0 : HcclResult OpUnfoldCache::AddEntry(
      83              :     const OpUnfoldKey& key, const std::vector<OpUnfoldMemRange>& userInputMemRanges,
      84              :     const std::vector<OpUnfoldMemRange>& userOutputMemRanges, OpUnfoldCacheEntry** entryPtrPtr)
      85              : {
      86              :     // 检查入参
      87            0 :     CHK_PTRPTR_NULL(entryPtrPtr); // 检查指针, entryPtrPtr不应该是null, 但*entryPtrPtr应该是null
      88              : 
      89            0 :     CacheHashMap::iterator iter = cacheHashMap_.find(key);
      90              : 
      91              :     // key不应该存在
      92            0 :     CHK_PRT_RET(
      93              :         iter != cacheHashMap_.end(),
      94              :         HCCL_ERROR(
      95              :             "[OpUnfoldCache][AddEntry] cache entry for key[%s] exists at 0x%016llx", key.GetKeyString().c_str(), this),
      96              :         HCCL_E_INTERNAL);
      97              : 
      98              :     // 创建一个新的cache entry
      99              :     OpUnfoldCacheEntry* newCacheEntryPtr
     100            0 :         = (new (std::nothrow) OpUnfoldCacheEntry(userInputMemRanges, userOutputMemRanges));
     101            0 :     CHK_PTR_NULL(newCacheEntryPtr);
     102              : 
     103              :     // 插入新的cache entry
     104            0 :     std::pair<CacheHashMap::iterator, bool> insertResult = cacheHashMap_.emplace(key, newCacheEntryPtr);
     105            0 :     if (UNLIKELY(!(insertResult.second))) {
     106            0 :         HCCL_ERROR(
     107              :             "[OpUnfoldCache][AddEntry] fail to insert a new cache entry for key[%s]", key.GetKeyString().c_str());
     108              : 
     109            0 :         delete newCacheEntryPtr;
     110            0 :         newCacheEntryPtr = nullptr;
     111              : 
     112            0 :         return HCCL_E_INTERNAL;
     113              :     } else {
     114            0 :         HCCL_INFO(
     115              :             "[OpUnfoldCache][AddEntry] add a new cache entry for key[%s] cacheHashMap_.size[%u]",
     116              :             key.GetKeyString().c_str(), cacheHashMap_.size());
     117              : 
     118            0 :         iter = insertResult.first;
     119            0 :         *entryPtrPtr = iter->second;
     120            0 :         CHK_PTR_NULL(*entryPtrPtr);
     121              :     }
     122              : 
     123            0 :     return HCCL_SUCCESS;
     124              : }
     125              : 
     126            0 : HcclResult OpUnfoldCache::ClearEntry(const OpUnfoldKey& key)
     127              : {
     128            0 :     CacheHashMap::iterator iter = cacheHashMap_.find(key);
     129            0 :     if (iter != cacheHashMap_.end()) { // cache entry存在
     130            0 :         HCCL_INFO("[OpUnfoldCache][ClearEntry] clear cache entry for key[%s]", key.GetKeyString().c_str());
     131              : 
     132              :         // 释放cache entry对应的内存
     133            0 :         OpUnfoldCacheEntry* entryPtr = iter->second;
     134            0 :         CHK_PTR_NULL(entryPtr);
     135            0 :         delete entryPtr;
     136            0 :         entryPtr = nullptr;
     137            0 :         iter->second = nullptr;
     138              : 
     139              :         // 清理cache entry
     140            0 :         cacheHashMap_.erase(iter);
     141              :     } else { // cache entry不存在
     142            0 :         HCCL_INFO("[OpUnfoldCache][ClearEntry] not find cache entry for key [%s]", key.GetKeyString().c_str());
     143              :     }
     144              : 
     145            0 :     return HCCL_SUCCESS;
     146              : }
     147              : 
     148            0 : HcclResult OpUnfoldCache::ClearEntryForAlltoallv()
     149              : {
     150              :     // 清理所有与alltoallv类算子相关的cache entry
     151            0 :     for (CacheHashMap::iterator iter = cacheHashMap_.begin(); iter != cacheHashMap_.end();) {
     152              :         // 先备份iter的下一个位置 (使用std::next避免修改iter本身)
     153            0 :         CacheHashMap::iterator nextIter = std::next(iter);
     154              : 
     155              :         // 清理alltoallv类算子的cache entry
     156            0 :         const HcclCMDType opType = iter->first.opType;
     157            0 :         if (opType == HcclCMDType::HCCL_CMD_ALLTOALLV || opType == HcclCMDType::HCCL_CMD_ALLTOALLVC) {
     158            0 :             CHK_RET(ClearEntry(iter->first));
     159              :         }
     160              : 
     161              :         // 注意: ClearEntry后不能再访问iter (已经从cacheHashMap_中被erase了)
     162              : 
     163              :         // 推进iter到下一个位置
     164            0 :         iter = nextIter;
     165              :     }
     166              : 
     167            0 :     return HCCL_SUCCESS;
     168              : }
     169              : 
     170           12 : HcclResult OpUnfoldCache::DumpSqeContent(const uint8_t* sqePtr, const uint8_t sqeType)
     171              : {
     172              :     // 根据sqe type打印debug信息
     173              :     // 设置HCCL_DEBUG_CONFIG="task", 或者设置ASCEND_GLOBAL_LOG_LEVEL=0
     174           12 :     if ((UNLIKELY(GetExternalInputDebugConfig() & PLF_TASK)) || UNLIKELY(HcclCheckLogLevel(HCCL_LOG_DEBUG))) {
     175           12 :         CHK_PTR_NULL(sqePtr);
     176              : 
     177           12 :         switch (sqeType) {
     178            0 :             case SqeType::NOTIFY_SQE: {
     179            0 :                 const rtStarsNotifySqeV1_t* notifySqePtr = reinterpret_cast<const rtStarsNotifySqeV1_t*>(sqePtr);
     180            0 :                 PLF_CONFIG_DEBUG(PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsNotifySqeV1_t sqeType[%u]", sqeType);
     181            0 :                 CHK_RET(DumpSqeHeader(notifySqePtr->header));
     182            0 :                 PLF_CONFIG_DEBUG(
     183              :                     PLF_TASK,
     184              :                     "[OpUnfoldCache][DumpSqeContent] notify_id[%u] res2[%u] res3[%u] kernel_credit[%u] res4[%u] "
     185              :                     "timeout[%u]",
     186              :                     notifySqePtr->notify_id, notifySqePtr->res2, notifySqePtr->res3, notifySqePtr->kernel_credit,
     187              :                     notifySqePtr->res4, notifySqePtr->timeout);
     188            0 :                 PLF_CONFIG_DEBUG(
     189              :                     PLF_TASK,
     190              :                     "[OpUnfoldCache][DumpSqeContent] res5[0][%u] res5[1][%u] res5[2][%u] res5[3][%u] res5[4][%u] "
     191              :                     "res5[5][%u]",
     192              :                     notifySqePtr->res5[0], notifySqePtr->res5[1], notifySqePtr->res5[2], notifySqePtr->res5[3],
     193              :                     notifySqePtr->res5[4], notifySqePtr->res5[5]);
     194            0 :                 PLF_CONFIG_DEBUG(
     195              :                     PLF_TASK,
     196              :                     "[OpUnfoldCache][DumpSqeContent] res5[6][%u] res5[7][%u] res5[8][%u] res5[9][%u] res5[10][%u]",
     197              :                     notifySqePtr->res5[6], notifySqePtr->res5[7], notifySqePtr->res5[8], notifySqePtr->res5[9],
     198              :                     notifySqePtr->res5[10]);
     199            0 :                 break;
     200              :             }
     201            0 :             case SqeType::WRITE_VALUE_SQE:
     202              :             case SqeType::RDMA_DB_SEND_SQE: {
     203            0 :                 const rtStarsWriteValueSqe_t* writeValueSqePtr
     204              :                     = reinterpret_cast<const rtStarsWriteValueSqe_t*>(sqePtr);
     205            0 :                 PLF_CONFIG_DEBUG(
     206              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsWriteValueSqe_t sqeType[%u]", sqeType);
     207            0 :                 CHK_RET(DumpSqeHeader(writeValueSqePtr->header));
     208            0 :                 PLF_CONFIG_DEBUG(
     209              :                     PLF_TASK,
     210              :                     "[OpUnfoldCache][DumpSqeContent] res3[%u] res4[%u] kernel_credit[%u] res5[%u] "
     211              :                     "write_addr_low[0x%08x] write_addr_high[0x%08x]",
     212              :                     writeValueSqePtr->res3, writeValueSqePtr->res4, writeValueSqePtr->kernel_credit,
     213              :                     writeValueSqePtr->res5, writeValueSqePtr->write_addr_low, writeValueSqePtr->write_addr_high);
     214            0 :                 PLF_CONFIG_DEBUG(
     215              :                     PLF_TASK,
     216              :                     "[OpUnfoldCache][DumpSqeContent] res6[%u] awsize[%u] snoop[%u] awcache[%u] awprot[%u] va[%u] "
     217              :                     "res7[%u]",
     218              :                     writeValueSqePtr->res6, writeValueSqePtr->awsize, writeValueSqePtr->snoop,
     219              :                     writeValueSqePtr->awcache, writeValueSqePtr->awprot, writeValueSqePtr->va, writeValueSqePtr->res7);
     220            0 :                 PLF_CONFIG_DEBUG(
     221              :                     PLF_TASK,
     222              :                     "[OpUnfoldCache][DumpSqeContent] sub_type[%u] write_value_part0[%u] write_value_part1[%u] "
     223              :                     "rdmaWrLenth[%u] rdmaType[%u]",
     224              :                     writeValueSqePtr->sub_type, writeValueSqePtr->write_value_part0,
     225              :                     writeValueSqePtr->write_value_part1, writeValueSqePtr->rdmaWrLenth, writeValueSqePtr->rdmaType);
     226            0 :                 PLF_CONFIG_DEBUG(
     227              :                     PLF_TASK,
     228              :                     "[OpUnfoldCache][DumpSqeContent] write_value_part4[%u] write_value_part5[%u] write_value_part6[%u] "
     229              :                     "write_value_part7[%u]",
     230              :                     writeValueSqePtr->write_value_part4, writeValueSqePtr->write_value_part5,
     231              :                     writeValueSqePtr->write_value_part6, writeValueSqePtr->write_value_part7);
     232            0 :                 break;
     233              :             }
     234            0 :             case SqeType::EVENT_SQE: {
     235            0 :                 const rtStarsEventSqe_t* eventSqePtr = reinterpret_cast<const rtStarsEventSqe_t*>(sqePtr);
     236            0 :                 PLF_CONFIG_DEBUG(PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsEventSqe_t sqeType[%u]", sqeType);
     237            0 :                 CHK_RET(DumpSqeHeader(eventSqePtr->header));
     238            0 :                 PLF_CONFIG_DEBUG(
     239              :                     PLF_TASK,
     240              :                     "[OpUnfoldCache][DumpSqeContent] eventId[%u] res2[%u] res3[%u] kernel_credit[%u] res4[%u] "
     241              :                     "exe_result[%u] timeout[%u]",
     242              :                     eventSqePtr->eventId, eventSqePtr->res2, eventSqePtr->res3, eventSqePtr->kernel_credit,
     243              :                     eventSqePtr->res4, eventSqePtr->exe_result, eventSqePtr->timeout);
     244            0 :                 PLF_CONFIG_DEBUG(
     245              :                     PLF_TASK,
     246              :                     "[OpUnfoldCache][DumpSqeContent] res5[0][%u] res5[1][%u] res5[2][%u] res5[3][%u] res5[4][%u]",
     247              :                     eventSqePtr->res5[0], eventSqePtr->res5[1], eventSqePtr->res5[2], eventSqePtr->res5[3],
     248              :                     eventSqePtr->res5[4]);
     249            0 :                 PLF_CONFIG_DEBUG(
     250              :                     PLF_TASK,
     251              :                     "[OpUnfoldCache][DumpSqeContent] res5[5][%u] res5[6][%u] res5[7][%u] res5[8][%u] res5[9][%u]",
     252              :                     eventSqePtr->res5[5], eventSqePtr->res5[6], eventSqePtr->res5[7], eventSqePtr->res5[8],
     253              :                     eventSqePtr->res5[9]);
     254            0 :                 break;
     255              :             }
     256            0 :             case SqeType::MEMCPY_ASYNC_SQE: {
     257            0 :                 const rtStarsMemcpyAsyncSqe_t* memcpyAsyncSqePtr
     258              :                     = reinterpret_cast<const rtStarsMemcpyAsyncSqe_t*>(sqePtr);
     259            0 :                 PLF_CONFIG_DEBUG(
     260              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsMemcpyAsyncSqe_t sqeType[%u]", sqeType);
     261            0 :                 CHK_RET(DumpSqeHeader(memcpyAsyncSqePtr->header));
     262            0 :                 PLF_CONFIG_DEBUG(
     263              :                     PLF_TASK,
     264              :                     "[OpUnfoldCache][DumpSqeContent] res3[%u] res4[%u] kernel_credit[%u] ptr_mode[%u] res5[%u] "
     265              :                     "opcode[%u] ie2[%u]",
     266              :                     memcpyAsyncSqePtr->res3, memcpyAsyncSqePtr->res4, memcpyAsyncSqePtr->kernel_credit,
     267              :                     memcpyAsyncSqePtr->ptr_mode, memcpyAsyncSqePtr->res5, memcpyAsyncSqePtr->opcode,
     268              :                     memcpyAsyncSqePtr->ie2);
     269            0 :                 PLF_CONFIG_DEBUG(
     270              :                     PLF_TASK,
     271              :                     "[OpUnfoldCache][DumpSqeContent] sssv[%u] dssv[%u] sns[%u] dns[%u] qos[%u] sro[%u] dro[%u] "
     272              :                     "partid[%u] mpam[%u]",
     273              :                     memcpyAsyncSqePtr->sssv, memcpyAsyncSqePtr->dssv, memcpyAsyncSqePtr->sns, memcpyAsyncSqePtr->dns,
     274              :                     memcpyAsyncSqePtr->qos, memcpyAsyncSqePtr->sro, memcpyAsyncSqePtr->dro, memcpyAsyncSqePtr->partid,
     275              :                     memcpyAsyncSqePtr->mpam);
     276            0 :                 PLF_CONFIG_DEBUG(
     277              :                     PLF_TASK,
     278              :                     "[OpUnfoldCache][DumpSqeContent] res6[%u] src_streamid[%u] src_sub_streamid[%u] dst_streamid[%u] "
     279              :                     "dst_sub_streamid[%u]",
     280              :                     memcpyAsyncSqePtr->res6, memcpyAsyncSqePtr->src_streamid, memcpyAsyncSqePtr->src_sub_streamid,
     281              :                     memcpyAsyncSqePtr->dst_streamid, memcpyAsyncSqePtr->dst_sub_streamid);
     282            0 :                 PLF_CONFIG_DEBUG(
     283              :                     PLF_TASK,
     284              :                     "[OpUnfoldCache][DumpSqeContent] length[%u] src_addr_low[0x%08x] src_addr_high[0x%08x] "
     285              :                     "dst_addr_low[0x%08x] dst_addr_high[0x%08x]",
     286              :                     memcpyAsyncSqePtr->length, memcpyAsyncSqePtr->src_addr_low, memcpyAsyncSqePtr->src_addr_high,
     287              :                     memcpyAsyncSqePtr->dst_addr_low, memcpyAsyncSqePtr->dst_addr_high);
     288            0 :                 PLF_CONFIG_DEBUG(
     289              :                     PLF_TASK,
     290              :                     "[OpUnfoldCache][DumpSqeContent] linkType[%u] resvered[0][%u] resvered[1][%u] resvered[2][%u] "
     291              :                     "reslast[0][%u] reslast[1][%u] reslast[2][%u]",
     292              :                     memcpyAsyncSqePtr->linkType, memcpyAsyncSqePtr->resvered[0], memcpyAsyncSqePtr->resvered[1],
     293              :                     memcpyAsyncSqePtr->resvered[2], memcpyAsyncSqePtr->reslast[0], memcpyAsyncSqePtr->reslast[1],
     294              :                     memcpyAsyncSqePtr->reslast[2]);
     295            0 :                 break;
     296              :             }
     297            0 :             case SqeType::CCORE_WAIT_START_SQE: {
     298            0 :                 const rtStarsCcoreWaitStartSqe_t* ccoreWaitStartSqePtr
     299              :                     = reinterpret_cast<const rtStarsCcoreWaitStartSqe_t*>(sqePtr);
     300            0 :                 PLF_CONFIG_DEBUG(
     301              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsCcoreWaitStartSqe_t sqeType[%u]", sqeType);
     302            0 :                 CHK_RET(DumpSqeHeader(ccoreWaitStartSqePtr->sqeHeader));
     303            0 :                 PLF_CONFIG_DEBUG(
     304              :                     PLF_TASK,
     305              :                     "[OpUnfoldCache][DumpSqeContent] reserved0[%u] reserved1[%u] kernel_credit[%u] reserved2[%u] "
     306              :                     "csc[%u]",
     307              :                     ccoreWaitStartSqePtr->reserved0, ccoreWaitStartSqePtr->reserved1,
     308              :                     ccoreWaitStartSqePtr->kernel_credit, ccoreWaitStartSqePtr->reserved2, ccoreWaitStartSqePtr->csc);
     309            0 :                 PLF_CONFIG_DEBUG(
     310              :                     PLF_TASK,
     311              :                     "[OpUnfoldCache][DumpSqeContent] ldrImm1: opCode[%u] rd[%u] reserved[%u] func3[%u] "
     312              :                     "immdAddrHigh[0x%08x] immdAddrLow[0x%08x]",
     313              :                     ccoreWaitStartSqePtr->ldrImm1.opCode, ccoreWaitStartSqePtr->ldrImm1.rd,
     314              :                     ccoreWaitStartSqePtr->ldrImm1.reserved, ccoreWaitStartSqePtr->ldrImm1.func3,
     315              :                     ccoreWaitStartSqePtr->ldrImm1.immdAddrHigh, ccoreWaitStartSqePtr->ldrImm1.immdAddrLow);
     316            0 :                 PLF_CONFIG_DEBUG(
     317              :                     PLF_TASK,
     318              :                     "[OpUnfoldCache][DumpSqeContent] ldrImm2: opCode[%u] rd[%u] reserved[%u] func3[%u] "
     319              :                     "immdAddrHigh[0x%08x] immdAddrLow[0x%08x]",
     320              :                     ccoreWaitStartSqePtr->ldrImm2.opCode, ccoreWaitStartSqePtr->ldrImm2.rd,
     321              :                     ccoreWaitStartSqePtr->ldrImm2.reserved, ccoreWaitStartSqePtr->ldrImm2.func3,
     322              :                     ccoreWaitStartSqePtr->ldrImm2.immdAddrHigh, ccoreWaitStartSqePtr->ldrImm2.immdAddrLow);
     323            0 :                 PLF_CONFIG_DEBUG(
     324              :                     PLF_TASK,
     325              :                     "[OpUnfoldCache][DumpSqeContent] beq: opCode[%u] jumpInstrOffset[%u] rsvd[%u] func3[%u] rs1[%u] "
     326              :                     "rsvd1[%u] rs2[%u] rsvd2[%u] rsvd3[%u]",
     327              :                     ccoreWaitStartSqePtr->beq.opCode, ccoreWaitStartSqePtr->beq.jumpInstrOffset,
     328              :                     ccoreWaitStartSqePtr->beq.rsvd, ccoreWaitStartSqePtr->beq.func3, ccoreWaitStartSqePtr->beq.rs1,
     329              :                     ccoreWaitStartSqePtr->beq.rsvd1, ccoreWaitStartSqePtr->beq.rs2, ccoreWaitStartSqePtr->beq.rsvd2,
     330              :                     ccoreWaitStartSqePtr->beq.rsvd3);
     331            0 :                 PLF_CONFIG_DEBUG(
     332              :                     PLF_TASK,
     333              :                     "[OpUnfoldCache][DumpSqeContent] clear.llwi1: opCode[%u] rd[%u] reserved0[%u] func3[%u] "
     334              :                     "immdHigh[%u] immdLow[%u]",
     335              :                     ccoreWaitStartSqePtr->clear.llwi1.opCode, ccoreWaitStartSqePtr->clear.llwi1.rd,
     336              :                     ccoreWaitStartSqePtr->clear.llwi1.reserved0, ccoreWaitStartSqePtr->clear.llwi1.func3,
     337              :                     ccoreWaitStartSqePtr->clear.llwi1.immdHigh, ccoreWaitStartSqePtr->clear.llwi1.immdLow);
     338            0 :                 PLF_CONFIG_DEBUG(
     339              :                     PLF_TASK,
     340              :                     "[OpUnfoldCache][DumpSqeContent] clear.lhwi1: opCode[%u] rd[%u] reserved0[%u] func3[%u] "
     341              :                     "reserved1[%u] immd[%u]",
     342              :                     ccoreWaitStartSqePtr->clear.lhwi1.opCode, ccoreWaitStartSqePtr->clear.lhwi1.rd,
     343              :                     ccoreWaitStartSqePtr->clear.lhwi1.reserved0, ccoreWaitStartSqePtr->clear.lhwi1.func3,
     344              :                     ccoreWaitStartSqePtr->clear.lhwi1.reserved1, ccoreWaitStartSqePtr->clear.lhwi1.immd);
     345            0 :                 PLF_CONFIG_DEBUG(
     346              :                     PLF_TASK,
     347              :                     "[OpUnfoldCache][DumpSqeContent] clear.sw: opCode[%u] immdLow[%u] func3[%u] rs1[%u] reserved1[%u] "
     348              :                     "rs2[%u] reserved2[%u] immdHigh[%u]",
     349              :                     ccoreWaitStartSqePtr->clear.sw.opCode, ccoreWaitStartSqePtr->clear.sw.immdLow,
     350              :                     ccoreWaitStartSqePtr->clear.sw.func3, ccoreWaitStartSqePtr->clear.sw.rs1,
     351              :                     ccoreWaitStartSqePtr->clear.sw.reserved1, ccoreWaitStartSqePtr->clear.sw.rs2,
     352              :                     ccoreWaitStartSqePtr->clear.sw.reserved2, ccoreWaitStartSqePtr->clear.sw.immdHigh);
     353            0 :                 PLF_CONFIG_DEBUG(
     354              :                     PLF_TASK,
     355              :                     "[OpUnfoldCache][DumpSqeContent] clear.nop[0]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     356              :                     "reserved1[%u] immd[%u]",
     357              :                     ccoreWaitStartSqePtr->clear.nop[0].opCode, ccoreWaitStartSqePtr->clear.nop[0].rd,
     358              :                     ccoreWaitStartSqePtr->clear.nop[0].reserved0, ccoreWaitStartSqePtr->clear.nop[0].func3,
     359              :                     ccoreWaitStartSqePtr->clear.nop[0].rs1, ccoreWaitStartSqePtr->clear.nop[0].reserved1,
     360              :                     ccoreWaitStartSqePtr->clear.nop[0].immd);
     361            0 :                 PLF_CONFIG_DEBUG(
     362              :                     PLF_TASK,
     363              :                     "[OpUnfoldCache][DumpSqeContent] clear.nop[1]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     364              :                     "reserved1[%u] immd[%u]",
     365              :                     ccoreWaitStartSqePtr->clear.nop[1].opCode, ccoreWaitStartSqePtr->clear.nop[1].rd,
     366              :                     ccoreWaitStartSqePtr->clear.nop[1].reserved0, ccoreWaitStartSqePtr->clear.nop[1].func3,
     367              :                     ccoreWaitStartSqePtr->clear.nop[1].rs1, ccoreWaitStartSqePtr->clear.nop[1].reserved1,
     368              :                     ccoreWaitStartSqePtr->clear.nop[1].immd);
     369            0 :                 PLF_CONFIG_DEBUG(
     370              :                     PLF_TASK,
     371              :                     "[OpUnfoldCache][DumpSqeContent] clear.nop[2]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     372              :                     "reserved1[%u] immd[%u]",
     373              :                     ccoreWaitStartSqePtr->clear.nop[2].opCode, ccoreWaitStartSqePtr->clear.nop[2].rd,
     374              :                     ccoreWaitStartSqePtr->clear.nop[2].reserved0, ccoreWaitStartSqePtr->clear.nop[2].func3,
     375              :                     ccoreWaitStartSqePtr->clear.nop[2].rs1, ccoreWaitStartSqePtr->clear.nop[2].reserved1,
     376              :                     ccoreWaitStartSqePtr->clear.nop[2].immd);
     377            0 :                 PLF_CONFIG_DEBUG(
     378              :                     PLF_TASK,
     379              :                     "[OpUnfoldCache][DumpSqeContent] nop[0]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     380              :                     "reserved1[%u] immd[%u]",
     381              :                     ccoreWaitStartSqePtr->nop[0].opCode, ccoreWaitStartSqePtr->nop[0].rd,
     382              :                     ccoreWaitStartSqePtr->nop[0].reserved0, ccoreWaitStartSqePtr->nop[0].func3,
     383              :                     ccoreWaitStartSqePtr->nop[0].rs1, ccoreWaitStartSqePtr->nop[0].reserved1,
     384              :                     ccoreWaitStartSqePtr->nop[0].immd);
     385            0 :                 PLF_CONFIG_DEBUG(
     386              :                     PLF_TASK,
     387              :                     "[OpUnfoldCache][DumpSqeContent] nop[1]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     388              :                     "reserved1[%u] immd[%u]",
     389              :                     ccoreWaitStartSqePtr->nop[1].opCode, ccoreWaitStartSqePtr->nop[1].rd,
     390              :                     ccoreWaitStartSqePtr->nop[1].reserved0, ccoreWaitStartSqePtr->nop[1].func3,
     391              :                     ccoreWaitStartSqePtr->nop[1].rs1, ccoreWaitStartSqePtr->nop[1].reserved1,
     392              :                     ccoreWaitStartSqePtr->nop[1].immd);
     393            0 :                 PLF_CONFIG_DEBUG(
     394              :                     PLF_TASK,
     395              :                     "[OpUnfoldCache][DumpSqeContent] nop[2]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     396              :                     "reserved1[%u] immd[%u]",
     397              :                     ccoreWaitStartSqePtr->nop[2].opCode, ccoreWaitStartSqePtr->nop[2].rd,
     398              :                     ccoreWaitStartSqePtr->nop[2].reserved0, ccoreWaitStartSqePtr->nop[2].func3,
     399              :                     ccoreWaitStartSqePtr->nop[2].rs1, ccoreWaitStartSqePtr->nop[2].reserved1,
     400              :                     ccoreWaitStartSqePtr->nop[2].immd);
     401            0 :                 PLF_CONFIG_DEBUG(
     402              :                     PLF_TASK,
     403              :                     "[OpUnfoldCache][DumpSqeContent] nop[3]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     404              :                     "reserved1[%u] immd[%u]",
     405              :                     ccoreWaitStartSqePtr->nop[3].opCode, ccoreWaitStartSqePtr->nop[3].rd,
     406              :                     ccoreWaitStartSqePtr->nop[3].reserved0, ccoreWaitStartSqePtr->nop[3].func3,
     407              :                     ccoreWaitStartSqePtr->nop[3].rs1, ccoreWaitStartSqePtr->nop[3].reserved1,
     408              :                     ccoreWaitStartSqePtr->nop[3].immd);
     409            0 :                 PLF_CONFIG_DEBUG(
     410              :                     PLF_TASK,
     411              :                     "[OpUnfoldCache][DumpSqeContent] nop[4]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     412              :                     "reserved1[%u] immd[%u]",
     413              :                     ccoreWaitStartSqePtr->nop[4].opCode, ccoreWaitStartSqePtr->nop[4].rd,
     414              :                     ccoreWaitStartSqePtr->nop[4].reserved0, ccoreWaitStartSqePtr->nop[4].func3,
     415              :                     ccoreWaitStartSqePtr->nop[4].rs1, ccoreWaitStartSqePtr->nop[4].reserved1,
     416              :                     ccoreWaitStartSqePtr->nop[4].immd);
     417            0 :                 PLF_CONFIG_DEBUG(
     418              :                     PLF_TASK,
     419              :                     "[OpUnfoldCache][DumpSqeContent] nop[5]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     420              :                     "reserved1[%u] immd[%u]",
     421              :                     ccoreWaitStartSqePtr->nop[5].opCode, ccoreWaitStartSqePtr->nop[5].rd,
     422              :                     ccoreWaitStartSqePtr->nop[5].reserved0, ccoreWaitStartSqePtr->nop[5].func3,
     423              :                     ccoreWaitStartSqePtr->nop[5].rs1, ccoreWaitStartSqePtr->nop[5].reserved1,
     424              :                     ccoreWaitStartSqePtr->nop[5].immd);
     425            0 :                 PLF_CONFIG_DEBUG(
     426              :                     PLF_TASK,
     427              :                     "[OpUnfoldCache][DumpSqeContent] nop[6]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     428              :                     "reserved1[%u] immd[%u]",
     429              :                     ccoreWaitStartSqePtr->nop[6].opCode, ccoreWaitStartSqePtr->nop[6].rd,
     430              :                     ccoreWaitStartSqePtr->nop[6].reserved0, ccoreWaitStartSqePtr->nop[6].func3,
     431              :                     ccoreWaitStartSqePtr->nop[6].rs1, ccoreWaitStartSqePtr->nop[6].reserved1,
     432              :                     ccoreWaitStartSqePtr->nop[6].immd);
     433            0 :                 break;
     434              :             }
     435            0 :             case SqeType::CCORE_WRITE_VALUE_SQE: {
     436            0 :                 const rtStarsCcoreWriteValueSqe_t* ccoreWriteValueSqePtr
     437              :                     = reinterpret_cast<const rtStarsCcoreWriteValueSqe_t*>(sqePtr);
     438            0 :                 PLF_CONFIG_DEBUG(
     439              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsCcoreWriteValueSqe_t sqeType[%u]", sqeType);
     440            0 :                 CHK_RET(DumpSqeHeader(ccoreWriteValueSqePtr->sqeHeader));
     441            0 :                 PLF_CONFIG_DEBUG(
     442              :                     PLF_TASK,
     443              :                     "[OpUnfoldCache][DumpSqeContent] reserved0[%u] reserved1[%u] kernel_credit[%u] reserved2[%u] "
     444              :                     "csc[%u]",
     445              :                     ccoreWriteValueSqePtr->reserved0, ccoreWriteValueSqePtr->reserved1,
     446              :                     ccoreWriteValueSqePtr->kernel_credit, ccoreWriteValueSqePtr->reserved2, ccoreWriteValueSqePtr->csc);
     447            0 :                 PLF_CONFIG_DEBUG(
     448              :                     PLF_TASK,
     449              :                     "[OpUnfoldCache][DumpSqeContent] ldrImm: opCode[%u] rd[%u] reserved[%u] func3[%u] "
     450              :                     "immdAddrHigh[0x%08x] immdAddrLow[0x%08x]",
     451              :                     ccoreWriteValueSqePtr->ldrImm.opCode, ccoreWriteValueSqePtr->ldrImm.rd,
     452              :                     ccoreWriteValueSqePtr->ldrImm.reserved, ccoreWriteValueSqePtr->ldrImm.func3,
     453              :                     ccoreWriteValueSqePtr->ldrImm.immdAddrHigh, ccoreWriteValueSqePtr->ldrImm.immdAddrLow);
     454            0 :                 PLF_CONFIG_DEBUG(
     455              :                     PLF_TASK,
     456              :                     "[OpUnfoldCache][DumpSqeContent] llwi1: opCode[%u] rd[%u] reserved0[%u] func3[%u] immdHigh[%u] "
     457              :                     "immdLow[%u]",
     458              :                     ccoreWriteValueSqePtr->llwi1.opCode, ccoreWriteValueSqePtr->llwi1.rd,
     459              :                     ccoreWriteValueSqePtr->llwi1.reserved0, ccoreWriteValueSqePtr->llwi1.func3,
     460              :                     ccoreWriteValueSqePtr->llwi1.immdHigh, ccoreWriteValueSqePtr->llwi1.immdLow);
     461            0 :                 PLF_CONFIG_DEBUG(
     462              :                     PLF_TASK,
     463              :                     "[OpUnfoldCache][DumpSqeContent] lhwi1: opCode[%u] rd[%u] reserved0[%u] func3[%u] reserved1[%u] "
     464              :                     "immd[%u]",
     465              :                     ccoreWriteValueSqePtr->lhwi1.opCode, ccoreWriteValueSqePtr->lhwi1.rd,
     466              :                     ccoreWriteValueSqePtr->lhwi1.reserved0, ccoreWriteValueSqePtr->lhwi1.func3,
     467              :                     ccoreWriteValueSqePtr->lhwi1.reserved1, ccoreWriteValueSqePtr->lhwi1.immd);
     468            0 :                 PLF_CONFIG_DEBUG(
     469              :                     PLF_TASK,
     470              :                     "[OpUnfoldCache][DumpSqeContent] sw: opCode[%u] immdLow[%u] func3[%u] rs1[%u] reserved1[%u] "
     471              :                     "rs2[%u] reserved2[%u] immdHigh[%u]",
     472              :                     ccoreWriteValueSqePtr->sw.opCode, ccoreWriteValueSqePtr->sw.immdLow,
     473              :                     ccoreWriteValueSqePtr->sw.func3, ccoreWriteValueSqePtr->sw.rs1, ccoreWriteValueSqePtr->sw.reserved1,
     474              :                     ccoreWriteValueSqePtr->sw.rs2, ccoreWriteValueSqePtr->sw.reserved2,
     475              :                     ccoreWriteValueSqePtr->sw.immdHigh);
     476            0 :                 PLF_CONFIG_DEBUG(
     477              :                     PLF_TASK,
     478              :                     "[OpUnfoldCache][DumpSqeContent] nop[0]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     479              :                     "reserved1[%u] immd[%u]",
     480              :                     ccoreWriteValueSqePtr->nop[0].opCode, ccoreWriteValueSqePtr->nop[0].rd,
     481              :                     ccoreWriteValueSqePtr->nop[0].reserved0, ccoreWriteValueSqePtr->nop[0].func3,
     482              :                     ccoreWriteValueSqePtr->nop[0].rs1, ccoreWriteValueSqePtr->nop[0].reserved1,
     483              :                     ccoreWriteValueSqePtr->nop[0].immd);
     484            0 :                 PLF_CONFIG_DEBUG(
     485              :                     PLF_TASK,
     486              :                     "[OpUnfoldCache][DumpSqeContent] nop[1]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     487              :                     "reserved1[%u] immd[%u]",
     488              :                     ccoreWriteValueSqePtr->nop[1].opCode, ccoreWriteValueSqePtr->nop[1].rd,
     489              :                     ccoreWriteValueSqePtr->nop[1].reserved0, ccoreWriteValueSqePtr->nop[1].func3,
     490              :                     ccoreWriteValueSqePtr->nop[1].rs1, ccoreWriteValueSqePtr->nop[1].reserved1,
     491              :                     ccoreWriteValueSqePtr->nop[1].immd);
     492            0 :                 PLF_CONFIG_DEBUG(
     493              :                     PLF_TASK,
     494              :                     "[OpUnfoldCache][DumpSqeContent] nop[2]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     495              :                     "reserved1[%u] immd[%u]",
     496              :                     ccoreWriteValueSqePtr->nop[2].opCode, ccoreWriteValueSqePtr->nop[2].rd,
     497              :                     ccoreWriteValueSqePtr->nop[2].reserved0, ccoreWriteValueSqePtr->nop[2].func3,
     498              :                     ccoreWriteValueSqePtr->nop[2].rs1, ccoreWriteValueSqePtr->nop[2].reserved1,
     499              :                     ccoreWriteValueSqePtr->nop[2].immd);
     500            0 :                 PLF_CONFIG_DEBUG(
     501              :                     PLF_TASK,
     502              :                     "[OpUnfoldCache][DumpSqeContent] nop[3]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     503              :                     "reserved1[%u] immd[%u]",
     504              :                     ccoreWriteValueSqePtr->nop[3].opCode, ccoreWriteValueSqePtr->nop[3].rd,
     505              :                     ccoreWriteValueSqePtr->nop[3].reserved0, ccoreWriteValueSqePtr->nop[3].func3,
     506              :                     ccoreWriteValueSqePtr->nop[3].rs1, ccoreWriteValueSqePtr->nop[3].reserved1,
     507              :                     ccoreWriteValueSqePtr->nop[3].immd);
     508            0 :                 PLF_CONFIG_DEBUG(
     509              :                     PLF_TASK,
     510              :                     "[OpUnfoldCache][DumpSqeContent] nop[4]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     511              :                     "reserved1[%u] immd[%u]",
     512              :                     ccoreWriteValueSqePtr->nop[4].opCode, ccoreWriteValueSqePtr->nop[4].rd,
     513              :                     ccoreWriteValueSqePtr->nop[4].reserved0, ccoreWriteValueSqePtr->nop[4].func3,
     514              :                     ccoreWriteValueSqePtr->nop[4].rs1, ccoreWriteValueSqePtr->nop[4].reserved1,
     515              :                     ccoreWriteValueSqePtr->nop[4].immd);
     516            0 :                 PLF_CONFIG_DEBUG(
     517              :                     PLF_TASK,
     518              :                     "[OpUnfoldCache][DumpSqeContent] nop[5]: opCode[%u] rd[%u] reserved0[%u] func3[%u] rs1[%u] "
     519              :                     "reserved1[%u] immd[%u]",
     520              :                     ccoreWriteValueSqePtr->nop[5].opCode, ccoreWriteValueSqePtr->nop[5].rd,
     521              :                     ccoreWriteValueSqePtr->nop[5].reserved0, ccoreWriteValueSqePtr->nop[5].func3,
     522              :                     ccoreWriteValueSqePtr->nop[5].rs1, ccoreWriteValueSqePtr->nop[5].reserved1,
     523              :                     ccoreWriteValueSqePtr->nop[5].immd);
     524            0 :                 break;
     525              :             }
     526            0 :             case SqeType::NOTIFY_SQE_V2: {
     527            0 :                 const rtStarsNotifySqeV2_t* notifyV2SqePtr = reinterpret_cast<const rtStarsNotifySqeV2_t*>(sqePtr);
     528            0 :                 PLF_CONFIG_DEBUG(PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsNotifySqeV2_t sqeType[%u]", sqeType);
     529            0 :                 CHK_RET(DumpSqeHeader(notifyV2SqePtr->header));
     530            0 :                 PLF_CONFIG_DEBUG(
     531              :                     PLF_TASK,
     532              :                     "[OpUnfoldCache][DumpSqeContent] notify_id[%u] res2[%u] res3[%u] kernel_credit[%u] res4[%u]",
     533              :                     notifyV2SqePtr->notify_id, notifyV2SqePtr->res2, notifyV2SqePtr->res3,
     534              :                     notifyV2SqePtr->kernel_credit, notifyV2SqePtr->res);
     535            0 :                 PLF_CONFIG_DEBUG(
     536              :                     PLF_TASK,
     537              :                     "[OpUnfoldCache][DumpSqeContent] res[0][%u] res[1][%u] res[2][%u] res[3][%u] res[4][%u] res[5][%u]",
     538              :                     notifyV2SqePtr->res[0], notifyV2SqePtr->res[1], notifyV2SqePtr->res[2], notifyV2SqePtr->res[3],
     539              :                     notifyV2SqePtr->res[4], notifyV2SqePtr->res[5]);
     540            0 :                 PLF_CONFIG_DEBUG(
     541              :                     PLF_TASK,
     542              :                     "[OpUnfoldCache][DumpSqeContent] res[6][%u] res[7][%u] res[8][%u] res[9][%u] res[10][%u] "
     543              :                     "res[11][%u]",
     544              :                     notifyV2SqePtr->res[6], notifyV2SqePtr->res[7], notifyV2SqePtr->res[8], notifyV2SqePtr->res[9],
     545              :                     notifyV2SqePtr->res[10], notifyV2SqePtr->res[11]);
     546            0 :                 break;
     547              :             }
     548            0 :             case SqeType::WRITE_VALUE_SQE_V2: {
     549            0 :                 const rtStarsWriteValueSqeV2_t* writeValueV2SqePtr
     550              :                     = reinterpret_cast<const rtStarsWriteValueSqeV2_t*>(sqePtr);
     551            0 :                 PLF_CONFIG_DEBUG(
     552              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsWriteValueSqeV2_t sqeType[%u]", sqeType);
     553            0 :                 CHK_RET(DumpSqeHeader(writeValueV2SqePtr->header));
     554            0 :                 PLF_CONFIG_DEBUG(
     555              :                     PLF_TASK,
     556              :                     "[OpUnfoldCache][DumpSqeContent] reg_addr_low[0x%08x] reg_addr_high[0x%08x] awsize[%u] snoop[%u] "
     557              :                     "res2[%u] awcache[%u] awprot[%u] VA[%u]",
     558              :                     writeValueV2SqePtr->reg_addr_low, writeValueV2SqePtr->reg_addr_high, writeValueV2SqePtr->awsize,
     559              :                     writeValueV2SqePtr->snoop, writeValueV2SqePtr->res2, writeValueV2SqePtr->awcache,
     560              :                     writeValueV2SqePtr->awprot, writeValueV2SqePtr->VA);
     561            0 :                 PLF_CONFIG_DEBUG(
     562              :                     PLF_TASK,
     563              :                     "[OpUnfoldCache][DumpSqeContent] write_val[0][%u] write_val[1][%u] write_val[2][%u] "
     564              :                     "write_val[3][%u] write_val[4][%u] write_val[5][%u] write_val[6][%u] write_val[7][%u]",
     565              :                     writeValueV2SqePtr->write_val[0], writeValueV2SqePtr->write_val[1],
     566              :                     writeValueV2SqePtr->write_val[2], writeValueV2SqePtr->write_val[3],
     567              :                     writeValueV2SqePtr->write_val[4], writeValueV2SqePtr->write_val[5],
     568              :                     writeValueV2SqePtr->write_val[6], writeValueV2SqePtr->write_val[7]);
     569            0 :                 PLF_CONFIG_DEBUG(
     570              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] res[0][%u] res[1][%u] res[2][%u] res[3][%u]",
     571              :                     writeValueV2SqePtr->res[0], writeValueV2SqePtr->res[1], writeValueV2SqePtr->res[2],
     572              :                     writeValueV2SqePtr->res[3]);
     573            0 :                 break;
     574              :             }
     575            0 :             case SqeType::EVENT_SQE_V2: {
     576            0 :                 const rtStarsEventSqeV2_t* eventV2SqePtr = reinterpret_cast<const rtStarsEventSqeV2_t*>(sqePtr);
     577            0 :                 PLF_CONFIG_DEBUG(PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsEventSqeV2_t sqeType[%u]", sqeType);
     578            0 :                 PLF_CONFIG_DEBUG(
     579              :                     PLF_TASK,
     580              :                     "[OpUnfoldCache][DumpSqeContent] type[%u] ie[%u] pre_p[%u] post_p[%u] wr_cqe[%u] res0[%u] flag[%u] "
     581              :                     "rt_stream_id[%u] task_id[%u] event_id[%u]",
     582              :                     eventV2SqePtr->type, eventV2SqePtr->ie, eventV2SqePtr->pre_p, eventV2SqePtr->post_p,
     583              :                     eventV2SqePtr->wr_cqe, eventV2SqePtr->res0, eventV2SqePtr->flag, eventV2SqePtr->rt_stream_id,
     584              :                     eventV2SqePtr->task_id, eventV2SqePtr->event_id);
     585            0 :                 PLF_CONFIG_DEBUG(
     586              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] res2[%u] res3[%u] kernel_credit[%u] res4[%u] offset[%u]",
     587              :                     eventV2SqePtr->res2, eventV2SqePtr->res3, eventV2SqePtr->kernel_credit, eventV2SqePtr->res4,
     588              :                     eventV2SqePtr->offset);
     589            0 :                 PLF_CONFIG_DEBUG(
     590              :                     PLF_TASK,
     591              :                     "[OpUnfoldCache][DumpSqeContent] res6[0][%u] res6[1][%u] res6[2][%u] res6[3][%u] res6[4][%u] "
     592              :                     "res6[5][%u] res6[6][%u] res6[7][%u] res6[8][%u] res6[9][%u] res6[10][%u] res6[11][%u]",
     593              :                     eventV2SqePtr->res6[0], eventV2SqePtr->res6[1], eventV2SqePtr->res6[2], eventV2SqePtr->res6[3],
     594              :                     eventV2SqePtr->res6[4], eventV2SqePtr->res6[5], eventV2SqePtr->res6[6], eventV2SqePtr->res6[7],
     595              :                     eventV2SqePtr->res6[8], eventV2SqePtr->res6[9], eventV2SqePtr->res6[10], eventV2SqePtr->res6[11]);
     596            0 :                 break;
     597              :             }
     598            0 :             case SqeType::MEMCPY_ASYNC_SQE_V2: {
     599            0 :                 const rtStarsMemcpyAsyncSqeV2_t* memcpyAsyncV2SqePtr
     600              :                     = reinterpret_cast<const rtStarsMemcpyAsyncSqeV2_t*>(sqePtr);
     601            0 :                 PLF_CONFIG_DEBUG(
     602              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsMemcpyAsyncSqeV2_t sqeType[%u]", sqeType);
     603            0 :                 PLF_CONFIG_DEBUG(
     604              :                     PLF_TASK,
     605              :                     "[OpUnfoldCache][DumpSqeContent] type[%u] ie[%u] pre_p[%u] post_p[%u] wr_cqe[%u] res0[%u] "
     606              :                     "l2_lock[%u] l2_unlock[%u] res1[%u] rt_stream_id[%u] task_id[%u]",
     607              :                     memcpyAsyncV2SqePtr->type, memcpyAsyncV2SqePtr->ie, memcpyAsyncV2SqePtr->pre_p,
     608              :                     memcpyAsyncV2SqePtr->post_p, memcpyAsyncV2SqePtr->wr_cqe, memcpyAsyncV2SqePtr->res0,
     609              :                     memcpyAsyncV2SqePtr->l2_lock, memcpyAsyncV2SqePtr->l2_unlock, memcpyAsyncV2SqePtr->res1,
     610              :                     memcpyAsyncV2SqePtr->rt_stream_id, memcpyAsyncV2SqePtr->task_id);
     611            0 :                 PLF_CONFIG_DEBUG(
     612              :                     PLF_TASK,
     613              :                     "[OpUnfoldCache][DumpSqeContent] res2[%u] res3[%u] kernel_credit[%u] res4[%u] opcode[%u] "
     614              :                     "ie_dma[%u] sssv[%u] dssv[%u] sns[%u] dns[%u] qos[%u] sro[%u] dro[%u] overflow_en[%u] res5[%u]",
     615              :                     memcpyAsyncV2SqePtr->res2, memcpyAsyncV2SqePtr->res3, memcpyAsyncV2SqePtr->kernel_credit,
     616              :                     memcpyAsyncV2SqePtr->res4, memcpyAsyncV2SqePtr->opcode, memcpyAsyncV2SqePtr->ie_dma,
     617              :                     memcpyAsyncV2SqePtr->sssv, memcpyAsyncV2SqePtr->dssv, memcpyAsyncV2SqePtr->sns,
     618              :                     memcpyAsyncV2SqePtr->dns, memcpyAsyncV2SqePtr->qos, memcpyAsyncV2SqePtr->sro,
     619              :                     memcpyAsyncV2SqePtr->dro, memcpyAsyncV2SqePtr->overflow_en, memcpyAsyncV2SqePtr->res5);
     620            0 :                 PLF_CONFIG_DEBUG(
     621              :                     PLF_TASK,
     622              :                     "[OpUnfoldCache][DumpSqeContent] src_streamid[%u] src_substreamid[%u] dst_streamid[%u] "
     623              :                     "dst_substreamid[%u] length[%u]",
     624              :                     memcpyAsyncV2SqePtr->src_streamid, memcpyAsyncV2SqePtr->src_substreamid,
     625              :                     memcpyAsyncV2SqePtr->dst_streamid, memcpyAsyncV2SqePtr->dst_substreamid,
     626              :                     memcpyAsyncV2SqePtr->length);
     627            0 :                 PLF_CONFIG_DEBUG(
     628              :                     PLF_TASK,
     629              :                     "[OpUnfoldCache][DumpSqeContent] src_addr_low[0x%08x] src_addr_high[0x%08x] dst_addr_low[0x%08x] "
     630              :                     "dst_addr_high[0x%08x] overflow_addr_low[0x%08x] overflow_addr_high[0x%08x]",
     631              :                     memcpyAsyncV2SqePtr->src_addr_low, memcpyAsyncV2SqePtr->src_addr_high,
     632              :                     memcpyAsyncV2SqePtr->dst_addr_low, memcpyAsyncV2SqePtr->dst_addr_high,
     633              :                     memcpyAsyncV2SqePtr->overflow_addr_low, memcpyAsyncV2SqePtr->overflow_addr_high);
     634            0 :                 break;
     635              :             }
     636            0 :             case SqeType::FLIP_PLACEHOLDER_SQE: {
     637            0 :                 const rtStarsPlaceHolderSqe_t* placeholderSqePtr
     638              :                     = reinterpret_cast<const rtStarsPlaceHolderSqe_t*>(sqePtr);
     639            0 :                 PLF_CONFIG_DEBUG(
     640              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsPlaceHolderSqe_t sqeType[%u]", sqeType);
     641            0 :                 CHK_RET(DumpSqeHeader(placeholderSqePtr->header));
     642            0 :                 PLF_CONFIG_DEBUG(
     643              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] res1[%u] res2[%u] kernel_credit[%u] res3[%u]",
     644              :                     placeholderSqePtr->res1, placeholderSqePtr->res2, placeholderSqePtr->kernel_credit,
     645              :                     placeholderSqePtr->res3);
     646            0 :                 PLF_CONFIG_DEBUG(
     647              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] u.flip_task_info: flipNumReport[%u]",
     648              :                     placeholderSqePtr->u.flip_task_info.flipNumReport);
     649              :                 // 注意: 无需打印u.flip_task_info中的reserved数组
     650              :                 // 注意: 无需打印union中的resv数组
     651            0 :                 break;
     652              :             }
     653            0 :             case SqeType::CACHE_MEMCPY_PLACEHOLDER_SQE: {
     654            0 :                 const rtStarsPlaceHolderSqe_t* placeholderSqePtr
     655              :                     = reinterpret_cast<const rtStarsPlaceHolderSqe_t*>(sqePtr);
     656            0 :                 PLF_CONFIG_DEBUG(
     657              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsPlaceHolderSqe_t sqeType[%u]", sqeType);
     658            0 :                 CHK_RET(DumpSqeHeader(placeholderSqePtr->header));
     659            0 :                 PLF_CONFIG_DEBUG(
     660              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] res1[%u] res2[%u] kernel_credit[%u] res3[%u]",
     661              :                     placeholderSqePtr->res1, placeholderSqePtr->res2, placeholderSqePtr->kernel_credit,
     662              :                     placeholderSqePtr->res3);
     663            0 :                 PLF_CONFIG_DEBUG(
     664              :                     PLF_TASK,
     665              :                     "[OpUnfoldCache][DumpSqeContent] u.cache_memcpy_task_info: src_addr_low[0x%08x] "
     666              :                     "src_addr_high[0x%08x] dst_addr_low[0x%08x] dst_addr_high[0x%08x]",
     667              :                     placeholderSqePtr->u.cache_memcpy_task_info.src_addr_low,
     668              :                     placeholderSqePtr->u.cache_memcpy_task_info.src_addr_high,
     669              :                     placeholderSqePtr->u.cache_memcpy_task_info.dst_addr_low,
     670              :                     placeholderSqePtr->u.cache_memcpy_task_info.dst_addr_high);
     671            0 :                 PLF_CONFIG_DEBUG(
     672              :                     PLF_TASK,
     673              :                     "[OpUnfoldCache][DumpSqeContent] u.cache_memcpy_task_info: kernel_credit[%u] linkType[%u]",
     674              :                     placeholderSqePtr->u.cache_memcpy_task_info.kernel_credit,
     675              :                     placeholderSqePtr->u.cache_memcpy_task_info.linkType);
     676              :                 // 注意: 无需打印u.cache_memcpy_task_info中的reserved数组
     677              :                 // 注意: 无需打印union中的resv数组
     678            0 :                 break;
     679              :             }
     680            0 :             case SqeType::CACHE_NOTIFY_PLACEHOLDER_SQE: {
     681            0 :                 const rtStarsPlaceHolderSqe_t* placeholderSqePtr
     682              :                     = reinterpret_cast<const rtStarsPlaceHolderSqe_t*>(sqePtr);
     683            0 :                 PLF_CONFIG_DEBUG(
     684              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsPlaceHolderSqe_t sqeType[%u]", sqeType);
     685            0 :                 CHK_RET(DumpSqeHeader(placeholderSqePtr->header));
     686            0 :                 PLF_CONFIG_DEBUG(
     687              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] res1[%u] res2[%u] kernel_credit[%u] res3[%u]",
     688              :                     placeholderSqePtr->res1, placeholderSqePtr->res2, placeholderSqePtr->kernel_credit,
     689              :                     placeholderSqePtr->res3);
     690            0 :                 PLF_CONFIG_DEBUG(
     691              :                     PLF_TASK,
     692              :                     "[OpUnfoldCache][DumpSqeContent] u.cache_notify_task_info: is_wait[%u] kernel_credit[%u] "
     693              :                     "timeout[%u] notify_id[%u]",
     694              :                     placeholderSqePtr->u.cache_notify_task_info.is_wait,
     695              :                     placeholderSqePtr->u.cache_notify_task_info.kernel_credit,
     696              :                     placeholderSqePtr->u.cache_notify_task_info.timeout,
     697              :                     placeholderSqePtr->u.cache_notify_task_info.notify_id);
     698              :                 // 注意: 无需打印u.cache_notify_task_info中的reserved数组
     699              :                 // 注意: 无需打印union中的resv数组
     700            0 :                 break;
     701              :             }
     702            0 :             case SqeType::CACHE_WRITE_VALUE_PLACEHOLDER_SQE: {
     703            0 :                 const rtStarsPlaceHolderSqe_t* placeholderSqePtr
     704              :                     = reinterpret_cast<const rtStarsPlaceHolderSqe_t*>(sqePtr);
     705            0 :                 PLF_CONFIG_DEBUG(
     706              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsPlaceHolderSqe_t sqeType[%u]", sqeType);
     707            0 :                 CHK_RET(DumpSqeHeader(placeholderSqePtr->header));
     708            0 :                 PLF_CONFIG_DEBUG(
     709              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] res1[%u] res2[%u] kernel_credit[%u] res3[%u]",
     710              :                     placeholderSqePtr->res1, placeholderSqePtr->res2, placeholderSqePtr->kernel_credit,
     711              :                     placeholderSqePtr->res3);
     712            0 :                 PLF_CONFIG_DEBUG(
     713              :                     PLF_TASK,
     714              :                     "[OpUnfoldCache][DumpSqeContent] u.cache_write_value_task_info: write_addr_low[0x%08x] "
     715              :                     "write_addr_high[0x%08x]",
     716              :                     placeholderSqePtr->u.cache_write_value_task_info.write_addr_low,
     717              :                     placeholderSqePtr->u.cache_write_value_task_info.write_addr_high);
     718              :                 // 注意: 无需打印u.cache_write_value_task_info中的reserved数组
     719              :                 // 注意: 无需打印union中的resv数组
     720            0 :                 break;
     721              :             }
     722            0 :             case SqeType::CACHE_MEMCPY_RECORD_PLACEHOLDER_SQE: {
     723            0 :                 const rtStarsPlaceHolderSqe_t* placeholderSqePtr
     724              :                     = reinterpret_cast<const rtStarsPlaceHolderSqe_t*>(sqePtr);
     725            0 :                 PLF_CONFIG_DEBUG(
     726              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] rtStarsPlaceHolderSqe_t sqeType[%u]", sqeType);
     727            0 :                 CHK_RET(DumpSqeHeader(placeholderSqePtr->header));
     728            0 :                 PLF_CONFIG_DEBUG(
     729              :                     PLF_TASK, "[OpUnfoldCache][DumpSqeContent] res1[%u] res2[%u] kernel_credit[%u] res3[%u]",
     730              :                     placeholderSqePtr->res1, placeholderSqePtr->res2, placeholderSqePtr->kernel_credit,
     731              :                     placeholderSqePtr->res3);
     732            0 :                 PLF_CONFIG_DEBUG(
     733              :                     PLF_TASK,
     734              :                     "[OpUnfoldCache][DumpSqeContent] u.cache_memcpy_record_task_info: length[%u]"
     735              :                     "src_addr_low[0x%08x] src_addr_high[0x%08x] dst_addr_low[0x%08x] dst_addr_high[0x%08x]",
     736              :                     placeholderSqePtr->u.cache_memcpy_record_task_info.length,
     737              :                     placeholderSqePtr->u.cache_memcpy_record_task_info.src_addr_low,
     738              :                     placeholderSqePtr->u.cache_memcpy_record_task_info.src_addr_high,
     739              :                     placeholderSqePtr->u.cache_memcpy_record_task_info.dst_addr_low,
     740              :                     placeholderSqePtr->u.cache_memcpy_record_task_info.dst_addr_high);
     741            0 :                 PLF_CONFIG_DEBUG(
     742              :                     PLF_TASK,
     743              :                     "[OpUnfoldCache][DumpSqeContent] u.cache_memcpy_record_task_info: opcode[%u]"
     744              :                     "partid[%u] kernel_credit[%u] linkType[%u]",
     745              :                     placeholderSqePtr->u.cache_memcpy_record_task_info.opcode,
     746              :                     placeholderSqePtr->u.cache_memcpy_record_task_info.partid,
     747              :                     placeholderSqePtr->u.cache_memcpy_record_task_info.kernel_credit,
     748              :                     placeholderSqePtr->u.cache_memcpy_record_task_info.linkType);
     749              :                 // 注意: 无需打印u.cache_memcpy_record_task_info中的reserved数组
     750              :                 // 注意: 无需打印union中的resv数组
     751            0 :                 break;
     752              :             }
     753           12 :             default: {
     754           12 :                 HCCL_WARNING("[OpUnfoldCache][DumpSqeContent] sqeType %u is unsupported", sqeType);
     755           12 :                 break; // This function only for debug, no need to return HCCL_E_NOT_SUPPORT (否则LLT会失败)
     756              :             }
     757              :         }
     758              :     }
     759              : 
     760           12 :     return HCCL_SUCCESS;
     761              : }
     762              : 
     763            0 : HcclResult OpUnfoldCache::DumpSqeHeader(const rtStarsSqeHeader_t& sqeHeader)
     764              : {
     765            0 :     PLF_CONFIG_DEBUG(
     766              :         PLF_TASK,
     767              :         "[OpUnfoldCache][DumpSqeHeader] SQE header: type[%u] l1Lock[%u] l1Unlock[%u] ie[%u] preP[%u] postP[%u] "
     768              :         "wrCqe[%u]",
     769              :         sqeHeader.type, sqeHeader.l1Lock, sqeHeader.l1Unlock, sqeHeader.ie, sqeHeader.preP, sqeHeader.postP,
     770              :         sqeHeader.wrCqe);
     771            0 :     PLF_CONFIG_DEBUG(
     772              :         PLF_TASK, "[OpUnfoldCache][DumpSqeHeader] SQE header: reserved[%u] numBlocks[%u] rtStreamId[%u] taskId[%u]",
     773              :         sqeHeader.reserved, sqeHeader.blockDim, sqeHeader.rtStreamId, sqeHeader.taskId);
     774              : 
     775            0 :     return HCCL_SUCCESS;
     776              : }
     777              : 
     778            0 : HcclResult OpUnfoldCache::DumpSqeHeader(const rtStarsSqeHeaderV2_t& sqeHeader)
     779              : {
     780            0 :     PLF_CONFIG_DEBUG(
     781              :         PLF_TASK,
     782              :         "[OpUnfoldCache][DumpSqeHeader] SQE header V2: type[%u] graph_lock[%u] graph_unlock[%u] ie[%u] pre_p[%u] "
     783              :         "post_p[%u] wr_cqe[%u]",
     784              :         sqeHeader.type, sqeHeader.graph_lock, sqeHeader.graph_unlock, sqeHeader.ie, sqeHeader.pre_p, sqeHeader.post_p,
     785              :         sqeHeader.wr_cqe);
     786            0 :     PLF_CONFIG_DEBUG(
     787              :         PLF_TASK,
     788              :         "[OpUnfoldCache][DumpSqeHeader] SQE header V2: res0[%u] l2_lock[%u] l2_unlock[%u] res1[%u] rt_stream_id[%u] "
     789              :         "task_id[%u]",
     790              :         sqeHeader.res0, sqeHeader.l2_lock, sqeHeader.l2_unlock, sqeHeader.res1, sqeHeader.rt_stream_id,
     791              :         sqeHeader.task_id);
     792              : 
     793            0 :     return HCCL_SUCCESS;
     794              : }
     795              : } // namespace hccl
        

Generated by: LCOV version 2.0-1