[PATCH] drm/amdgpu: Fix KFD oversubscription by tracking queues correctly
Jay Cornwall
jay at jcornwall.me
Thu Jul 13 19:15:56 UTC 2017
On Thu, Jul 13, 2017, at 13:36, Andres Rodriguez wrote:
> On 2017-07-12 02:26 PM, Jay Cornwall wrote:
> > The number of compute queues available to the KFD was erroneously
> > calculated as 64. Only the first MEC can execute compute queues and
> > it has 32 queue slots.
> >
> > This caused the oversubscription limit to be calculated incorrectly,
> > leading to a missing chained runlist command at the end of an
> > oversubscribed runlist.
> >
> > Change-Id: Ic4a139c04b8a6d025fbb831a0a67e98728bfe461
> > Signed-off-by: Jay Cornwall <Jay.Cornwall at amd.com>
> > ---
> > drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> > index 7060daf..aa4006a 100644
> > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> > @@ -140,7 +140,7 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
> > /* According to linux/bitmap.h we shouldn't use bitmap_clear if
> > * nbits is not compile time constant
> > */
> > - last_valid_bit = adev->gfx.mec.num_mec
> > + last_valid_bit = 1 /* only first MEC can have compute queues */
>
> Hey Jay,
>
> Minor nitpick. We already have some similar resource patching in
> kgd2kfd_device_init(), and I think it would be good to keep all of these
> together.
OK. I see shared_resources.num_mec is set to 1 in kgd2kfd_device_init.
That's not very clear (the number of MECs doesn't change) and num_mec
doesn't appear to be used anywhere except in dead code in kfd_device.c.
That code also runs after the queue bitmap setup.
How about I remove that field entirely?
More information about the amd-gfx
mailing list