@@ -129,63 +129,6 @@ enum SQ_INTERRUPT_ERROR_TYPE {
129129 KFD_DEBUG_CP_BAD_OP_ECODE_MASK) \
130130 >> KFD_DEBUG_CP_BAD_OP_ECODE_SHIFT)
131131
132- static void event_interrupt_poison_consumption (struct kfd_node * dev ,
133- uint16_t pasid , uint16_t client_id )
134- {
135- enum amdgpu_ras_block block = 0 ;
136- int old_poison , ret = - EINVAL ;
137- uint32_t reset = 0 ;
138- struct kfd_process * p = kfd_lookup_process_by_pasid (pasid );
139-
140- if (!p )
141- return ;
142-
143- /* all queues of a process will be unmapped in one time */
144- old_poison = atomic_cmpxchg (& p -> poison , 0 , 1 );
145- kfd_unref_process (p );
146- if (old_poison )
147- return ;
148-
149- switch (client_id ) {
150- case SOC15_IH_CLIENTID_SE0SH :
151- case SOC15_IH_CLIENTID_SE1SH :
152- case SOC15_IH_CLIENTID_SE2SH :
153- case SOC15_IH_CLIENTID_SE3SH :
154- case SOC15_IH_CLIENTID_UTCL2 :
155- ret = kfd_dqm_evict_pasid (dev -> dqm , pasid );
156- block = AMDGPU_RAS_BLOCK__GFX ;
157- if (ret )
158- reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
159- break ;
160- case SOC15_IH_CLIENTID_SDMA0 :
161- case SOC15_IH_CLIENTID_SDMA1 :
162- case SOC15_IH_CLIENTID_SDMA2 :
163- case SOC15_IH_CLIENTID_SDMA3 :
164- case SOC15_IH_CLIENTID_SDMA4 :
165- block = AMDGPU_RAS_BLOCK__SDMA ;
166- reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
167- break ;
168- default :
169- break ;
170- }
171-
172- kfd_signal_poison_consumed_event (dev , pasid );
173-
174- /* resetting queue passes, do page retirement without gpu reset
175- * resetting queue fails, fallback to gpu reset solution
176- */
177- if (!ret )
178- dev_warn (dev -> adev -> dev ,
179- "RAS poison consumption, unmap queue flow succeeded: client id %d\n" ,
180- client_id );
181- else
182- dev_warn (dev -> adev -> dev ,
183- "RAS poison consumption, fall back to gpu reset flow: client id %d\n" ,
184- client_id );
185-
186- amdgpu_amdkfd_ras_poison_consumption_handler (dev -> adev , block , reset );
187- }
188-
189132static bool event_interrupt_isr_v10 (struct kfd_node * dev ,
190133 const uint32_t * ih_ring_entry ,
191134 uint32_t * patched_ihre ,
@@ -332,11 +275,6 @@ static void event_interrupt_wq_v10(struct kfd_node *dev,
332275 REG_GET_FIELD (context_id1 , SQ_INTERRUPT_WORD_WAVE_CTXID1 ,
333276 WGP_ID ),
334277 sq_intr_err_type );
335- if (sq_intr_err_type != SQ_INTERRUPT_ERROR_TYPE_ILLEGAL_INST &&
336- sq_intr_err_type != SQ_INTERRUPT_ERROR_TYPE_MEMVIOL ) {
337- event_interrupt_poison_consumption (dev , pasid , source_id );
338- return ;
339- }
340278 break ;
341279 default :
342280 break ;
@@ -362,9 +300,6 @@ static void event_interrupt_wq_v10(struct kfd_node *dev,
362300 client_id == SOC15_IH_CLIENTID_SDMA7 ) {
363301 if (source_id == SOC15_INTSRC_SDMA_TRAP ) {
364302 kfd_signal_event_interrupt (pasid , context_id0 & 0xfffffff , 28 );
365- } else if (source_id == SOC15_INTSRC_SDMA_ECC ) {
366- event_interrupt_poison_consumption (dev , pasid , source_id );
367- return ;
368303 }
369304 } else if (client_id == SOC15_IH_CLIENTID_VMC ||
370305 client_id == SOC15_IH_CLIENTID_VMC1 ||
@@ -388,12 +323,6 @@ static void event_interrupt_wq_v10(struct kfd_node *dev,
388323 if (vmid_type && client_id == SOC15_IH_CLIENTID_VMC )
389324 hub_inst = node_id / 4 ;
390325
391- if (amdgpu_amdkfd_ras_query_utcl2_poison_status (dev -> adev ,
392- hub_inst , vmid_type )) {
393- event_interrupt_poison_consumption (dev , pasid , client_id );
394- return ;
395- }
396-
397326 info .vmid = vmid ;
398327 info .mc_id = client_id ;
399328 info .page_addr = ih_ring_entry [4 ] |
0 commit comments