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

2022-03-09 Thread Alex Deucher
On Wed, Mar 9, 2022 at 4:21 PM Alex Deucher  wrote:
>
> On Wed, Mar 9, 2022 at 4:10 PM Felix Kuehling  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 
> > > ---
> > >   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,
> > >   _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.

Ah, I see it.  It was from yesterday, so no problem.

Alex

>
> 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,
> > >   _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 0x
> > > +
> > >   /* Matching HSA_EVENTTYPE */
> > >   #define KFD_IOC_EVENT_SIGNAL0
> > >   #define KFD_IOC_EVENT_NODECHANGE1


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

2022-03-09 Thread Alex Deucher
On Wed, Mar 9, 2022 at 4:10 PM Felix Kuehling  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 
> > ---
> >   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,
> >   _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,
> >   _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 0x
> > +
> >   /* Matching HSA_EVENTTYPE */
> >   #define KFD_IOC_EVENT_SIGNAL0
> >   #define KFD_IOC_EVENT_NODECHANGE1


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

2022-03-09 Thread Felix Kuehling

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 
---
  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,
_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.


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,
_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 0x

+
  /* Matching HSA_EVENTTYPE */
  #define KFD_IOC_EVENT_SIGNAL  0
  #define KFD_IOC_EVENT_NODECHANGE  1


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

2022-03-09 Thread David Yat Sin
Set dmabuf handle to invalid for BOs that cannot be accessed using SDMA
during checkpoint/restore.

Signed-off-by: David Yat Sin 
---
 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,
_bucket->dmabuf_fd);
if (ret)
goto exit;
-   }
+   } else
+   bo_bucket->dmabuf_fd = KFD_INVALID_FD;
+
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,
_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 0x
+
 /* Matching HSA_EVENTTYPE */
 #define KFD_IOC_EVENT_SIGNAL   0
 #define KFD_IOC_EVENT_NODECHANGE   1
-- 
2.35.1