All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/19] MADVISE FOR XE
@ 2025-05-27 16:39 Himal Prasad Ghimiray
  2025-05-27 16:39 ` [PATCH v3 01/19] Introduce drm_gpuvm_sm_map_ops_flags enums for sm_map_ops Himal Prasad Ghimiray
                   ` (26 more replies)
  0 siblings, 27 replies; 74+ messages in thread
From: Himal Prasad Ghimiray @ 2025-05-27 16:39 UTC (permalink / raw)
  To: intel-xe; +Cc: Himal Prasad Ghimiray

Provides a user API to assign attributes like pat_index, atomic
operation type, and preferred location for SVM ranges.
The Kernel Mode Driver (KMD) may split existing VMAs to cover input
ranges, assign user-provided attributes, and invalidate existing PTEs so
that the next page fault/prefetch can use the new attributes.

Himal Prasad Ghimiray (19):
  Introduce drm_gpuvm_sm_map_ops_flags enums for sm_map_ops
  drm/xe/uapi: Add madvise interface
  drm/xe/vm: Add attributes struct as member of vma
  drm/xe/vma: Move pat_index to vma attributes
  drm/xe/vma: Modify new_vma to accept struct xe_vma_mem_attr as
    parameter
  drm/gpusvm: Make drm_gpusvm_for_each_* macros public
  drm/xe/vm: Add a helper xe_vm_range_tilemask_tlb_invalidation()
  drm/xe/svm: Add xe_svm_ranges_zap_ptes_in_range() for PTE zapping
  drm/xe/svm: Split system allocator vma incase of madvise call
  drm/xe: Implement madvise ioctl for xe
  drm/xe: Allow CPU address mirror VMA unbind with gpu bindings for
    madvise
  drm/xe/svm : Add svm ranges migration policy on atomic access
  drm/xe/madvise: Update migration policy based on preferred location
  drm/xe/svm: Support DRM_XE_SVM_ATTR_PAT memory attribute
  drm/xe/uapi: Add flag for consulting madvise hints on svm prefetch
  drm/xe/svm: Consult madvise preferred location in prefetch
  drm/xe/uapi: Add UAPI for querying VMA count and memory attributes
  drm/xe/bo: Add attributes field to xe_bo
  drm/xe/bo: Update atomic_access attribute on madvise

 drivers/gpu/drm/drm_gpusvm.c           | 122 ++------
 drivers/gpu/drm/drm_gpuvm.c            |  93 ++++--
 drivers/gpu/drm/nouveau/nouveau_uvmm.c |   1 +
 drivers/gpu/drm/xe/Makefile            |   1 +
 drivers/gpu/drm/xe/xe_bo.c             |  21 +-
 drivers/gpu/drm/xe/xe_bo_types.h       |   5 +
 drivers/gpu/drm/xe/xe_device.c         |   3 +
 drivers/gpu/drm/xe/xe_pt.c             |  11 +-
 drivers/gpu/drm/xe/xe_svm.c            | 165 +++++++---
 drivers/gpu/drm/xe/xe_svm.h            |  30 ++
 drivers/gpu/drm/xe/xe_vm.c             | 402 ++++++++++++++++++++++---
 drivers/gpu/drm/xe/xe_vm.h             |  12 +-
 drivers/gpu/drm/xe/xe_vm_madvise.c     | 330 ++++++++++++++++++++
 drivers/gpu/drm/xe/xe_vm_madvise.h     |  15 +
 drivers/gpu/drm/xe/xe_vm_types.h       |  28 +-
 include/drm/drm_gpusvm.h               |  70 +++++
 include/drm/drm_gpuvm.h                |  25 +-
 include/uapi/drm/xe_drm.h              | 183 +++++++++++
 18 files changed, 1293 insertions(+), 224 deletions(-)
 create mode 100644 drivers/gpu/drm/xe/xe_vm_madvise.c
 create mode 100644 drivers/gpu/drm/xe/xe_vm_madvise.h

-- 
2.34.1


^ permalink raw reply	[flat|nested] 74+ messages in thread
* Re: [PATCH v3 05/19] drm/xe/vma: Modify new_vma to accept struct xe_vma_mem_attr as parameter
  2025-05-27 16:39 ` [PATCH v3 05/19] drm/xe/vma: Modify new_vma to accept struct xe_vma_mem_attr as parameter Himal Prasad Ghimiray
@ 2025-06-02  6:19 ` Dan Carpenter
  0 siblings, 0 replies; 74+ messages in thread
From: kernel test robot @ 2025-05-29 18:52 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250527164003.1068118-6-himal.prasad.ghimiray@intel.com>
References: <20250527164003.1068118-6-himal.prasad.ghimiray@intel.com>
TO: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
TO: intel-xe@lists.freedesktop.org
CC: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>

Hi Himal,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-xe/drm-xe-next]
[also build test WARNING on linus/master v6.15 next-20250529]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Himal-Prasad-Ghimiray/Introduce-drm_gpuvm_sm_map_ops_flags-enums-for-sm_map_ops/20250528-041919
base:   https://gitlab.freedesktop.org/drm/xe/kernel.git drm-xe-next
patch link:    https://lore.kernel.org/r/20250527164003.1068118-6-himal.prasad.ghimiray%40intel.com
patch subject: [PATCH v3 05/19] drm/xe/vma: Modify new_vma to accept struct xe_vma_mem_attr as parameter
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: loongarch-randconfig-r073-20250529 (https://download.01.org/0day-ci/archive/20250530/202505300251.vkfxetWu-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 15.1.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202505300251.vkfxetWu-lkp@intel.com/

New smatch warnings:
drivers/gpu/drm/xe/xe_vm.c:2492 new_vma() error: 'vma' dereferencing possible ERR_PTR()

Old smatch warnings:
drivers/gpu/drm/xe/xe_vm.c:2480 new_vma() error: we previously assumed 'bo' could be null (see line 2454)
drivers/gpu/drm/xe/xe_vm.c:2919 prefetch_ranges() warn: iterator 'i' not incremented
arch/loongarch/include/asm/atomic.h:135 arch_atomic_fetch_add_unless() warn: inconsistent indenting
drivers/gpu/drm/xe/xe_vm.c:4082 xe_vm_snapshot_print() warn: passing zero to 'PTR_ERR'

vim +/vma +2492 drivers/gpu/drm/xe/xe_vm.c

341ac2942dd2087 Himal Prasad Ghimiray 2025-05-27  2443  
b06d47be7c83165 Matthew Brost         2023-07-07  2444  static struct xe_vma *new_vma(struct xe_vm *vm, struct drm_gpuva_op_map *op,
341ac2942dd2087 Himal Prasad Ghimiray 2025-05-27  2445  			      struct xe_vma_mem_attr attr, unsigned int flags)
b06d47be7c83165 Matthew Brost         2023-07-07  2446  {
b06d47be7c83165 Matthew Brost         2023-07-07  2447  	struct xe_bo *bo = op->gem.obj ? gem_to_xe_bo(op->gem.obj) : NULL;
24f947d58fe554c Thomas Hellström      2023-12-12  2448  	struct drm_exec exec;
b06d47be7c83165 Matthew Brost         2023-07-07  2449  	struct xe_vma *vma;
33991ae8f40a824 Matthew Brost         2024-06-17  2450  	int err = 0;
b06d47be7c83165 Matthew Brost         2023-07-07  2451  
b06d47be7c83165 Matthew Brost         2023-07-07  2452  	lockdep_assert_held_write(&vm->lock);
b06d47be7c83165 Matthew Brost         2023-07-07  2453  
b06d47be7c83165 Matthew Brost         2023-07-07  2454  	if (bo) {
d2197029026021e Dave Airlie           2023-12-22  2455  		drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT, 0);
24f947d58fe554c Thomas Hellström      2023-12-12  2456  		drm_exec_until_all_locked(&exec) {
24f947d58fe554c Thomas Hellström      2023-12-12  2457  			err = 0;
24f947d58fe554c Thomas Hellström      2023-12-12  2458  			if (!bo->vm) {
24f947d58fe554c Thomas Hellström      2023-12-12  2459  				err = drm_exec_lock_obj(&exec, xe_vm_obj(vm));
24f947d58fe554c Thomas Hellström      2023-12-12  2460  				drm_exec_retry_on_contention(&exec);
24f947d58fe554c Thomas Hellström      2023-12-12  2461  			}
24f947d58fe554c Thomas Hellström      2023-12-12  2462  			if (!err) {
24f947d58fe554c Thomas Hellström      2023-12-12  2463  				err = drm_exec_lock_obj(&exec, &bo->ttm.base);
24f947d58fe554c Thomas Hellström      2023-12-12  2464  				drm_exec_retry_on_contention(&exec);
24f947d58fe554c Thomas Hellström      2023-12-12  2465  			}
24f947d58fe554c Thomas Hellström      2023-12-12  2466  			if (err) {
24f947d58fe554c Thomas Hellström      2023-12-12  2467  				drm_exec_fini(&exec);
b06d47be7c83165 Matthew Brost         2023-07-07  2468  				return ERR_PTR(err);
dd08ebf6c3525a7 Matthew Brost         2023-03-30  2469  			}
24f947d58fe554c Thomas Hellström      2023-12-12  2470  		}
24f947d58fe554c Thomas Hellström      2023-12-12  2471  	}
b06d47be7c83165 Matthew Brost         2023-07-07  2472  	vma = xe_vma_create(vm, bo, op->gem.offset,
b06d47be7c83165 Matthew Brost         2023-07-07  2473  			    op->va.addr, op->va.addr +
341ac2942dd2087 Himal Prasad Ghimiray 2025-05-27  2474  			    op->va.range - 1, attr.pat_index, flags);
33991ae8f40a824 Matthew Brost         2024-06-17  2475  	if (IS_ERR(vma))
33991ae8f40a824 Matthew Brost         2024-06-17  2476  		goto err_unlock;
dd08ebf6c3525a7 Matthew Brost         2023-03-30  2477  
33991ae8f40a824 Matthew Brost         2024-06-17  2478  	if (xe_vma_is_userptr(vma))
5bd24e78829ad56 Thomas Hellström      2024-01-31  2479  		err = xe_vma_userptr_pin_pages(to_userptr_vma(vma));
33991ae8f40a824 Matthew Brost         2024-06-17  2480  	else if (!xe_vma_has_no_bo(vma) && !bo->vm)
b06d47be7c83165 Matthew Brost         2023-07-07  2481  		err = add_preempt_fences(vm, bo);
33991ae8f40a824 Matthew Brost         2024-06-17  2482  
33991ae8f40a824 Matthew Brost         2024-06-17  2483  err_unlock:
33991ae8f40a824 Matthew Brost         2024-06-17  2484  	if (bo)
33991ae8f40a824 Matthew Brost         2024-06-17  2485  		drm_exec_fini(&exec);
33991ae8f40a824 Matthew Brost         2024-06-17  2486  
b06d47be7c83165 Matthew Brost         2023-07-07  2487  	if (err) {
b06d47be7c83165 Matthew Brost         2023-07-07  2488  		prep_vma_destroy(vm, vma, false);
b06d47be7c83165 Matthew Brost         2023-07-07  2489  		xe_vma_destroy_unlocked(vma);
33991ae8f40a824 Matthew Brost         2024-06-17  2490  		vma = ERR_PTR(err);
341ac2942dd2087 Himal Prasad Ghimiray 2025-05-27  2491  	} else {
341ac2942dd2087 Himal Prasad Ghimiray 2025-05-27 @2492  		cp_vma_mem_attr(&vma->attr, &attr);
dd08ebf6c3525a7 Matthew Brost         2023-03-30  2493  	}
dd08ebf6c3525a7 Matthew Brost         2023-03-30  2494  
b06d47be7c83165 Matthew Brost         2023-07-07  2495  	return vma;
b06d47be7c83165 Matthew Brost         2023-07-07  2496  }
b06d47be7c83165 Matthew Brost         2023-07-07  2497  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 74+ messages in thread
* Re: [PATCH v3 09/19] drm/xe/svm: Split system allocator vma incase of madvise call
  2025-05-27 16:39 ` [PATCH v3 09/19] drm/xe/svm: Split system allocator vma incase of madvise call Himal Prasad Ghimiray
@ 2025-06-02  6:31 ` Dan Carpenter
  0 siblings, 0 replies; 74+ messages in thread
From: kernel test robot @ 2025-05-29 23:18 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250527164003.1068118-10-himal.prasad.ghimiray@intel.com>
References: <20250527164003.1068118-10-himal.prasad.ghimiray@intel.com>
TO: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
TO: intel-xe@lists.freedesktop.org
CC: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>

Hi Himal,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-xe/drm-xe-next]
[also build test WARNING on next-20250529]
[cannot apply to linus/master v6.15]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Himal-Prasad-Ghimiray/Introduce-drm_gpuvm_sm_map_ops_flags-enums-for-sm_map_ops/20250528-041919
base:   https://gitlab.freedesktop.org/drm/xe/kernel.git drm-xe-next
patch link:    https://lore.kernel.org/r/20250527164003.1068118-10-himal.prasad.ghimiray%40intel.com
patch subject: [PATCH v3 09/19] drm/xe/svm: Split system allocator vma incase of madvise call
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: loongarch-randconfig-r073-20250529 (https://download.01.org/0day-ci/archive/20250530/202505300720.uhAJlLnM-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 15.1.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202505300720.uhAJlLnM-lkp@intel.com/

New smatch warnings:
drivers/gpu/drm/xe/xe_vm.c:4255 xe_vm_alloc_madvise_vma() warn: variable dereferenced before check 'ops' (see line 4194)

Old smatch warnings:
drivers/gpu/drm/xe/xe_vm.c:2480 new_vma() error: we previously assumed 'bo' could be null (see line 2454)
drivers/gpu/drm/xe/xe_vm.c:2492 new_vma() error: 'vma' dereferencing possible ERR_PTR()
drivers/gpu/drm/xe/xe_vm.c:2919 prefetch_ranges() warn: iterator 'i' not incremented
drivers/gpu/drm/xe/xe_vm.c:3913 xe_vm_range_tilemask_tlb_invalidation() error: uninitialized symbol 'err'.
arch/loongarch/include/asm/atomic.h:135 arch_atomic_fetch_add_unless() warn: inconsistent indenting
drivers/gpu/drm/xe/xe_vm.c:4119 xe_vm_snapshot_print() warn: passing zero to 'PTR_ERR'

vim +/ops +4255 drivers/gpu/drm/xe/xe_vm.c

524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4164  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4165  /**
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4166   * xe_vm_alloc_madvise_vma - Allocate VMA's with madvise ops
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4167   * @vm: Pointer to the xe_vm structure
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4168   * @start: Starting input address
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4169   * @range: Size of the input range
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4170   *
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4171   * This function splits existing vma to create new vma for user provided input range
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4172   *
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4173   *  Return: 0 if success
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4174   */
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4175  int xe_vm_alloc_madvise_vma(struct xe_vm *vm, uint64_t start, uint64_t range)
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4176  {
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4177  	struct xe_vma_ops vops;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4178  	struct drm_gpuva_ops *ops = NULL;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4179  	struct drm_gpuva_op *__op;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4180  	bool is_cpu_addr_mirror = false;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4181  	int err;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4182  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4183  	vm_dbg(&vm->xe->drm, "MADVISE IN: addr=0x%016llx, size=0x%016llx", start, range);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4184  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4185  	lockdep_assert_held_write(&vm->lock);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4186  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4187  	vm_dbg(&vm->xe->drm, "MADVISE_OPS_CREATE: addr=0x%016llx, size=0x%016llx", start, range);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4188  	ops = drm_gpuvm_sm_map_ops_create(&vm->gpuvm, start, range,
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4189  					  DRM_GPUVM_SKIP_GEM_OBJ_VA_SPLIT_MADVISE,
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4190  					  NULL, start);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4191  	if (IS_ERR(ops))
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4192  		return PTR_ERR(ops);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4193  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27 @4194  	if (list_empty(&ops->list)) {
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4195  		err = 0;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4196  		goto free_ops;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4197  	}
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4198  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4199  	drm_gpuva_for_each_op(__op, ops) {
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4200  		struct xe_vma_op *op = gpuva_op_to_vma_op(__op);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4201  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4202  		if (__op->op == DRM_GPUVA_OP_REMAP) {
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4203  			if (xe_vma_is_cpu_addr_mirror(gpuva_to_vma(op->base.remap.unmap->va)))
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4204  				is_cpu_addr_mirror = true;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4205  			else
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4206  				is_cpu_addr_mirror = false;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4207  		}
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4208  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4209  		if (__op->op == DRM_GPUVA_OP_MAP)
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4210  			/* In case of madvise ops DRM_GPUVA_OP_REMAP is always by
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4211  			 * DRM_GPUVA_OP_REMAP, so ensure we assign op->map.is_cpu_addr_mirror true
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4212  			 * if REMAP is for xe_vma_is_cpu_addr_mirror vma
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4213  			 */
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4214  			op->map.is_cpu_addr_mirror = is_cpu_addr_mirror;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4215  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4216  		print_op(vm->xe, __op);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4217  	}
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4218  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4219  	xe_vma_ops_init(&vops, vm, NULL, NULL, 0);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4220  	err = vm_bind_ioctl_ops_parse(vm, ops, &vops);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4221  	if (err)
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4222  		goto unwind_ops;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4223  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4224  	xe_vm_lock(vm, false);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4225  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4226  	drm_gpuva_for_each_op(__op, ops) {
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4227  		struct xe_vma_op *op = gpuva_op_to_vma_op(__op);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4228  		struct xe_vma *vma;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4229  		struct xe_vma_mem_attr temp_attr;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4230  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4231  		if (__op->op == DRM_GPUVA_OP_UNMAP) {
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4232  			/* There should be no unmap */
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4233  			XE_WARN_ON("UNEXPECTED UNMAP");
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4234  			xe_vma_destroy(gpuva_to_vma(op->base.unmap.va), NULL);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4235  		} else if (__op->op == DRM_GPUVA_OP_REMAP) {
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4236  			vma = gpuva_to_vma(op->base.remap.unmap->va);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4237  			/* Store attributes for REMAP UNMAPPED VMA, so they can be assigned
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4238  			 * to newly MAPPED vma.
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4239  			 */
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4240  			cp_vma_mem_attr(&temp_attr, &vma->attr);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4241  			xe_vma_destroy(gpuva_to_vma(op->base.remap.unmap->va), NULL);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4242  		} else if (__op->op == DRM_GPUVA_OP_MAP) {
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4243  			vma = op->map.vma;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4244  			cp_vma_mem_attr(&vma->attr, &temp_attr);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4245  		}
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4246  	}
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4247  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4248  	xe_vm_unlock(vm);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4249  	drm_gpuva_ops_free(&vm->gpuvm, ops);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4250  	return 0;
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4251  
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4252  unwind_ops:
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4253  	vm_bind_ioctl_ops_unwind(vm, &ops, 1);
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27  4254  free_ops:
524911c937a5a5 Himal Prasad Ghimiray 2025-05-27 @4255  	if (ops)

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 74+ messages in thread

end of thread, other threads:[~2025-06-24 18:55 UTC | newest]

Thread overview: 74+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-27 16:39 [PATCH v3 00/19] MADVISE FOR XE Himal Prasad Ghimiray
2025-05-27 16:39 ` [PATCH v3 01/19] Introduce drm_gpuvm_sm_map_ops_flags enums for sm_map_ops Himal Prasad Ghimiray
2025-05-27 16:39 ` [PATCH v3 02/19] drm/xe/uapi: Add madvise interface Himal Prasad Ghimiray
2025-05-28 16:27   ` Matthew Brost
2025-05-28 17:03   ` Souza, Jose
2025-05-29 18:03     ` Matthew Brost
2025-05-29 18:00   ` Matthew Brost
2025-06-10  4:32     ` Ghimiray, Himal Prasad
2025-05-27 16:39 ` [PATCH v3 03/19] drm/xe/vm: Add attributes struct as member of vma Himal Prasad Ghimiray
2025-05-28 16:46   ` Matthew Brost
2025-05-27 16:39 ` [PATCH v3 04/19] drm/xe/vma: Move pat_index to vma attributes Himal Prasad Ghimiray
2025-05-28 22:51   ` Matthew Brost
2025-05-27 16:39 ` [PATCH v3 05/19] drm/xe/vma: Modify new_vma to accept struct xe_vma_mem_attr as parameter Himal Prasad Ghimiray
2025-05-28 22:58   ` Matthew Brost
2025-05-27 16:39 ` [PATCH v3 06/19] drm/gpusvm: Make drm_gpusvm_for_each_* macros public Himal Prasad Ghimiray
2025-05-28 23:01   ` Matthew Brost
2025-05-27 16:39 ` [PATCH v3 07/19] drm/xe/vm: Add a helper xe_vm_range_tilemask_tlb_invalidation() Himal Prasad Ghimiray
2025-05-28 23:12   ` Matthew Brost
2025-05-29  3:21     ` Ghimiray, Himal Prasad
2025-05-27 16:39 ` [PATCH v3 08/19] drm/xe/svm: Add xe_svm_ranges_zap_ptes_in_range() for PTE zapping Himal Prasad Ghimiray
2025-05-28 23:15   ` Matthew Brost
2025-05-29  3:06     ` Ghimiray, Himal Prasad
2025-05-29  4:00       ` Matthew Brost
2025-05-30  6:29         ` Matthew Brost
2025-06-10  4:31           ` Ghimiray, Himal Prasad
2025-05-27 16:39 ` [PATCH v3 09/19] drm/xe/svm: Split system allocator vma incase of madvise call Himal Prasad Ghimiray
2025-05-29  2:49   ` Matthew Brost
2025-05-29  3:14     ` Ghimiray, Himal Prasad
2025-05-27 16:39 ` [PATCH v3 10/19] drm/xe: Implement madvise ioctl for xe Himal Prasad Ghimiray
2025-05-29 22:43   ` Matthew Brost
2025-05-30  6:36     ` Matthew Brost
2025-05-30 21:34   ` Matthew Brost
2025-06-10  4:52     ` Ghimiray, Himal Prasad
2025-06-10  5:13       ` Matthew Brost
2025-05-27 16:39 ` [PATCH v3 11/19] drm/xe: Allow CPU address mirror VMA unbind with gpu bindings for madvise Himal Prasad Ghimiray
2025-05-29 22:54   ` Matthew Brost
2025-06-12  9:02     ` Ghimiray, Himal Prasad
2025-05-27 16:39 ` [PATCH v3 12/19] drm/xe/svm : Add svm ranges migration policy on atomic access Himal Prasad Ghimiray
2025-05-29 23:27   ` Matthew Brost
2025-05-29 23:38     ` Matthew Brost
2025-05-30  4:40     ` Matthew Brost
2025-05-27 16:39 ` [PATCH v3 13/19] drm/xe/madvise: Update migration policy based on preferred location Himal Prasad Ghimiray
2025-05-29 23:42   ` Matthew Brost
2025-05-27 16:39 ` [PATCH v3 14/19] drm/xe/svm: Support DRM_XE_SVM_ATTR_PAT memory attribute Himal Prasad Ghimiray
2025-05-30  0:24   ` Matthew Brost
2025-05-27 16:39 ` [PATCH v3 15/19] drm/xe/uapi: Add flag for consulting madvise hints on svm prefetch Himal Prasad Ghimiray
2025-05-28 16:29   ` Matthew Brost
2025-05-27 16:40 ` [PATCH v3 16/19] drm/xe/svm: Consult madvise preferred location in prefetch Himal Prasad Ghimiray
2025-05-30  4:24   ` Matthew Brost
2025-06-24 18:56   ` Matthew Brost
2025-05-27 16:40 ` [PATCH v3 17/19] drm/xe/uapi: Add UAPI for querying VMA count and memory attributes Himal Prasad Ghimiray
2025-05-28 17:02   ` Souza, Jose
2025-05-30  1:11   ` kernel test robot
2025-05-30  4:29   ` Matthew Brost
2025-05-27 16:40 ` [PATCH v3 18/19] drm/xe/bo: Add attributes field to xe_bo Himal Prasad Ghimiray
2025-05-28 23:47   ` Matthew Brost
2025-05-29  2:29     ` Ghimiray, Himal Prasad
2025-05-27 16:40 ` [PATCH v3 19/19] drm/xe/bo: Update atomic_access attribute on madvise Himal Prasad Ghimiray
2025-05-28 23:46   ` Matthew Brost
2025-05-29  3:03     ` Ghimiray, Himal Prasad
2025-05-29 18:24       ` Matthew Brost
2025-05-29 18:30         ` Matthew Brost
2025-05-27 21:35 ` ✓ CI.Patch_applied: success for MADVISE FOR XE Patchwork
2025-05-27 21:35 ` ✗ CI.checkpatch: warning " Patchwork
2025-05-27 21:37 ` ✓ CI.KUnit: success " Patchwork
2025-05-27 21:40 ` ✗ CI.Build: failure " Patchwork
2025-05-28  7:45 ` ✓ CI.Patch_applied: success " Patchwork
2025-05-28  7:45 ` ✗ CI.checkpatch: warning " Patchwork
2025-05-28  7:46 ` ✓ CI.KUnit: success " Patchwork
2025-05-28  7:50 ` ✗ CI.Build: failure " Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2025-05-29 18:52 [PATCH v3 05/19] drm/xe/vma: Modify new_vma to accept struct xe_vma_mem_attr as parameter kernel test robot
2025-06-02  6:19 ` Dan Carpenter
2025-05-29 23:18 [PATCH v3 09/19] drm/xe/svm: Split system allocator vma incase of madvise call kernel test robot
2025-06-02  6:31 ` Dan Carpenter

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.