跳转至

MI VDF DEBUG SOP


REVISION HISTORY

Revision No.
Description
Date
1.00
  • Initial release
  • 01/18/2024

    前言

    本文档主要是指导在使用VDF功能时的一些常见的问题排查方法。

    1. 问题

    1.1 效果不符合预期

    STEP1 确认参数是否正常

    1. 对照vdf api doc的参数解析,确认下给算法的参数是否正常。

    2. 输入以下命令,抓取proc信息交予vdf owner分析。

      cat /proc/mi_modules/mi_vdf/mi_vdf0

    1.2 踩内存

    当出现vdf踩内存时,一般会在串口输出如下类似的log:

    [MI WRN] MI_SYS_Mma_MmuCallback [mi_sys][365]: [MI_SYS_Mma_MmuCallback] Status=0x4, PhyAddr=0x41220000, ClientId=0x72, IsWrite=1
    

    STEP1 输入以下命令抓取信息

    1. 修改/config/modparam.json中debugMmu字段为1, 开启debug mmu功能。

    2. 输入以下命令, 抓取kmsg信息交予vdf owner分析。

      echo 4 > /proc/mi_modules/mi_vdf/debug_level

      echo debug_mmu debug_log 1 1 1 1 > /proc/mi_modules/mi_sys/mi_sys0

      cat /proc/kmsg

    1.3 vdf卡死

    vdf卡死时,一般会在串口中刷如下的大量log:

    ## input:
    [MI WRN ]: _MI_SYS_Pass_Try_DequeueInputTaskNoLock[3394]:  [thread:vdf0_P0_MAIN] mod[1] dev[0] pass[0] chn[0] inputtask CheckInputTaskStatus failed more than 2010ms,total pending task0
    ## output:
    [MI WRN ]: _MI_SYS_Pass_TryDequeueOutputTaskNoLock[6154]:  [thread:vdf0_P0_MAIN] mod[1] dev[0] pass[0] chn[0] output not finished more than 5000ms
    

    STEP1 确认ive是否卡死

    1. 根据ive模块的debug sop, 确认ive是否卡死。

    STEP2 输入以下命令抓取信息

    1. 输入以下命令,抓取proc信息(至少抓三次)交予vdf owner分析。

      cat /proc/mi_modules/mi_vdf/mi_vdf0 2. 输入以下命令,抓取线程函数调用的信息(至少抓三次)交予vdf owner分析。

      echo show_threads > /proc/mi_modules/mi_sys/mi_sys0

    1.4 其它问题

    1. 输入以下命令,抓取proc信息(至少抓三次)和kmsg信息交予vdf owner分析。

      cat /proc/mi_modules/mi_vdf/mi_vdf0

      echo 4 > /proc/mi_modules/vdf/debug_level

      cat /proc/kmsg > /mnt/xxx.txt