Commit 4be5f2bc authored by Thomas Hellström's avatar Thomas Hellström
Browse files

drm/xe: Simplify madvise_preferred_mem_loc()



Simplify madvise_preferred_mem_loc by removing repetitive patterns
in favour of local variables.

Signed-off-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
Link: https://patch.msgid.link/20251219113320.183860-15-thomas.hellstrom@linux.intel.com
parent 238dbc9d
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -81,21 +81,22 @@ static void madvise_preferred_mem_loc(struct xe_device *xe, struct xe_vm *vm,
	xe_assert(vm->xe, op->type == DRM_XE_MEM_RANGE_ATTR_PREFERRED_LOC);

	for (i = 0; i < num_vmas; i++) {
		struct xe_vma *vma = vmas[i];
		struct xe_vma_preferred_loc *loc = &vma->attr.preferred_loc;

		/*TODO: Extend attributes to bo based vmas */
		if ((vmas[i]->attr.preferred_loc.devmem_fd == op->preferred_mem_loc.devmem_fd &&
		     vmas[i]->attr.preferred_loc.migration_policy ==
		     op->preferred_mem_loc.migration_policy) ||
		    !xe_vma_is_cpu_addr_mirror(vmas[i])) {
			vmas[i]->skip_invalidation = true;
		if ((loc->devmem_fd == op->preferred_mem_loc.devmem_fd &&
		     loc->migration_policy == op->preferred_mem_loc.migration_policy) ||
		    !xe_vma_is_cpu_addr_mirror(vma)) {
			vma->skip_invalidation = true;
		} else {
			vmas[i]->skip_invalidation = false;
			vmas[i]->attr.preferred_loc.devmem_fd = op->preferred_mem_loc.devmem_fd;
			vma->skip_invalidation = false;
			loc->devmem_fd = op->preferred_mem_loc.devmem_fd;
			/* Till multi-device support is not added migration_policy
			 * is of no use and can be ignored.
			 */
			vmas[i]->attr.preferred_loc.migration_policy =
						op->preferred_mem_loc.migration_policy;
			vmas[i]->attr.preferred_loc.dpagemap = NULL;
			loc->migration_policy = op->preferred_mem_loc.migration_policy;
			loc->dpagemap = NULL;
		}
	}
}
+1 −1
Original line number Diff line number Diff line
@@ -56,7 +56,7 @@ struct xe_vm_pgtable_update_op;
 */
struct xe_vma_mem_attr {
	/** @preferred_loc: preferred memory_location */
	struct {
	struct xe_vma_preferred_loc {
		/** @preferred_loc.migration_policy: Pages migration policy */
		u32 migration_policy;