All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Zimmermann <tzimmermann@suse.de>
To: "Christian König" <christian.koenig@amd.com>,
	alexander.deucher@amd.com, airlied@linux.ie, daniel@ffwll.ch,
	bskeggs@redhat.com, ray.huang@amd.com,
	linux-graphics-maintainer@vmware.com, sroland@vmware.com,
	zackr@vmware.com, shashank.sharma@amd.com, sam@ravnborg.org,
	emil.velikov@collabora.com, Felix.Kuehling@amd.com,
	nirmoy.das@amd.com
Cc: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	amd-gfx@lists.freedesktop.org
Subject: Re: [Nouveau] [PATCH 3/8] drm/amdgpu: Implement mmap as GEM object function
Date: Tue, 6 Apr 2021 13:55:28 +0200	[thread overview]
Message-ID: <a626f328-b6ad-0ab3-b3be-77e6fcb06699@suse.de> (raw)
In-Reply-To: <0b11de8e-7524-d548-bcc9-b5597f646911@amd.com>


[-- Attachment #1.1.1: Type: text/plain, Size: 2785 bytes --]

Hi

Am 06.04.21 um 12:56 schrieb Christian König:
>>
>> In the end I went with the semantics I found in amdgpu_mmap() and 
>> handled KFD specially. Let me know if this requires to be changed.
> 
> Well the question is where is the call to drm_vma_node_verify_access() 
> now? Cause that needs to be skipped for KFD BOs.

I see. It's now drm_vma_node_is_allowed(); called by drm_gem_mmap(). [1] 
So drm_gem_mmap() cannot be used by amdgpu.

If I understand the code at [2] correctly, KFD objects don't use the GEM 
ioctl interfaces, but they still use the internal GEM object that is 
part of the TTM BO. In this case, amdgpu could have its own version of 
drm_gem_mmap(), which calls drm_gem_mmap_obj(), [3] which in turn 
handles the mmap details via GEM object functions.

drm_gem_prime_mmap() doesn't do any additional verification.

Best regards
Thomas

[1] 
https://elixir.bootlin.com/linux/v5.11.11/source/drivers/gpu/drm/drm_gem.c#L1156
[2] 
https://elixir.bootlin.com/linux/v5.11.11/source/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c#L1224
[3] 
https://elixir.bootlin.com/linux/v5.12-rc6/source/drivers/gpu/drm/drm_gem.c#L1053


> 
> Regards,
> Christian.
> 
>>
>> Best regards
>> Thomas
>>
>>>> -
>>>>   int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset,
>>>>                  uint64_t dst_offset, uint32_t byte_count,
>>>>                  struct dma_resv *resv,
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h 
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>>>> index dec0db8b0b13..6e51faad7371 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>>>> @@ -146,7 +146,6 @@ int amdgpu_fill_buffer(struct amdgpu_bo *bo,
>>>>               struct dma_resv *resv,
>>>>               struct dma_fence **fence);
>>>> -int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma);
>>>>   int amdgpu_ttm_alloc_gart(struct ttm_buffer_object *bo);
>>>>   int amdgpu_ttm_recover_gart(struct ttm_buffer_object *tbo);
>>>>   uint64_t amdgpu_ttm_domain_start(struct amdgpu_device *adev, 
>>>> uint32_t type);
>>>
>>> _______________________________________________
>>> dri-devel mailing list
>>> dri-devel@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

WARNING: multiple messages have this Message-ID (diff)
From: Thomas Zimmermann <tzimmermann@suse.de>
To: "Christian König" <christian.koenig@amd.com>,
	alexander.deucher@amd.com, airlied@linux.ie, daniel@ffwll.ch,
	bskeggs@redhat.com, ray.huang@amd.com,
	linux-graphics-maintainer@vmware.com, sroland@vmware.com,
	zackr@vmware.com, shashank.sharma@amd.com, sam@ravnborg.org,
	emil.velikov@collabora.com, Felix.Kuehling@amd.com,
	nirmoy.das@amd.com
Cc: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH 3/8] drm/amdgpu: Implement mmap as GEM object function
Date: Tue, 6 Apr 2021 13:55:28 +0200	[thread overview]
Message-ID: <a626f328-b6ad-0ab3-b3be-77e6fcb06699@suse.de> (raw)
In-Reply-To: <0b11de8e-7524-d548-bcc9-b5597f646911@amd.com>


[-- Attachment #1.1.1: Type: text/plain, Size: 2785 bytes --]

Hi

Am 06.04.21 um 12:56 schrieb Christian König:
>>
>> In the end I went with the semantics I found in amdgpu_mmap() and 
>> handled KFD specially. Let me know if this requires to be changed.
> 
> Well the question is where is the call to drm_vma_node_verify_access() 
> now? Cause that needs to be skipped for KFD BOs.

I see. It's now drm_vma_node_is_allowed(); called by drm_gem_mmap(). [1] 
So drm_gem_mmap() cannot be used by amdgpu.

If I understand the code at [2] correctly, KFD objects don't use the GEM 
ioctl interfaces, but they still use the internal GEM object that is 
part of the TTM BO. In this case, amdgpu could have its own version of 
drm_gem_mmap(), which calls drm_gem_mmap_obj(), [3] which in turn 
handles the mmap details via GEM object functions.

drm_gem_prime_mmap() doesn't do any additional verification.

Best regards
Thomas

[1] 
https://elixir.bootlin.com/linux/v5.11.11/source/drivers/gpu/drm/drm_gem.c#L1156
[2] 
https://elixir.bootlin.com/linux/v5.11.11/source/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c#L1224
[3] 
https://elixir.bootlin.com/linux/v5.12-rc6/source/drivers/gpu/drm/drm_gem.c#L1053


> 
> Regards,
> Christian.
> 
>>
>> Best regards
>> Thomas
>>
>>>> -
>>>>   int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset,
>>>>                  uint64_t dst_offset, uint32_t byte_count,
>>>>                  struct dma_resv *resv,
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h 
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>>>> index dec0db8b0b13..6e51faad7371 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>>>> @@ -146,7 +146,6 @@ int amdgpu_fill_buffer(struct amdgpu_bo *bo,
>>>>               struct dma_resv *resv,
>>>>               struct dma_fence **fence);
>>>> -int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma);
>>>>   int amdgpu_ttm_alloc_gart(struct ttm_buffer_object *bo);
>>>>   int amdgpu_ttm_recover_gart(struct ttm_buffer_object *tbo);
>>>>   uint64_t amdgpu_ttm_domain_start(struct amdgpu_device *adev, 
>>>> uint32_t type);
>>>
>>> _______________________________________________
>>> dri-devel mailing list
>>> dri-devel@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

WARNING: multiple messages have this Message-ID (diff)
From: Thomas Zimmermann <tzimmermann@suse.de>
To: "Christian König" <christian.koenig@amd.com>,
	alexander.deucher@amd.com, airlied@linux.ie, daniel@ffwll.ch,
	bskeggs@redhat.com, ray.huang@amd.com,
	linux-graphics-maintainer@vmware.com, sroland@vmware.com,
	zackr@vmware.com, shashank.sharma@amd.com, sam@ravnborg.org,
	emil.velikov@collabora.com, Felix.Kuehling@amd.com,
	nirmoy.das@amd.com
Cc: nouveau@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	amd-gfx@lists.freedesktop.org
Subject: Re: [PATCH 3/8] drm/amdgpu: Implement mmap as GEM object function
Date: Tue, 6 Apr 2021 13:55:28 +0200	[thread overview]
Message-ID: <a626f328-b6ad-0ab3-b3be-77e6fcb06699@suse.de> (raw)
In-Reply-To: <0b11de8e-7524-d548-bcc9-b5597f646911@amd.com>


[-- Attachment #1.1.1: Type: text/plain, Size: 2785 bytes --]

Hi

Am 06.04.21 um 12:56 schrieb Christian König:
>>
>> In the end I went with the semantics I found in amdgpu_mmap() and 
>> handled KFD specially. Let me know if this requires to be changed.
> 
> Well the question is where is the call to drm_vma_node_verify_access() 
> now? Cause that needs to be skipped for KFD BOs.

I see. It's now drm_vma_node_is_allowed(); called by drm_gem_mmap(). [1] 
So drm_gem_mmap() cannot be used by amdgpu.

If I understand the code at [2] correctly, KFD objects don't use the GEM 
ioctl interfaces, but they still use the internal GEM object that is 
part of the TTM BO. In this case, amdgpu could have its own version of 
drm_gem_mmap(), which calls drm_gem_mmap_obj(), [3] which in turn 
handles the mmap details via GEM object functions.

drm_gem_prime_mmap() doesn't do any additional verification.

Best regards
Thomas

[1] 
https://elixir.bootlin.com/linux/v5.11.11/source/drivers/gpu/drm/drm_gem.c#L1156
[2] 
https://elixir.bootlin.com/linux/v5.11.11/source/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c#L1224
[3] 
https://elixir.bootlin.com/linux/v5.12-rc6/source/drivers/gpu/drm/drm_gem.c#L1053


> 
> Regards,
> Christian.
> 
>>
>> Best regards
>> Thomas
>>
>>>> -
>>>>   int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset,
>>>>                  uint64_t dst_offset, uint32_t byte_count,
>>>>                  struct dma_resv *resv,
>>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h 
>>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>>>> index dec0db8b0b13..6e51faad7371 100644
>>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>>>> @@ -146,7 +146,6 @@ int amdgpu_fill_buffer(struct amdgpu_bo *bo,
>>>>               struct dma_resv *resv,
>>>>               struct dma_fence **fence);
>>>> -int amdgpu_mmap(struct file *filp, struct vm_area_struct *vma);
>>>>   int amdgpu_ttm_alloc_gart(struct ttm_buffer_object *bo);
>>>>   int amdgpu_ttm_recover_gart(struct ttm_buffer_object *tbo);
>>>>   uint64_t amdgpu_ttm_domain_start(struct amdgpu_device *adev, 
>>>> uint32_t type);
>>>
>>> _______________________________________________
>>> dri-devel mailing list
>>> dri-devel@lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

  reply	other threads:[~2021-04-06 11:55 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-06  9:08 [Nouveau] [PATCH 0/8] drm: Clean up mmap for TTM-based GEM drivers Thomas Zimmermann
2021-04-06  9:08 ` Thomas Zimmermann
2021-04-06  9:08 ` Thomas Zimmermann
2021-04-06  9:08 ` [Nouveau] [PATCH 1/8] drm/ttm: Don't override vm_ops callbacks, if set Thomas Zimmermann
2021-04-06  9:08   ` Thomas Zimmermann
2021-04-06  9:08   ` Thomas Zimmermann
2021-04-06  9:08 ` [Nouveau] [PATCH 2/8] drm/amdgpu: Remove unused function amdgpu_bo_fbdev_mmap() Thomas Zimmermann
2021-04-06  9:08   ` Thomas Zimmermann
2021-04-06  9:08   ` Thomas Zimmermann
2021-04-06  9:43   ` [Nouveau] " Christian König
2021-04-06  9:43     ` Christian König
2021-04-06  9:43     ` Christian König
2021-04-06 10:21     ` [Nouveau] " Thomas Zimmermann
2021-04-06 10:21       ` Thomas Zimmermann
2021-04-06 10:21       ` Thomas Zimmermann
2021-04-06  9:08 ` [Nouveau] [PATCH 3/8] drm/amdgpu: Implement mmap as GEM object function Thomas Zimmermann
2021-04-06  9:08   ` Thomas Zimmermann
2021-04-06  9:08   ` Thomas Zimmermann
2021-04-06  9:35   ` [Nouveau] " Christian König
2021-04-06  9:35     ` Christian König
2021-04-06  9:35     ` Christian König
2021-04-06 10:38     ` [Nouveau] " Thomas Zimmermann
2021-04-06 10:38       ` Thomas Zimmermann
2021-04-06 10:38       ` Thomas Zimmermann
2021-04-06 10:56       ` [Nouveau] " Christian König
2021-04-06 10:56         ` Christian König
2021-04-06 10:56         ` Christian König
2021-04-06 11:55         ` Thomas Zimmermann [this message]
2021-04-06 11:55           ` Thomas Zimmermann
2021-04-06 11:55           ` Thomas Zimmermann
2021-04-06 12:42           ` [Nouveau] " Christian König
2021-04-06 12:42             ` Christian König
2021-04-06 12:42             ` Christian König
2021-04-06 12:52             ` [Nouveau] " Thomas Zimmermann
2021-04-06 12:52               ` Thomas Zimmermann
2021-04-06 12:52               ` Thomas Zimmermann
2021-04-06 13:04               ` [Nouveau] " Christian König
2021-04-06 13:04                 ` Christian König
2021-04-06 13:04                 ` Christian König
2021-04-06 15:22                 ` [Nouveau] " Felix Kuehling
2021-04-06 15:22                   ` Felix Kuehling
2021-04-06 15:22                   ` Felix Kuehling
2021-04-06 15:27       ` [Nouveau] " Felix Kuehling
2021-04-06 15:27         ` Felix Kuehling
2021-04-06 15:27         ` Felix Kuehling
2021-04-07 11:25         ` [Nouveau] " Christian König
2021-04-07 11:25           ` Christian König
2021-04-07 11:25           ` Christian König
2021-04-07 19:34           ` [Nouveau] " Felix Kuehling
2021-04-07 19:34             ` Felix Kuehling
2021-04-07 19:34             ` Felix Kuehling
2021-04-07 19:49             ` [Nouveau] " Felix Kuehling
2021-04-07 19:49               ` Felix Kuehling
2021-04-07 19:49               ` Felix Kuehling
2021-04-08  4:45               ` [Nouveau] " Thomas Zimmermann
2021-04-08  4:45                 ` Thomas Zimmermann
2021-04-08  4:45                 ` Thomas Zimmermann
2021-04-14  7:44               ` [Nouveau] " Thomas Zimmermann
2021-04-14  7:44                 ` Thomas Zimmermann
2021-04-14  7:44                 ` Thomas Zimmermann
2021-04-14  8:37                 ` [Nouveau] " Felix Kuehling
2021-04-14  8:37                   ` Felix Kuehling
2021-04-14  8:37                   ` Felix Kuehling
2021-04-06  9:08 ` [Nouveau] [PATCH 4/8] drm/radeon: " Thomas Zimmermann
2021-04-06  9:08   ` Thomas Zimmermann
2021-04-06  9:08   ` Thomas Zimmermann
2021-04-06  9:38   ` [Nouveau] " Christian König
2021-04-06  9:38     ` Christian König
2021-04-06  9:38     ` Christian König
2021-04-06 14:18   ` [Nouveau] " Alex Deucher
2021-04-06 14:18     ` Alex Deucher
2021-04-06 14:18     ` Alex Deucher
2021-04-06  9:09 ` [Nouveau] [PATCH 5/8] drm/nouveau: " Thomas Zimmermann
2021-04-06  9:09   ` Thomas Zimmermann
2021-04-06  9:09   ` Thomas Zimmermann
2021-04-06  9:09 ` [Nouveau] [PATCH 6/8] drm/vmwgfx: Inline ttm_bo_mmap() into vmwgfx driver Thomas Zimmermann
2021-04-06  9:09   ` Thomas Zimmermann
2021-04-06  9:09   ` Thomas Zimmermann
2021-04-07 16:52   ` [Nouveau] " Zack Rusin
2021-04-07 16:52     ` Zack Rusin
2021-04-07 16:52     ` Zack Rusin
2021-04-06  9:09 ` [Nouveau] [PATCH 7/8] drm/vmwgfx: Inline vmw_verify_access() Thomas Zimmermann
2021-04-06  9:09   ` Thomas Zimmermann
2021-04-06  9:09   ` Thomas Zimmermann
2021-04-07 16:52   ` [Nouveau] " Zack Rusin
2021-04-07 16:52     ` Zack Rusin
2021-04-07 16:52     ` Zack Rusin
2021-04-06  9:09 ` [Nouveau] [PATCH 8/8] drm/ttm: Remove ttm_bo_mmap() and friends Thomas Zimmermann
2021-04-06  9:09   ` Thomas Zimmermann
2021-04-06  9:09   ` Thomas Zimmermann
2021-04-06  9:40   ` [Nouveau] " Christian König
2021-04-06  9:40     ` Christian König
2021-04-06  9:40     ` Christian König
2021-04-08 11:19 ` [Nouveau] [PATCH 0/8] drm: Clean up mmap for TTM-based GEM drivers Daniel Vetter
2021-04-08 11:19   ` Daniel Vetter
2021-04-08 11:19   ` Daniel Vetter
2021-04-08 11:38   ` [Nouveau] " Thomas Zimmermann
2021-04-08 11:38     ` Thomas Zimmermann
2021-04-08 11:38     ` Thomas Zimmermann
2021-04-08 11:42     ` [Nouveau] " Daniel Vetter
2021-04-08 11:42       ` Daniel Vetter
2021-04-08 11:42       ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a626f328-b6ad-0ab3-b3be-77e6fcb06699@suse.de \
    --to=tzimmermann@suse.de \
    --cc=Felix.Kuehling@amd.com \
    --cc=airlied@linux.ie \
    --cc=alexander.deucher@amd.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=bskeggs@redhat.com \
    --cc=christian.koenig@amd.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=emil.velikov@collabora.com \
    --cc=linux-graphics-maintainer@vmware.com \
    --cc=nirmoy.das@amd.com \
    --cc=nouveau@lists.freedesktop.org \
    --cc=ray.huang@amd.com \
    --cc=sam@ravnborg.org \
    --cc=shashank.sharma@amd.com \
    --cc=sroland@vmware.com \
    --cc=zackr@vmware.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.