mbox series

[0/2,radeon] Getting rid of GUP and use HMM for user ptr features.

Message ID 20180910005753.5860-1-jglisse@redhat.com (mailing list archive)
Headers show
Series Getting rid of GUP and use HMM for user ptr features. | expand

Message

Jerome Glisse Sept. 10, 2018, 12:57 a.m. UTC
From: Jérôme Glisse <jglisse@redhat.com>

[This depends on some HMM patchset queued upstream see branch [1]]

This is simple change to switch to use HMM for user ptr buffer object
which conveniently avoid to pin pages. I have more things in the pipe
to make HMM more usefull for such cases (like sharing more resources
accross multiple mirror of a same process).

Beside avoiding pining, this is also an attempt to isolate core mm
from device drivers by having clearly define API and boundary where
we can set expection of everyone and thus having mm folks to have to
read and understand driver code and conversly having driver folks
understand mm maze.

This is also part of what i want to discuss during XDC2018.

Consider this as an RFC to start the discussion.

[1] https://cgit.freedesktop.org/~glisse/linux/log/?h=hmm-radeon-v00

Cc: dri-devel@lists.freedesktop.org
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Felix Kuehling <Felix.Kuehling@amd.com>
Cc: David (ChunMing) Zhou <David1.Zhou@amd.com>
Cc: Nicolai Hähnle <nicolai.haehnle@amd.com>
Cc: amd-gfx@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>

Jérôme Glisse (2):
  gpu/radeon: use HMM mirror instead of mmu_notifier
  gpu/radeon: use HMM mirror for userptr buffer object.

 drivers/gpu/drm/radeon/radeon.h     |  14 +-
 drivers/gpu/drm/radeon/radeon_gem.c |  16 +-
 drivers/gpu/drm/radeon/radeon_mn.c  | 283 +++++++++++++++++++++-------
 drivers/gpu/drm/radeon/radeon_ttm.c | 129 ++-----------
 4 files changed, 259 insertions(+), 183 deletions(-)

Comments

Christian König Sept. 10, 2018, 7 a.m. UTC | #1
Am 10.09.2018 um 02:57 schrieb jglisse@redhat.com:
> From: Jérôme Glisse <jglisse@redhat.com>
>
> [This depends on some HMM patchset queued upstream see branch [1]]
>
> This is simple change to switch to use HMM for user ptr buffer object
> which conveniently avoid to pin pages. I have more things in the pipe
> to make HMM more usefull for such cases (like sharing more resources
> accross multiple mirror of a same process).
>
> Beside avoiding pining, this is also an attempt to isolate core mm
> from device drivers by having clearly define API and boundary where
> we can set expection of everyone and thus having mm folks to have to
> read and understand driver code and conversly having driver folks
> understand mm maze.
>
> This is also part of what i want to discuss during XDC2018.
>
> Consider this as an RFC to start the discussion.

Looks good on first glance, but please drop support for radeon and use 
amdgpu instead.

The radeon implementation has quite a number of bugs which aren't fixed 
upstream and I actually considered to drop it again.

We can add it back as soon as the HMM implementation works as expected.

Thanks,
Christian.

>
> [1] https://cgit.freedesktop.org/~glisse/linux/log/?h=hmm-radeon-v00
>
> Cc: dri-devel@lists.freedesktop.org
> Cc: Alex Deucher <alexander.deucher@amd.com>
> Cc: Christian König <christian.koenig@amd.com>
> Cc: Felix Kuehling <Felix.Kuehling@amd.com>
> Cc: David (ChunMing) Zhou <David1.Zhou@amd.com>
> Cc: Nicolai Hähnle <nicolai.haehnle@amd.com>
> Cc: amd-gfx@lists.freedesktop.org
> Cc: David Airlie <airlied@linux.ie>
> Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>
> Jérôme Glisse (2):
>    gpu/radeon: use HMM mirror instead of mmu_notifier
>    gpu/radeon: use HMM mirror for userptr buffer object.
>
>   drivers/gpu/drm/radeon/radeon.h     |  14 +-
>   drivers/gpu/drm/radeon/radeon_gem.c |  16 +-
>   drivers/gpu/drm/radeon/radeon_mn.c  | 283 +++++++++++++++++++++-------
>   drivers/gpu/drm/radeon/radeon_ttm.c | 129 ++-----------
>   4 files changed, 259 insertions(+), 183 deletions(-)
>