lkml.org 
[lkml]   [2022]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 5.16 0702/1039] drm/amdgpu: Dont inherit GEM object VMAs in child process
    From
    Date
    Hi Greg,

    Am 24.01.22 um 19:41 schrieb Greg Kroah-Hartman:
    > From: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
    >
    > [ Upstream commit fbcdbfde87509d523132b59f661a355c731139d0 ]
    >
    > When an application having open file access to a node forks, its shared
    > mappings also get reflected in the address space of child process even
    > though it cannot access them with the object permissions applied. With the
    > existing permission checks on the gem objects, it might be reasonable to
    > also create the VMAs with VM_DONTCOPY flag so a user space application
    > doesn't need to explicitly call the madvise(addr, len, MADV_DONTFORK)
    > system call to prevent the pages in the mapped range to appear in the
    > address space of the child process. It also prevents the memory leaks
    > due to additional reference counts on the mapped BOs in the child
    > process that prevented freeing the memory in the parent for which we had
    > worked around earlier in the user space inside the thunk library.
    >
    > Additionally, we faced this issue when using CRIU to checkpoint restore
    > an application that had such inherited mappings in the child which
    > confuse CRIU when it mmaps on restore. Having this flag set for the
    > render node VMAs helps. VMAs mapped via KFD already take care of this so
    > this is needed only for the render nodes.
    >
    > To limit the impact of the change to user space consumers such as OpenGL
    > etc, limit it to KFD BOs only.
    >
    > Acked-by: Felix Kuehling <Felix.Kuehling@amd.com>
    > Reviewed-by: Christian König <christian.koenig@amd.com>
    > Signed-off-by: David Yat Sin <david.yatsin@amd.com>
    > Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@amd.com>
    > Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    > Signed-off-by: Sasha Levin <sashal@kernel.org>

    Please drop this patch from all stable versions since it was reverted
    from upstream later on.

    Regards,
    Christian.

    > ---
    > drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 3 +++
    > 1 file changed, 3 insertions(+)
    >
    > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
    > index a1e63ba4c54a5..630dc99e49086 100644
    > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
    > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
    > @@ -264,6 +264,9 @@ static int amdgpu_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_str
    > !(vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)))
    > vma->vm_flags &= ~VM_MAYWRITE;
    >
    > + if (bo->kfd_bo)
    > + vma->vm_flags |= VM_DONTCOPY;
    > +
    > return drm_gem_ttm_mmap(obj, vma);
    > }
    >

    \
     
     \ /
      Last update: 2022-01-25 08:29    [W:4.063 / U:0.248 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site