mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-17 00:46:26 -05:00
drm/xe: Simplify madvise_preferred_mem_loc()
Simplify madvise_preferred_mem_loc by removing repetitive patterns in favour of local variables. Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com> Reviewed-by: Matthew Brost <matthew.brost@intel.com> Link: https://patch.msgid.link/20251219113320.183860-15-thomas.hellstrom@linux.intel.com
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user