[PATCH] drm/amdkfd: Set handle to invalid for non GTT/VRAM BOs

Alex Deucher alexdeucher at gmail.com
Wed Mar 9 21:21:05 UTC 2022


On Wed, Mar 9, 2022 at 4:10 PM Felix Kuehling <felix.kuehling at amd.com> wrote:
>
> On 2022-03-09 12:41, David Yat Sin wrote:
> > Set dmabuf handle to invalid for BOs that cannot be accessed using SDMA
> > during checkpoint/restore.
> >
> > Signed-off-by: David Yat Sin <david.yatsin at amd.com>
> > ---
> >   drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 8 ++++++--
> >   include/uapi/linux/kfd_ioctl.h           | 2 ++
> >   2 files changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > index e1e2362841f8..1ffa976ad318 100644
> > --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
> > @@ -1767,7 +1767,9 @@ static int criu_checkpoint_bos(struct kfd_process *p,
> >                                               &bo_bucket->dmabuf_fd);
> >                               if (ret)
> >                                       goto exit;
> > -                     }
> > +                     } else
> > +                             bo_bucket->dmabuf_fd = KFD_INVALID_FD;
>
> Minor nit-pick: It would be better to use {} around the else-branch for
> consistency with the if-branch. Same below.
>
> Ideally, this should have been part of the patch that bumped the KFD
> version to 1.8. Alex, is there a way to squash this when you send this
> in a pull-request for drm-next? Maybe if we create the commit with "git
> commit --fixup" you can let auto-squash handle it.
>

When did that patch land?  If I haven't included it in a PR yet, I can
squash this in.

Alex


> Other than that, the patch looks good to me.
>
> Regards,
>    Felix
>
>
> > +
> >                       if (bo_bucket->alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_DOORBELL)
> >                               bo_bucket->offset = KFD_MMAP_TYPE_DOORBELL |
> >                                       KFD_MMAP_GPU_ID(pdd->dev->id);
> > @@ -2219,7 +2221,9 @@ static int criu_restore_bo(struct kfd_process *p,
> >                                           &bo_bucket->dmabuf_fd);
> >               if (ret)
> >                       return ret;
> > -     }
> > +     } else
> > +             bo_bucket->dmabuf_fd = KFD_INVALID_FD;
> > +
> >       return 0;
> >   }
> >
> > diff --git a/include/uapi/linux/kfd_ioctl.h b/include/uapi/linux/kfd_ioctl.h
> > index eb9ff85f8556..42975e940758 100644
> > --- a/include/uapi/linux/kfd_ioctl.h
> > +++ b/include/uapi/linux/kfd_ioctl.h
> > @@ -196,6 +196,8 @@ struct kfd_ioctl_dbg_wave_control_args {
> >       __u32 buf_size_in_bytes;        /*including gpu_id and buf_size */
> >   };
> >
> > +#define KFD_INVALID_FD     0xffffffff
> > +
> >   /* Matching HSA_EVENTTYPE */
> >   #define KFD_IOC_EVENT_SIGNAL                        0
> >   #define KFD_IOC_EVENT_NODECHANGE            1


More information about the dri-devel mailing list