[radeon-alex:drm-next-4.20-wip 229/235] drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_vi.c:202:34: sparse: expression using sizeof(void)
kbuild test robot
lkp at intel.com
Wed Aug 29 06:55:24 UTC 2018
tree: git://people.freedesktop.org/~agd5f/linux.git drm-next-4.20-wip
head: bdb1922abd620d24715906bac4d119274d98f4c9
commit: 04d5e2765802241b54ee93d1e655123c39fa7385 [229/235] drm/amdgpu: Merge amdkfd into amdgpu
reproduce:
# apt-get install sparse
git checkout 04d5e2765802241b54ee93d1e655123c39fa7385
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_vi.c:202:34: sparse: expression using sizeof(void)
--
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_v9.c:204:33: sparse: expression using sizeof(void)
--
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_kernel_queue_vi.c:134:31: sparse: expression using sizeof(void)
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_kernel_queue_vi.c:134:31: sparse: expression using sizeof(void)
--
include/linux/slab.h:631:13: sparse: undefined identifier '__builtin_mul_overflow'
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_events.c:648:27: sparse: expression using sizeof(void)
include/linux/slab.h:631:13: sparse: call with no type!
--
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:37:16: sparse: cast to restricted __le32
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:43:17: sparse: cast to restricted __le32
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:47:21: sparse: cast to restricted __le32
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:48:21: sparse: cast to restricted __le32
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:73:21: sparse: cast to restricted __le32
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:74:21: sparse: cast to restricted __le32
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:75:17: sparse: cast to restricted __le32
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:76:16: sparse: cast to restricted __le32
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:77:22: sparse: cast to restricted __le32
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_int_process_v9.c:90:36: sparse: cast to restricted __le32
--
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_iommu.c:87:23: sparse: expression using sizeof(void)
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_iommu.c:87:23: sparse: expression using sizeof(void)
--
>> drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_pm4_headers_ai.h:517:80: sparse: dubious one-bit signed bitfield
vim +202 drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_mqd_manager_vi.c
d696d536f Ben Goz 2015-01-12 159
d696d536f Ben Goz 2015-01-12 160 static int __update_mqd(struct mqd_manager *mm, void *mqd,
d696d536f Ben Goz 2015-01-12 161 struct queue_properties *q, unsigned int mtype,
d696d536f Ben Goz 2015-01-12 162 unsigned int atc_bit)
d696d536f Ben Goz 2015-01-12 163 {
d696d536f Ben Goz 2015-01-12 164 struct vi_mqd *m;
d696d536f Ben Goz 2015-01-12 165
d696d536f Ben Goz 2015-01-12 166 m = get_mqd(mqd);
d696d536f Ben Goz 2015-01-12 167
d696d536f Ben Goz 2015-01-12 168 m->cp_hqd_pq_control = 5 << CP_HQD_PQ_CONTROL__RPTR_BLOCK_SIZE__SHIFT |
d696d536f Ben Goz 2015-01-12 169 atc_bit << CP_HQD_PQ_CONTROL__PQ_ATC__SHIFT |
d696d536f Ben Goz 2015-01-12 170 mtype << CP_HQD_PQ_CONTROL__MTYPE__SHIFT;
115c8c410 Felix Kuehling 2017-11-06 171 m->cp_hqd_pq_control |= order_base_2(q->queue_size / 4) - 1;
79775b627 Kent Russell 2017-08-15 172 pr_debug("cp_hqd_pq_control 0x%x\n", m->cp_hqd_pq_control);
d696d536f Ben Goz 2015-01-12 173
d696d536f Ben Goz 2015-01-12 174 m->cp_hqd_pq_base_lo = lower_32_bits((uint64_t)q->queue_address >> 8);
d696d536f Ben Goz 2015-01-12 175 m->cp_hqd_pq_base_hi = upper_32_bits((uint64_t)q->queue_address >> 8);
d696d536f Ben Goz 2015-01-12 176
d696d536f Ben Goz 2015-01-12 177 m->cp_hqd_pq_rptr_report_addr_lo = lower_32_bits((uint64_t)q->read_ptr);
d696d536f Ben Goz 2015-01-12 178 m->cp_hqd_pq_rptr_report_addr_hi = upper_32_bits((uint64_t)q->read_ptr);
ee04955af Felix Kuehling 2018-01-04 179 m->cp_hqd_pq_wptr_poll_addr_lo = lower_32_bits((uint64_t)q->write_ptr);
ee04955af Felix Kuehling 2018-01-04 180 m->cp_hqd_pq_wptr_poll_addr_hi = upper_32_bits((uint64_t)q->write_ptr);
d696d536f Ben Goz 2015-01-12 181
d696d536f Ben Goz 2015-01-12 182 m->cp_hqd_pq_doorbell_control =
d696d536f Ben Goz 2015-01-12 183 q->doorbell_off <<
d696d536f Ben Goz 2015-01-12 184 CP_HQD_PQ_DOORBELL_CONTROL__DOORBELL_OFFSET__SHIFT;
79775b627 Kent Russell 2017-08-15 185 pr_debug("cp_hqd_pq_doorbell_control 0x%x\n",
d696d536f Ben Goz 2015-01-12 186 m->cp_hqd_pq_doorbell_control);
d696d536f Ben Goz 2015-01-12 187
d696d536f Ben Goz 2015-01-12 188 m->cp_hqd_eop_control = atc_bit << CP_HQD_EOP_CONTROL__EOP_ATC__SHIFT |
d696d536f Ben Goz 2015-01-12 189 mtype << CP_HQD_EOP_CONTROL__MTYPE__SHIFT;
d696d536f Ben Goz 2015-01-12 190
d696d536f Ben Goz 2015-01-12 191 m->cp_hqd_ib_control = atc_bit << CP_HQD_IB_CONTROL__IB_ATC__SHIFT |
d696d536f Ben Goz 2015-01-12 192 3 << CP_HQD_IB_CONTROL__MIN_IB_AVAIL_SIZE__SHIFT |
d696d536f Ben Goz 2015-01-12 193 mtype << CP_HQD_IB_CONTROL__MTYPE__SHIFT;
d696d536f Ben Goz 2015-01-12 194
af68d87ca Jay Cornwall 2017-08-15 195 /*
af68d87ca Jay Cornwall 2017-08-15 196 * HW does not clamp this field correctly. Maximum EOP queue size
af68d87ca Jay Cornwall 2017-08-15 197 * is constrained by per-SE EOP done signal count, which is 8-bit.
af68d87ca Jay Cornwall 2017-08-15 198 * Limit is 0xFF EOP entries (= 0x7F8 dwords). CP will not submit
af68d87ca Jay Cornwall 2017-08-15 199 * more than (EOP entry count - 1) so a queue size of 0x800 dwords
af68d87ca Jay Cornwall 2017-08-15 200 * is safe, giving a maximum field value of 0xA.
af68d87ca Jay Cornwall 2017-08-15 201 */
af68d87ca Jay Cornwall 2017-08-15 @202 m->cp_hqd_eop_control |= min(0xA,
115c8c410 Felix Kuehling 2017-11-06 203 order_base_2(q->eop_ring_buffer_size / 4) - 1);
d696d536f Ben Goz 2015-01-12 204 m->cp_hqd_eop_base_addr_lo =
d696d536f Ben Goz 2015-01-12 205 lower_32_bits(q->eop_ring_buffer_address >> 8);
d696d536f Ben Goz 2015-01-12 206 m->cp_hqd_eop_base_addr_hi =
d696d536f Ben Goz 2015-01-12 207 upper_32_bits(q->eop_ring_buffer_address >> 8);
d696d536f Ben Goz 2015-01-12 208
d696d536f Ben Goz 2015-01-12 209 m->cp_hqd_iq_timer = atc_bit << CP_HQD_IQ_TIMER__IQ_ATC__SHIFT |
d696d536f Ben Goz 2015-01-12 210 mtype << CP_HQD_IQ_TIMER__MTYPE__SHIFT;
d696d536f Ben Goz 2015-01-12 211
d696d536f Ben Goz 2015-01-12 212 m->cp_hqd_vmid = q->vmid;
d696d536f Ben Goz 2015-01-12 213
d696d536f Ben Goz 2015-01-12 214 if (q->format == KFD_QUEUE_FORMAT_AQL) {
d696d536f Ben Goz 2015-01-12 215 m->cp_hqd_pq_control |= CP_HQD_PQ_CONTROL__NO_UPDATE_RPTR_MASK |
d696d536f Ben Goz 2015-01-12 216 2 << CP_HQD_PQ_CONTROL__SLOT_BASED_WPTR__SHIFT;
d696d536f Ben Goz 2015-01-12 217 }
d696d536f Ben Goz 2015-01-12 218
373d70808 Felix Kuehling 2017-11-14 219 if (mm->dev->cwsr_enabled && q->ctx_save_restore_area_address)
373d70808 Felix Kuehling 2017-11-14 220 m->cp_hqd_ctx_save_control =
373d70808 Felix Kuehling 2017-11-14 221 atc_bit << CP_HQD_CTX_SAVE_CONTROL__ATC__SHIFT |
373d70808 Felix Kuehling 2017-11-14 222 mtype << CP_HQD_CTX_SAVE_CONTROL__MTYPE__SHIFT;
373d70808 Felix Kuehling 2017-11-14 223
39e7f3318 Felix Kuehling 2018-07-14 224 update_cu_mask(mm, mqd, q);
39e7f3318 Felix Kuehling 2018-07-14 225
bba9662db Jay Cornwall 2017-11-01 226 q->is_active = (q->queue_size > 0 &&
d696d536f Ben Goz 2015-01-12 227 q->queue_address != 0 &&
26103436d Felix Kuehling 2018-02-06 228 q->queue_percent > 0 &&
26103436d Felix Kuehling 2018-02-06 229 !q->is_evicted);
d696d536f Ben Goz 2015-01-12 230
d696d536f Ben Goz 2015-01-12 231 return 0;
d696d536f Ben Goz 2015-01-12 232 }
d696d536f Ben Goz 2015-01-12 233
:::::: The code at line 202 was first introduced by commit
:::::: af68d87cac0664c9118e76727e4273eab56deb83 drm/amdkfd: Clamp EOP queue size correctly on Gfx8
:::::: TO: Jay Cornwall <Jay.Cornwall at amd.com>
:::::: CC: Oded Gabbay <oded.gabbay at gmail.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
More information about the dri-devel
mailing list