LCOV - code coverage report
Current view: top level - adump/dump_statistics/dump_stat_fw - dump_stats_printf.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 60 60
Test Date: 2026-08-31 10:09:28 Functions: 100.0 % 8 8

            Line data    Source code
       1              : /**
       2              :  * Copyright (c) 2026 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              : #include "dump_stats_printf.h"
      11              : 
      12              : namespace kfc_dump_stats {
      13           47 : void KfcDumpPrintf::PrintKfcDumpInitParam(KfcDumpOpInitParam* kfcInitParam)
      14              : {
      15           47 :     KfcDumpStreamInfo* streamInfo = &kfcInitParam->streamInfo;
      16           47 :     KfcDumpWorkSpace* workSpace = &kfcInitParam->kfcWorkSpace;
      17           47 :     KfcDumpOpConfig* opConfig = &kfcInitParam->config;
      18           47 :     IDE_LOGI(
      19              :         "[KfcDumpOpInitParam][KfcDumpStreamInfo] streamId[%u] sqId[%u] cqId[%u] logicCqid[%u] deviceId[%u]",
      20              :         streamInfo->streamIds, streamInfo->sqIds, streamInfo->cqIds, streamInfo->logicCqIds, streamInfo->deviceId);
      21           47 :     IDE_LOGI(
      22              :         "[KfcDumpOpInitParam][KfcDumpWorkSpace] msgQ[0x%lx] msgQSize[%lu] output[0x%lx] outputSize[%lu] "
      23              :         "workspace[0x%lx] workspaceSize[%lu] stackPhyBase32K[0x%lx] stackPhyBase32KSize[%lu]",
      24              :         workSpace->msgQ, workSpace->msgQSize, workSpace->output, workSpace->outputSize, workSpace->workspace,
      25              :         workSpace->workspaceSize, workSpace->stackPhyBase32k, workSpace->stackPhyBase32kSize);
      26           47 :     IDE_LOGI(
      27              :         "[KfcDumpOpInitParam][KfcDumpOpConfig] aiCoreNum[%lu] vectorCoreNum[%lu] "
      28              :         "ubSize[%lu] dumpStatPcAddr[0x%lx] statsType[%lu] chipType[%lu]",
      29              :         opConfig->aiCoreNum, opConfig->vectorCoreNum, opConfig->ubSize, opConfig->dumpStatPcAddr, opConfig->statsType,
      30              :         opConfig->chipType);
      31           47 : }
      32              : 
      33           36 : void KfcDumpPrintf::PrintKfcDumpStreamCtx(KfcDumpStreamCtx* streamCtx)
      34              : {
      35           36 :     IDE_LOGI(
      36              :         "[KfcDumpStreamCtx] devId[%u] chipType[%u] sqHead[%u] sqTail[%u] sqDepth[%u] sqBaseAddr[%p]", streamCtx->devId,
      37              :         streamCtx->chipType, streamCtx->sqHead, streamCtx->sqTail, streamCtx->sqDepth, streamCtx->sqBaseAddr);
      38           36 : }
      39              : 
      40           30 : void KfcDumpPrintf::PrintSqeV1(uint8_t* sqeIn)
      41              : {
      42           30 :     rtFftsPlusKernelSqe_t* sqe = (rtFftsPlusKernelSqe_t*)sqeIn;
      43           30 :     IDE_LOGI(
      44              :         "Header:type[%u] l1_lock[%u] l1_unlock[%u] ie[%u] pre_p[%u]", sqe->header.type, sqe->header.l1_lock,
      45              :         sqe->header.l1_unlock, sqe->header.ie, sqe->header.pre_p);
      46           30 :     IDE_LOGI(
      47              :         "post_p [%u] wr_cqe[%u] reserved[%u] block_dim[%u] rt_stream_id[%u] task_id[%u]", sqe->header.post_p,
      48              :         sqe->header.wr_cqe, sqe->header.reserved, sqe->header.block_dim, sqe->header.rt_stream_id, sqe->header.task_id);
      49           30 :     IDE_LOGI(
      50              :         "SQE:ffts_type[%u] wrr_ratio[%u] sqe_index[%u] kernel_credit[%u]", sqe->ffts_type, sqe->wrr_ratio,
      51              :         sqe->sqe_index, sqe->kernel_credit);
      52           30 :     IDE_LOGI(
      53              :         "stack_phy_base_high[0x%x] res4[%u] pmg[%u] ns[%u]", sqe->stack_phy_base_high, sqe->res4, sqe->pmg, sqe->ns);
      54           30 :     IDE_LOGI("part_id[%u] res5[%u] qos[%u] res6[%u]", sqe->part_id, sqe->res5, sqe->qos, sqe->res6);
      55           30 :     IDE_LOGI(
      56              :         "pc_addr_low[0x%x] pc_addr_high[0x%x] res7[%u] param_addr_low[0x%x] param_addr_high[0x%x]", sqe->pc_addr_low,
      57              :         sqe->pc_addr_high, sqe->res7, sqe->param_addr_low, sqe->param_addr_high);
      58           30 : }
      59              : 
      60            2 : void KfcDumpPrintf::PrintSqeV2(uint8_t* sqeIn)
      61              : {
      62            2 :     auto sqe = (hwts_kernel_sqe_t*)sqeIn;
      63            2 :     IDE_LOGI(
      64              :         "type[%u] graph_lock[%u] graph_unlock[%u] ie[%u] pre_p[%u]", sqe->type, sqe->graph_lock, sqe->graph_unlock,
      65              :         sqe->ie, sqe->pre_p);
      66            2 :     IDE_LOGI(
      67              :         "post_p[%u] wr_cqe[%u] rd_cond[%u] reserved[%u] l2_lock[%u]", sqe->post_p, sqe->wr_cqe, sqe->rd_cond,
      68              :         sqe->reserved, sqe->l2_lock);
      69            2 :     IDE_LOGI(
      70              :         "l2_unlock[%u] block_dim[%u] rt_stream_id[%u] task_id[%u] pc_addr_low[0x%x] pc_addr_high[0x%x]", sqe->l2_unlock,
      71              :         sqe->block_dim, sqe->rt_stream_id, sqe->task_id, sqe->pc_addr_low, sqe->pc_addr_high);
      72            2 :     IDE_LOGI(
      73              :         "kernel_credit[%u] res0[%u] prefetch_cnt[%u] param_addr_low[0x%x] param_addr_high[0x%x]", sqe->kernel_credit,
      74              :         sqe->res0, sqe->prefetch_cnt, sqe->param_addr_low, sqe->param_addr_high);
      75            2 :     IDE_LOGI(
      76              :         "l2_in_main[%u] res1[%u] literal_addr_low[0x%x] literal_addr_high[0x%x] res2[%u]", sqe->l2_in_main, sqe->res1,
      77              :         sqe->literal_addr_low, sqe->literal_addr_high, sqe->res2);
      78            2 :     IDE_LOGI(
      79              :         "literal_base_ub[%u] res3[%u] sta_mode[%u] literal_buff_len[%u] res4[%u]", sqe->literal_base_ub, sqe->res3,
      80              :         sqe->sta_mode, sqe->literal_buff_len, sqe->res4);
      81            2 :     IDE_LOGI(
      82              :         "p2_l2ctrl_low[0x%x] p_l2ctrl_high[0x%x] res5[%u] res6[%u] res7[%u]", sqe->p_l2ctrl_low, sqe->p_l2ctrl_high,
      83              :         sqe->res5, sqe->res6, sqe->res7);
      84            2 : }
      85              : 
      86            3 : void KfcDumpPrintf::PrintSqeCloudV4(uint8_t* sqeIn)
      87              : {
      88            3 :     rtDavidStarsAicAivSqeCloudV4* sqe = reinterpret_cast<rtDavidStarsAicAivSqeCloudV4*>(sqeIn);
      89            3 :     IDE_LOGI(
      90              :         "Header: type[%u] lock[%u] unlock[%u] ie[%u] preP[%u] postP[%u] wrCqe[%u]", sqe->header.type, sqe->header.lock,
      91              :         sqe->header.unlock, sqe->header.ie, sqe->header.preP, sqe->header.postP, sqe->header.wrCqe);
      92            3 :     IDE_LOGI(
      93              :         "ptrMode[%u] rttMode[%u] headUpdate[%u] blockDim[%u] rtStreamId[%u] taskId[%u]", sqe->header.ptrMode,
      94              :         sqe->header.rttMode, sqe->header.headUpdate, sqe->header.blockDim, sqe->header.rtStreamId, sqe->header.taskId);
      95            3 :     IDE_LOGI(
      96              :         "SQE: groupDim[%u] groupBlockDim[%u] featureFlag[%u] kernelCredit[%u]", sqe->groupDim, sqe->groupBlockDim,
      97              :         sqe->featureFlag, sqe->kernelCredit);
      98            3 :     IDE_LOGI("dieFriendly[%u] mix[%u] loose[%u] sqeLength[%u]", sqe->dieFriendly, sqe->mix, sqe->loose, sqe->sqeLength);
      99            3 :     IDE_LOGI(
     100              :         "stackPhyBaseLow[%x] stackPhyBaseHigh[%x] aicPmg[%u] aicNs[%u] aicPartId[%u]", sqe->stackPhyBaseLow,
     101              :         sqe->stackPhyBaseHigh, sqe->aicPmg, sqe->aicNs, sqe->aicPartId);
     102            3 :     IDE_LOGI(
     103              :         "piMix[%u] aicQos[%u] aicWrrRd[%u] aicWrrWr[%u] aicIcachePrefetchCnt[%u] aivIcachePrefetchCnt[%u]", sqe->piMix,
     104              :         sqe->aicQos, sqe->aicWrrRd, sqe->aicWrrWr, sqe->aicIcachePrefetchCnt, sqe->aivIcachePrefetchCnt);
     105            3 :     IDE_LOGI(
     106              :         "aivPmg[%u] aivNs[%u] aivPartId[%u] aivQos[%u] aivWrrRd[%u] aivWrrWr[%u] schem[%u] ratio[%u]", sqe->tail.aivPmg,
     107              :         sqe->tail.aivNs, sqe->tail.aivPartId, sqe->tail.aivQos, sqe->tail.aivWrrRd, sqe->tail.aivWrrWr, sqe->tail.schem,
     108              :         sqe->tail.ratio);
     109            3 :     IDE_LOGI(
     110              :         "aicStartPcLow[%u] aivStartPcLow[%u] aicStartPcHigh[%u] aivStartPcHigh[%u] aivSimtDcuSmSize[%u]",
     111              :         sqe->tail.aicStartPcLow, sqe->tail.aivStartPcLow, sqe->tail.aicStartPcHigh, sqe->tail.aivStartPcHigh,
     112              :         sqe->tail.aivSimtDcuSmSize);
     113            3 :     IDE_LOGI(
     114              :         "aicTaskParamPtrLow[%x] aicTaskParamPtrHigh[%x] aivTaskParamPtrLow[%x] aivTaskParamPtrHigh[%x]",
     115              :         sqe->tail.aicTaskParamPtrLow, sqe->tail.aicTaskParamPtrHigh, sqe->tail.aivTaskParamPtrLow,
     116              :         sqe->tail.aivTaskParamPtrHigh);
     117            3 : }
     118              : 
     119            1 : void KfcDumpPrintf::PrintSqeCloudV5(uint8_t* sqeIn)
     120              : {
     121            1 :     rtDavidStarsAicAivSqeCloudV5* sqe = reinterpret_cast<rtDavidStarsAicAivSqeCloudV5*>(sqeIn);
     122            1 :     IDE_LOGI(
     123              :         "Header: type[%u] lock[%u] unlock[%u] ie[%u] preP[%u] postP[%u] wrCqe[%u]", sqe->header.type, sqe->header.lock,
     124              :         sqe->header.unlock, sqe->header.ie, sqe->header.preP, sqe->header.postP, sqe->header.wrCqe);
     125            1 :     IDE_LOGI(
     126              :         "ptrMode[%u] rttMode[%u] headUpdate[%u] blockDim[%u] rtStreamId[%u] taskId[%u]", sqe->header.ptrMode,
     127              :         sqe->header.rttMode, sqe->header.headUpdate, sqe->header.blockDim, sqe->header.rtStreamId, sqe->header.taskId);
     128            1 :     IDE_LOGI(
     129              :         "SQE: groupDim[%u] groupBlockdim[%u] featureFlag[%u] kernelCredit[%u] "
     130              :         "dieFriendly[%u] mix[%u] loose[%u] ost[%u] sqeLength[%u]",
     131              :         sqe->groupDim, sqe->groupBlockdim, sqe->featureFlag, sqe->kernelCredit, sqe->dieFriendly, sqe->mix, sqe->loose,
     132              :         sqe->ost, sqe->sqeLength);
     133            1 :     IDE_LOGI(
     134              :         "aicMtePortArOstd[%u] aicMtePortAwOstd[%u] aivMtePortArOstd[%u] aivMtePortAwOstd[%u]", sqe->aicMtePortArOstd,
     135              :         sqe->aicMtePortAwOstd, sqe->aivMtePortArOstd, sqe->aivMtePortAwOstd);
     136            1 :     IDE_LOGI(
     137              :         "aivDcachePrefetchCnt[%u] aicDcachePrefetchCnt[%u] aivIcachePrefetchCnt[%u] "
     138              :         "aicIcachePrefetchCnt[%u]",
     139              :         sqe->aivDcachePrefetchCnt, sqe->aicDcachePrefetchCnt, sqe->aivIcachePrefetchCnt, sqe->aicIcachePrefetchCnt);
     140            1 :     IDE_LOGI(
     141              :         "aicPmg[%u] aicNs[%u] aicPartId[%u] piMix[%u] aicQos[%u] aicWrrRd[%u] aicWrrWr[%u] "
     142              :         "getNxtTaskMode[%u] aicPreAllocateDisable[%u] aivPreAllocateDisable[%u]",
     143              :         sqe->aicPmg, sqe->aicNs, sqe->aicPartId, sqe->piMix, sqe->aicQos, sqe->aicWrrRd, sqe->aicWrrWr,
     144              :         sqe->getNxtTaskMode, sqe->aicPreAllocateDisable, sqe->aivPreAllocateDisable);
     145            1 :     IDE_LOGI(
     146              :         "aivPmg[%u] aivNs[%u] aivPartId[%u] aivQos[%u] aivWrrRd[%u] aivWrrWr[%u] schem[%u] ratio[%u]", sqe->tail.aivPmg,
     147              :         sqe->tail.aivNs, sqe->tail.aivPartId, sqe->tail.aivQos, sqe->tail.aivWrrRd, sqe->tail.aivWrrWr, sqe->tail.schem,
     148              :         sqe->tail.ratio);
     149            1 :     IDE_LOGI(
     150              :         "aicStartPcLow[0x%x] aivStartPcLow[0x%x] aicStartPcHigh[0x%x] aivStartPcHigh[0x%x] "
     151              :         "aivSimtDcuSmSize[%u]",
     152              :         sqe->tail.aicStartPcLow, sqe->tail.aivStartPcLow, sqe->tail.aicStartPcHigh, sqe->tail.aivStartPcHigh,
     153              :         sqe->tail.aivSimtDcuSmSize);
     154            1 :     IDE_LOGI(
     155              :         "aicTaskParamPtrLow[0x%x] aicTaskParamPtrHigh[0x%x] aivTaskParamPtrLow[0x%x] aivTaskParamPtrHigh[0x%x]",
     156              :         sqe->tail.aicTaskParamPtrLow, sqe->tail.aicTaskParamPtrHigh, sqe->tail.aivTaskParamPtrLow,
     157              :         sqe->tail.aivTaskParamPtrHigh);
     158            1 : }
     159              : 
     160          871 : void KfcDumpPrintf::PrintMsg(KfcDumpStatsMsg& msg)
     161              : {
     162          871 :     IDE_LOGI(
     163              :         "[KfcDumpStatsMsg] msgType[%u] dataType[%u] dataCount[%lu] dataAddr[0x%lx] dumpStatClass[%lu] "
     164              :         "outputAddr[0x%lx] outputAddrSize[%lu] valid[%u] result[%u]",
     165              :         msg.msgType, msg.dataType, msg.dataCount, msg.dataAddr, msg.dumpStatClass, msg.outputAddr, msg.outputAddrSize,
     166              :         msg.valid, msg.result);
     167          871 : }
     168              : 
     169           32 : void KfcDumpPrintf::PrintDumpContext(KfcDumpContext* dumpContext)
     170              : {
     171           32 :     IDE_LOGI(
     172              :         "[KfcDumpContext] msgQ[0x%lx] workspace[0x%lx] workspaceSize[%lu] workspaceSizeAddr[0x%lx] "
     173              :         "aiCoreNum[%lu] aiCoreNumAddr[0x%lx] ubSize[%lu] ubSizeAddr[0x%lx] syncSpace[0x%lx]",
     174              :         dumpContext->msgQ, dumpContext->workspace, dumpContext->workspaceSize, dumpContext->workspaceSizeAddr,
     175              :         dumpContext->aiCoreNum, dumpContext->aiCoreNumAddr, dumpContext->ubSize, dumpContext->ubSizeAddr,
     176              :         dumpContext->syncSpace);
     177           32 : }
     178              : } // namespace kfc_dump_stats
        

Generated by: LCOV version 2.0-1