On Fri, Sep 18, 2020 at 3:17 AM Quan, Evan <Evan.Quan@xxxxxxx> wrote: > > [AMD Official Use Only - Internal Distribution Only] > > Hi @Sasha Levin @Deucher, Alexander, > > The following changes need to be applied also. > Otherwise, you may see unexpected shutdown on stress gpu loading on Vega10. > > drm/amd/pm: avoid false alarm due to confusing softwareshutdowntemp setting > drm/amd/pm: correct the thermal alert temperature limit settings > drm/amd/pm: correct Vega20 swctf limit setting > drm/amd/pm: correct Vega12 swctf limit setting > drm/amd/pm: correct Vega10 swctf limit setting I would suggest we just drop this patch for kernels prior to 5.8 (where it was introduced). Alex > > BR > Evan > -----Original Message----- > From: Sasha Levin <sashal@xxxxxxxxxx> > Sent: Friday, September 18, 2020 10:00 AM > To: linux-kernel@xxxxxxxxxxxxxxx; stable@xxxxxxxxxxxxxxx > Cc: Quan, Evan <Evan.Quan@xxxxxxx>; Deucher, Alexander <Alexander.Deucher@xxxxxxx>; Sasha Levin <sashal@xxxxxxxxxx>; dri-devel@xxxxxxxxxxxxxxxxxxxxx > Subject: [PATCH AUTOSEL 5.4 265/330] drm/amd/powerplay: try to do a graceful shutdown on SW CTF > > From: Evan Quan <evan.quan@xxxxxxx> > > [ Upstream commit 9495220577416632675959caf122e968469ffd16 ] > > Normally this(SW CTF) should not happen. And by doing graceful shutdown we can prevent further damage. > > Signed-off-by: Evan Quan <evan.quan@xxxxxxx> > Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > --- > .../gpu/drm/amd/powerplay/hwmgr/smu_helper.c | 21 +++++++++++++++---- > drivers/gpu/drm/amd/powerplay/smu_v11_0.c | 7 +++++++ > 2 files changed, 24 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c > index d09690fca4520..414added3d02c 100644 > --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c > +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu_helper.c > @@ -22,6 +22,7 @@ > */ > > #include <linux/pci.h> > +#include <linux/reboot.h> > > #include "hwmgr.h" > #include "pp_debug.h" > @@ -593,12 +594,18 @@ int phm_irq_process(struct amdgpu_device *adev, > uint32_t src_id = entry->src_id; > > if (client_id == AMDGPU_IRQ_CLIENTID_LEGACY) { > -if (src_id == VISLANDS30_IV_SRCID_CG_TSS_THERMAL_LOW_TO_HIGH) > +if (src_id == VISLANDS30_IV_SRCID_CG_TSS_THERMAL_LOW_TO_HIGH) { > pr_warn("GPU over temperature range detected on PCIe %d:%d.%d!\n", > PCI_BUS_NUM(adev->pdev->devfn), > PCI_SLOT(adev->pdev->devfn), > PCI_FUNC(adev->pdev->devfn)); > -else if (src_id == VISLANDS30_IV_SRCID_CG_TSS_THERMAL_HIGH_TO_LOW) > +/* > + * SW CTF just occurred. > + * Try to do a graceful shutdown to prevent further damage. > + */ > +dev_emerg(adev->dev, "System is going to shutdown due to SW CTF!\n"); > +orderly_poweroff(true); > +} else if (src_id == VISLANDS30_IV_SRCID_CG_TSS_THERMAL_HIGH_TO_LOW) > pr_warn("GPU under temperature range detected on PCIe %d:%d.%d!\n", > PCI_BUS_NUM(adev->pdev->devfn), > PCI_SLOT(adev->pdev->devfn), > @@ -609,12 +616,18 @@ int phm_irq_process(struct amdgpu_device *adev, > PCI_SLOT(adev->pdev->devfn), > PCI_FUNC(adev->pdev->devfn)); > } else if (client_id == SOC15_IH_CLIENTID_THM) { > -if (src_id == 0) > +if (src_id == 0) { > pr_warn("GPU over temperature range detected on PCIe %d:%d.%d!\n", > PCI_BUS_NUM(adev->pdev->devfn), > PCI_SLOT(adev->pdev->devfn), > PCI_FUNC(adev->pdev->devfn)); > -else > +/* > + * SW CTF just occurred. > + * Try to do a graceful shutdown to prevent further damage. > + */ > +dev_emerg(adev->dev, "System is going to shutdown due to SW CTF!\n"); > +orderly_poweroff(true); > +} else > pr_warn("GPU under temperature range detected on PCIe %d:%d.%d!\n", > PCI_BUS_NUM(adev->pdev->devfn), > PCI_SLOT(adev->pdev->devfn), > diff --git a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c > index c4d8c52c6b9ca..6c4405622c9bb 100644 > --- a/drivers/gpu/drm/amd/powerplay/smu_v11_0.c > +++ b/drivers/gpu/drm/amd/powerplay/smu_v11_0.c > @@ -23,6 +23,7 @@ > #include <linux/firmware.h> > #include <linux/module.h> > #include <linux/pci.h> > +#include <linux/reboot.h> > > #include "pp_debug.h" > #include "amdgpu.h" > @@ -1538,6 +1539,12 @@ static int smu_v11_0_irq_process(struct amdgpu_device *adev, > PCI_BUS_NUM(adev->pdev->devfn), > PCI_SLOT(adev->pdev->devfn), > PCI_FUNC(adev->pdev->devfn)); > +/* > + * SW CTF just occurred. > + * Try to do a graceful shutdown to prevent further damage. > + */ > +dev_emerg(adev->dev, "System is going to shutdown due to SW CTF!\n"); > +orderly_poweroff(true); > break; > case THM_11_0__SRCID__THM_DIG_THERM_H2L: > pr_warn("GPU under temperature range detected on PCIe %d:%d.%d!\n", > -- > 2.25.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel