[PATCH 2/2] drm/amdgpu: export test ring debugfs interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2017å¹´05æ??11æ?¥ 10:41, Deucher, Alexander wrote:
> > -----Original Message-----
> > From: Deucher, Alexander
> > Sent: Wednesday, May 10, 2017 10:38 PM
> > To: Huang, Ray; amd-gfx at lists.freedesktop.org; Koenig, Christian
> > Cc: Zhou, David(ChunMing); Wang, Ken; Huan, Alvin; Huang, Ray
> > Subject: RE: [PATCH 2/2] drm/amdgpu: export test ring debugfs interface
> >
> > > -----Original Message-----
> > > From: Huang Rui [mailto:ray.huang at amd.com]
> > > Sent: Wednesday, May 10, 2017 10:29 PM
> > > To: amd-gfx at lists.freedesktop.org; Deucher, Alexander; Koenig, 
> Christian
> > > Cc: Zhou, David(ChunMing); Wang, Ken; Huan, Alvin; Huang, Ray
> > > Subject: [PATCH 2/2] drm/amdgpu: export test ring debugfs interface
> > >
> > > Signed-off-by: Huang Rui <ray.huang at amd.com>
> >
> > Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
>
> Not sure if it's important for this since it's debugfs, but we don't 
> have any sort of ring locks anymore (since everything should go 
> through the scheduler once it's started) so we could theoretically get 
> collisions if there are active apps using the GPU and you run these tests.
Yes, agree. So patch#1 for ib test should use scheduler, but which could 
be a big change and Christian doesn't like to use scheduler for ib test 
case, consider this is only for test case, the problem isn't big:).

btw: I think patch#2 isn't need if patch#1 is landed, since when you use 
this sys interface, the amdgpu driver must be loaded successfully, ring 
test is meaningless.

Regards,
David Zhou
>
> Alex
>
> >
> > > ---
> > >  drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 44
> > > ++++++++++++++++++++++++++++--
> > >  1 file changed, 42 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> > > b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> > > index 7becf11..3637396 100644
> > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> > > @@ -3625,14 +3625,54 @@ static int amdgpu_debugfs_test_ib(struct
> > > seq_file *m, void *data)
> > >      return 0;
> > >  }
> > >
> > > +static int amdgpu_ring_tests(struct amdgpu_device *adev)
> > > +{
> > > +   unsigned i;
> > > +   int r = 0;
> > > +
> > > +   for (i = 0; i < AMDGPU_MAX_RINGS; ++i) {
> > > +           struct amdgpu_ring *ring = adev->rings[i];
> > > +
> > > +           if (!ring || !ring->ready)
> > > +                   continue;
> > > +
> > > +           r = amdgpu_ring_test_ring(ring);
> > > +           if (r) {
> > > +                   ring->ready = false;
> > > +                   DRM_ERROR("amdgpu: failed to test ring %d
> > > (%d).\n",
> > > +                             i, r);
> > > +           }
> > > +   }
> > > +
> > > +   return r;
> > > +}
> > > +
> > > +static int amdgpu_debugfs_test_ring(struct seq_file *m, void *data)
> > > +{
> > > +   struct drm_info_node *node = (struct drm_info_node *) m-
> > > >private;
> > > +   struct drm_device *dev = node->minor->dev;
> > > +   struct amdgpu_device *adev = dev->dev_private;
> > > +   int r = 0;
> > > +
> > > +   seq_printf(m, "run ring test:\n");
> > > +   r = amdgpu_ring_tests(adev);
> > > +   if (r)
> > > +           seq_printf(m, "ring tests failed (%d).\n", r);
> > > +   else
> > > +           seq_printf(m, "ring tests passed.\n");
> > > +
> > > +   return 0;
> > > +}
> > > +
> > >  static const struct drm_info_list 
> amdgpu_debugfs_test_ib_ring_list[] = {
> > > -   {"amdgpu_test_ib", &amdgpu_debugfs_test_ib}
> > > +   {"amdgpu_test_ib", &amdgpu_debugfs_test_ib},
> > > +   {"amdgpu_test_ring", &amdgpu_debugfs_test_ring}
> > >  };
> > >
> > >  static int amdgpu_debugfs_test_ib_ring_init(struct amdgpu_device
> > *adev)
> > >  {
> > >      return amdgpu_debugfs_add_files(adev,
> > > - amdgpu_debugfs_test_ib_ring_list,
> > > 1);
> > > + amdgpu_debugfs_test_ib_ring_list,
> > > 2);
> > >  }
> > >
> > >  int amdgpu_debugfs_init(struct drm_minor *minor)
> > > --
> > > 2.7.4
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20170511/1da9d1dd/attachment.html>


[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux