[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250321080029.1715078-1-honglei1.huang@amd.com>
Date: Fri, 21 Mar 2025 16:00:22 +0800
From: Honglei Huang <honglei1.huang@....com>
To: David Airlie <airlied@...hat.com>, Gerd Hoffmann <kraxel@...hat.com>,
Gurchetan Singh <gurchetansingh@...omium.org>, Chia-I Wu <olvaffe@...il.com>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>, Maxime Ripard
<mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>, Simona Vetter
<simona@...ll.ch>, Rob Clark <robdclark@...il.com>, Huang Rui
<ray.huang@....com>
CC: <dri-devel@...ts.freedesktop.org>, <virtualization@...ts.linux.dev>,
<linux-kernel@...r.kernel.org>, Demi Marie Obenour <demiobenour@...il.com>,
Dmitry Osipenko <dmitry.osipenko@...labora.com>, Honglei Huang
<Honglei1.Huang@....com>
Subject: [PATCH v2 0/7] *** Add virtio gpu userptr support ***
From: Honglei Huang <Honglei1.Huang@....com>
Hello,
This series add virtio gpu userptr support and add libhsakmt capset.
The userptr feature is used for let host access guest user space memory,
this feature is used for GPU compute use case, to enable ROCm/OpenCL native
context. It should be pointed out that we are not to implement SVM here,
this is just a buffer based userptr implementation.
The libhsakmt capset is used for ROCm context, libhsakmt is like the role
of libdrm in Mesa.
Patches 1-2 add libhsakmt capset and userptr blob resource flag.
Patches 3-5 implement basic userptr feature, in some popular bench marks,
it has an efficiency of about 70% compared to bare metal in OpenCL API.
Patch 6 adds interval tree to manage userptrs and prevent duplicate creation.
V2: - Split add HSAKMT context and blob userptr resource to two patches.
- Remove MMU notifier related patches, cause use not moveable user space
memory with MMU notifier is not a good idea.
- Remove HSAKMT context check when create context, let all the context
support the userptr feature.
- Remove MMU notifier related content in cover letter.
- Add more comments for patch 6 in cover letter.
Honglei Huang (7):
virtio-gpu api: add HSAKMT context
virtio-gpu api: add blob userptr resource
drm/virtgpu api: add blob userptr resource
drm/virtio: implement userptr: probe for the feature
drm/virtio: implement userptr: add userptr obj
drm/virtio: advertise base userptr feature to userspace
drm/virtio: implement userptr: add interval tree
drivers/gpu/drm/virtio/Makefile | 3 +-
drivers/gpu/drm/virtio/virtgpu_debugfs.c | 1 +
drivers/gpu/drm/virtio/virtgpu_drv.c | 1 +
drivers/gpu/drm/virtio/virtgpu_drv.h | 48 ++++
drivers/gpu/drm/virtio/virtgpu_ioctl.c | 20 +-
drivers/gpu/drm/virtio/virtgpu_kms.c | 8 +-
drivers/gpu/drm/virtio/virtgpu_object.c | 5 +
drivers/gpu/drm/virtio/virtgpu_userptr.c | 351 +++++++++++++++++++++++
include/uapi/drm/virtgpu_drm.h | 5 +-
include/uapi/linux/virtio_gpu.h | 7 +
10 files changed, 443 insertions(+), 6 deletions(-)
create mode 100644 drivers/gpu/drm/virtio/virtgpu_userptr.c
--
2.34.1
Powered by blists - more mailing lists