CC: [email protected] TO: farah kassabri <[email protected]> CC: Oded Gabbay <[email protected]>
tree: https://github.com/HabanaAI/linux.git habanalabs-next head: eb5cb5d380ac735874da3b555f4c8ab6ea814c90 commit: eb5cb5d380ac735874da3b555f4c8ab6ea814c90 [17/17] habanalabs: extend busy engines mask to 64 bits :::::: branch date: 4 days ago :::::: commit date: 4 days ago config: x86_64-randconfig-m001-20200820 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> Reported-by: Dan Carpenter <[email protected]> smatch warnings: drivers/misc/habanalabs/gaudi/gaudi.c:6077 gaudi_is_device_idle() warn: should '!is_eng_idle << (0 + dma_id)' be a 64 bit type? # https://github.com/HabanaAI/linux/commit/eb5cb5d380ac735874da3b555f4c8ab6ea814c90 git remote add habanaai https://github.com/HabanaAI/linux.git git fetch --no-tags habanaai habanalabs-next git checkout eb5cb5d380ac735874da3b555f4c8ab6ea814c90 vim +6077 drivers/misc/habanalabs/gaudi/gaudi.c ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6043 eb5cb5d380ac735 farah kassabri 2020-08-12 6044 static bool gaudi_is_device_idle(struct hl_device *hdev, u64 *mask, ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6045 struct seq_file *s) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6046 { ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6047 struct gaudi_device *gaudi = hdev->asic_specific; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6048 const char *fmt = "%-5d%-9s%#-14x%#-12x%#x\n"; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6049 const char *mme_slave_fmt = "%-5d%-9s%-14s%-12s%#x\n"; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6050 u32 qm_glbl_sts0, qm_cgm_sts, dma_core_sts0, tpc_cfg_sts, mme_arch_sts; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6051 bool is_idle = true, is_eng_idle, is_slave; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6052 u64 offset; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6053 int i, dma_id; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6054 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6055 mutex_lock(&gaudi->clk_gate_mutex); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6056 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6057 hdev->asic_funcs->disable_clock_gating(hdev); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6058 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6059 if (s) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6060 seq_puts(s, ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6061 "\nDMA is_idle QM_GLBL_STS0 QM_CGM_STS DMA_CORE_STS0\n" ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6062 "--- ------- ------------ ---------- -------------\n"); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6063 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6064 for (i = 0 ; i < DMA_NUMBER_OF_CHNLS ; i++) { ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6065 dma_id = gaudi_dma_assignment[i]; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6066 offset = dma_id * DMA_QMAN_OFFSET; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6067 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6068 qm_glbl_sts0 = RREG32(mmDMA0_QM_GLBL_STS0 + offset); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6069 qm_cgm_sts = RREG32(mmDMA0_QM_CGM_STS + offset); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6070 dma_core_sts0 = RREG32(mmDMA0_CORE_STS0 + offset); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6071 is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) && ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6072 IS_DMA_IDLE(dma_core_sts0); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6073 is_idle &= is_eng_idle; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6074 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6075 if (mask) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6076 *mask |= !is_eng_idle << ac0ae6a96aa58ee Oded Gabbay 2020-05-11 @6077 (GAUDI_ENGINE_ID_DMA_0 + dma_id); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6078 if (s) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6079 seq_printf(s, fmt, dma_id, ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6080 is_eng_idle ? "Y" : "N", qm_glbl_sts0, ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6081 qm_cgm_sts, dma_core_sts0); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6082 } ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6083 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6084 if (s) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6085 seq_puts(s, ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6086 "\nTPC is_idle QM_GLBL_STS0 QM_CGM_STS CFG_STATUS\n" ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6087 "--- ------- ------------ ---------- ----------\n"); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6088 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6089 for (i = 0 ; i < TPC_NUMBER_OF_ENGINES ; i++) { ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6090 offset = i * TPC_QMAN_OFFSET; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6091 qm_glbl_sts0 = RREG32(mmTPC0_QM_GLBL_STS0 + offset); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6092 qm_cgm_sts = RREG32(mmTPC0_QM_CGM_STS + offset); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6093 tpc_cfg_sts = RREG32(mmTPC0_CFG_STATUS + offset); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6094 is_eng_idle = IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts) && ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6095 IS_TPC_IDLE(tpc_cfg_sts); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6096 is_idle &= is_eng_idle; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6097 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6098 if (mask) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6099 *mask |= !is_eng_idle << (GAUDI_ENGINE_ID_TPC_0 + i); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6100 if (s) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6101 seq_printf(s, fmt, i, ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6102 is_eng_idle ? "Y" : "N", ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6103 qm_glbl_sts0, qm_cgm_sts, tpc_cfg_sts); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6104 } ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6105 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6106 if (s) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6107 seq_puts(s, ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6108 "\nMME is_idle QM_GLBL_STS0 QM_CGM_STS ARCH_STATUS\n" ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6109 "--- ------- ------------ ---------- -----------\n"); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6110 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6111 for (i = 0 ; i < MME_NUMBER_OF_ENGINES ; i++) { ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6112 offset = i * MME_QMAN_OFFSET; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6113 mme_arch_sts = RREG32(mmMME0_CTRL_ARCH_STATUS + offset); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6114 is_eng_idle = IS_MME_IDLE(mme_arch_sts); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6115 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6116 /* MME 1 & 3 are slaves, no need to check their QMANs */ ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6117 is_slave = i % 2; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6118 if (!is_slave) { ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6119 qm_glbl_sts0 = RREG32(mmMME0_QM_GLBL_STS0 + offset); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6120 qm_cgm_sts = RREG32(mmMME0_QM_CGM_STS + offset); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6121 is_eng_idle &= IS_QM_IDLE(qm_glbl_sts0, qm_cgm_sts); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6122 } ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6123 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6124 is_idle &= is_eng_idle; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6125 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6126 if (mask) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6127 *mask |= !is_eng_idle << (GAUDI_ENGINE_ID_MME_0 + i); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6128 if (s) { ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6129 if (!is_slave) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6130 seq_printf(s, fmt, i, ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6131 is_eng_idle ? "Y" : "N", ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6132 qm_glbl_sts0, qm_cgm_sts, mme_arch_sts); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6133 else ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6134 seq_printf(s, mme_slave_fmt, i, ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6135 is_eng_idle ? "Y" : "N", "-", ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6136 "-", mme_arch_sts); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6137 } ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6138 } ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6139 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6140 if (s) ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6141 seq_puts(s, "\n"); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6142 e38bfd30e08802d Oded Gabbay 2020-07-03 6143 hdev->asic_funcs->set_clock_gating(hdev); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6144 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6145 mutex_unlock(&gaudi->clk_gate_mutex); ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6146 ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6147 return is_idle; ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6148 } ac0ae6a96aa58ee Oded Gabbay 2020-05-11 6149 :::::: The code at line 6077 was first introduced by commit :::::: ac0ae6a96aa58eeba4aed97b12ef1dea8c5bf399 habanalabs: add gaudi asic-dependent code :::::: TO: Oded Gabbay <[email protected]> :::::: CC: Oded Gabbay <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
