[AMD Official Use Only - AMD Internal Distribution Only] > -----Original Message----- > From: Hawking Zhang <Hawking.Zhang@xxxxxxx> > Sent: Monday, August 19, 2024 11:15 PM > To: amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Zhou1, Tao <Tao.Zhou1@xxxxxxx>; Yang, > Stanley <Stanley.Yang@xxxxxxx> > Cc: Zhang, Hawking <Hawking.Zhang@xxxxxxx>; Fan, Shikang > <Shikang.Fan@xxxxxxx> > Subject: [PATCH 1/3] drm/amdkfd: Check int source id for utcl2 poison event > > Traditional utcl2 fault_status polling does not work in SRIOV environment. The > polling of fault status register from guest side will be dropped by hardware. > > Driver should switch to check utcl2 interrupt source id to identify utcl2 poison > event. It is set to 1 when poisoned data interrupts are signaled. > > Signed-off-by: Hawking Zhang <Hawking.Zhang@xxxxxxx> > --- > drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 3 +-- > drivers/gpu/drm/amd/amdkfd/soc15_int.h | 1 + > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c > b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c > index a9c3580be8c9..1196dccbe6bc 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c > @@ -448,8 +448,7 @@ static void event_interrupt_wq_v9(struct kfd_node *dev, > if (vmid_type && client_id == SOC15_IH_CLIENTID_VMC) > hub_inst = node_id / 4; > > - if (amdgpu_amdkfd_ras_query_utcl2_poison_status(dev->adev, > - hub_inst, vmid_type)) { [Tao] the node_id, vmid_type and hub_inst can be also dropped. > + if (source_id == SOC15_INTSRC_VMC_UTCL2_POISON) { > event_interrupt_poison_consumption_v9(dev, pasid, > client_id); > return; > } > diff --git a/drivers/gpu/drm/amd/amdkfd/soc15_int.h > b/drivers/gpu/drm/amd/amdkfd/soc15_int.h > index 10138676f27f..e5c0205f2618 100644 > --- a/drivers/gpu/drm/amd/amdkfd/soc15_int.h > +++ b/drivers/gpu/drm/amd/amdkfd/soc15_int.h > @@ -29,6 +29,7 @@ > #define SOC15_INTSRC_CP_BAD_OPCODE 183 > #define SOC15_INTSRC_SQ_INTERRUPT_MSG 239 > #define SOC15_INTSRC_VMC_FAULT 0 > +#define SOC15_INTSRC_VMC_UTCL2_POISON 1 > #define SOC15_INTSRC_SDMA_TRAP 224 > #define SOC15_INTSRC_SDMA_ECC 220 > #define SOC21_INTSRC_SDMA_TRAP 49 > -- > 2.17.1