[PATCH] drm/amd/amdgpu: Add gfxoff debugfs entry
Alex Deucher
alexdeucher at gmail.com
Tue Feb 25 15:11:40 UTC 2020
On Mon, Feb 24, 2020 at 9:41 AM Tom St Denis <tom.stdenis at amd.com> wrote:
>
>
> On 2020-02-21 1:59 p.m., Alex Deucher wrote:
> > On Fri, Feb 21, 2020 at 1:45 PM Tom St Denis <tom.stdenis at amd.com> wrote:
> >> Write a 32-bit value of zero to disable GFXOFF and write a 32-bit
> >> value of non-zero to enable GFXOFF.
> >>
> >> Signed-off-by: Tom St Denis <tom.stdenis at amd.com>
> >> ---
> >> drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 56 +++++++++++++++++++++
> >> 1 file changed, 56 insertions(+)
> >>
> >> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
> >> index 7379910790c9..3bb74056b9d2 100644
> >> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
> >> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c
> >> @@ -842,6 +842,55 @@ static ssize_t amdgpu_debugfs_gpr_read(struct file *f, char __user *buf,
> >> return result;
> >> }
> >>
> >> +/**
> >> + * amdgpu_debugfs_regs_gfxoff_write - Enable/disable GFXOFF
> >> + *
> >> + * @f: open file handle
> >> + * @buf: User buffer to write data from
> >> + * @size: Number of bytes to write
> >> + * @pos: Offset to seek to
> >> + *
> >> + * Write a 32-bit zero to disable or a 32-bit non-zero to enable
> >> + */
> >> +static ssize_t amdgpu_debugfs_gfxoff_write(struct file *f, const char __user *buf,
> >> + size_t size, loff_t *pos)
> >> +{
> >> + struct amdgpu_device *adev = file_inode(f)->i_private;
> >> + ssize_t result = 0;
> >> + int r;
> >> +
> >> + if (size & 0x3 || *pos & 0x3)
> >> + return -EINVAL;
> >> +
> >> + r = pm_runtime_get_sync(adev->ddev->dev);
> > Not really directly related to this patch, but If you are using umr
> > for debugging, we should probably disable runtime pm, otherwise the
> > entire GPU may be powered down between accesses. There is already an
> > interface to do that via the core kernel power subsystem in sysfs.
> > E.g.,
> > /sys/class/drm/card0/device/power/control
> > /sys/class/drm/card0/device/power/runtime_status
> > Something else to look at for umr.
>
> We ran into something related to this for UVD/VCE access back in the
> day. When powered down the MMIO registers are mirrored and accessible
> but while in transition they are not. So we added a PG flag to the
> offset in the debugfs entry to flag when we need to take the pm mutex or
> not.
>
>
>
>
> >
> > We don't store the state for when we dynamically turn it off like this
> > so if we get a GPU reset or a power management event (runtime pm or
> > S3), GFXOFF will be re-enabled at that point. This is just for
> > debugging though so:
> > Acked-by: Alex Deucher <alexander.deucher at amd.com>
>
> Good to note. Can I get a R-b from someone though so I can push this out?
You can convert mine to an RB if you prefer.
Alex
>
>
> Tom
>
More information about the amd-gfx
mailing list