On Mon, 7 Apr 2025 15:47:03 +0530 Himal Prasad Ghimiray <himal.prasad.ghimi...@intel.com> wrote:
> - DRM_GPUVM_SM_MAP_NOT_MADVISE: Default sm_map operations for the input > range. > > - DRM_GPUVM_SKIP_GEM_OBJ_VA_SPLIT_MADVISE: This flag is used by > drm_gpuvm_sm_map_ops_create to iterate over GPUVMA's in the > user-provided range and split the existing non-GEM object VMA if the > start or end of the input range lies within it. The operations can > create up to 2 REMAPS and 2 MAPs. The purpose of this operation is to be > used by the Xe driver to assign attributes to GPUVMA's within the > user-defined range. Unlike drm_gpuvm_sm_map_ops_flags in default mode, > the operation with this flag will never have UNMAPs and > merges, and can be without any final operations. > > v2 > - use drm_gpuvm_sm_map_ops_create with flags instead of defining new > ops_create (Danilo) > - Add doc (Danilo) > > Cc: Danilo Krummrich <d...@redhat.com> > Cc: Matthew Brost <matthew.br...@intel.com> > Cc: Boris Brezillon <bbrezil...@kernel.org> > Cc: <dri-devel@lists.freedesktop.org> > Signed-off-by: Himal Prasad Ghimiray<himal.prasad.ghimi...@intel.com> > > --- > RFC Link: > https://lore.kernel.org/intel-xe/20250314080226.2059819-1-himal.prasad.ghimi...@intel.com/T/#mb706bd1c55232110e42dc7d5c05de61946982472 > --- > drivers/gpu/drm/drm_gpuvm.c | 93 ++++++++++++++++++++------ > drivers/gpu/drm/nouveau/nouveau_uvmm.c | 1 + > drivers/gpu/drm/xe/xe_vm.c | 1 + > include/drm/drm_gpuvm.h | 25 ++++++- > 4 files changed, 98 insertions(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/drm_gpuvm.c b/drivers/gpu/drm/drm_gpuvm.c > index f9eb56f24bef..9d09d177b9fa 100644 > --- a/drivers/gpu/drm/drm_gpuvm.c > +++ b/drivers/gpu/drm/drm_gpuvm.c > @@ -2102,10 +2102,13 @@ static int > __drm_gpuvm_sm_map(struct drm_gpuvm *gpuvm, > const struct drm_gpuvm_ops *ops, void *priv, > u64 req_addr, u64 req_range, > + enum drm_gpuvm_sm_map_ops_flags flags, > struct drm_gem_object *req_obj, u64 req_offset) Not exactly related to this series, but I've been playing with Lina's series[1] which is hooking up flag propagation from _map() calls to drm_gpuva, and I think we should pass all map args through a struct so we don't have to change all call-sites anytime we add one a new optional argument. Here's a patch [2] doing that. [1]https://lore.kernel.org/lkml/4a431b98-cccc-495e-b72e-02362828c...@asahilina.net/T/ [2]https://gitlab.freedesktop.org/bbrezillon/linux/-/commit/0587c15b9b81ccae1e37ad0a5d524754d8455558