All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
To: intel-xe@lists.freedesktop.org
Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
	"Matthew Brost" <matthew.brost@intel.com>,
	dri-devel@lists.freedesktop.org, himal.prasad.ghimiray@intel.com,
	apopple@nvidia.com, airlied@gmail.com,
	"Simona Vetter" <simona.vetter@ffwll.ch>,
	felix.kuehling@amd.com,
	"Christian König" <christian.koenig@amd.com>,
	dakr@kernel.org, "Mrozek, Michal" <michal.mrozek@intel.com>,
	"Joonas Lahtinen" <joonas.lahtinen@linux.intel.com>
Subject: [PATCH v6 14/24] drm/xe: Simplify madvise_preferred_mem_loc()
Date: Fri, 19 Dec 2025 12:33:10 +0100	[thread overview]
Message-ID: <20251219113320.183860-15-thomas.hellstrom@linux.intel.com> (raw)
In-Reply-To: <20251219113320.183860-1-thomas.hellstrom@linux.intel.com>

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>
---
 drivers/gpu/drm/xe/xe_vm_madvise.c | 21 +++++++++++----------
 drivers/gpu/drm/xe/xe_vm_types.h   |  2 +-
 2 files changed, 12 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_vm_madvise.c b/drivers/gpu/drm/xe/xe_vm_madvise.c
index 9553008409d1..d6f47c8e146d 100644
--- a/drivers/gpu/drm/xe/xe_vm_madvise.c
+++ b/drivers/gpu/drm/xe/xe_vm_madvise.c
@@ -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;
 		}
 	}
 }
diff --git a/drivers/gpu/drm/xe/xe_vm_types.h b/drivers/gpu/drm/xe/xe_vm_types.h
index 594555f1669a..437f64202f3b 100644
--- a/drivers/gpu/drm/xe/xe_vm_types.h
+++ b/drivers/gpu/drm/xe/xe_vm_types.h
@@ -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;
 
-- 
2.51.1


  parent reply	other threads:[~2025-12-19 11:34 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-19 11:32 [PATCH v6 00/24] Dynamic drm_pagemaps and Initial multi-device SVM Thomas Hellström
2025-12-19 11:32 ` [PATCH v6 01/24] drm/xe/svm: Fix a debug printout Thomas Hellström
2025-12-19 11:32 ` [PATCH v6 02/24] drm/pagemap: Remove some dead code Thomas Hellström
2025-12-19 11:32 ` [PATCH v6 03/24] drm/pagemap, drm/xe: Ensure that the devmem allocation is idle before use Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 04/24] drm/pagemap, drm/xe: Add refcounting to struct drm_pagemap Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 05/24] drm/pagemap: Add a refcounted drm_pagemap backpointer to struct drm_pagemap_zdd Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 06/24] drm/pagemap, drm/xe: Manage drm_pagemap provider lifetimes Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 07/24] drm/pagemap: Add a drm_pagemap cache and shrinker Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 08/24] drm/xe: Use the " Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 09/24] drm/pagemap: Remove the drm_pagemap_create() interface Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 10/24] drm/pagemap_util: Add a utility to assign an owner to a set of interconnected gpus Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 11/24] drm/xe: Use the drm_pagemap_util helper to get a svm pagemap owner Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 12/24] drm/xe: Pass a drm_pagemap pointer around with the memory advise attributes Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 13/24] drm/xe: Use the vma attibute drm_pagemap to select where to migrate Thomas Hellström
2025-12-19 11:33 ` Thomas Hellström [this message]
2025-12-19 11:33 ` [PATCH v6 15/24] drm/xe/uapi: Extend the madvise functionality to support foreign pagemap placement for svm Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 16/24] drm/xe: Support pcie p2p dma as a fast interconnect Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 17/24] drm/xe/vm: Add a couple of VM debug printouts Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 18/24] drm/xe/svm: Document how xe keeps drm_pagemap references Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 19/24] drm/pagemap, drm/xe: Clean up the use of the device-private page owner Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 20/24] drm/gpusvm: Introduce a function to scan the current migration state Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 21/24] drm/xe: Use drm_gpusvm_scan_mm() Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 22/24] drm/pagemap, drm/xe: Support destination migration over interconnect Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 23/24] drm/pagemap: Support source " Thomas Hellström
2025-12-19 11:33 ` [PATCH v6 24/24] drm/xe/svm: Serialize migration to device if racing Thomas Hellström
2025-12-19 13:31 ` [PATCH v6 00/24] Dynamic drm_pagemaps and Initial multi-device SVM Maarten Lankhorst
2025-12-22 18:44 ` ✗ CI.checkpatch: warning for Dynamic drm_pagemaps and Initial multi-device SVM (rev7) Patchwork
2025-12-22 18:45 ` ✓ CI.KUnit: success " Patchwork
2025-12-22 19:21 ` ✓ Xe.CI.BAT: " Patchwork
2025-12-22 20:14 ` ✗ CI.checkpatch: warning for Dynamic drm_pagemaps and Initial multi-device SVM (rev8) Patchwork
2025-12-22 20:16 ` ✓ CI.KUnit: success " Patchwork
2025-12-22 21:15 ` ✓ Xe.CI.BAT: " Patchwork
2025-12-23  2:31 ` ✓ Xe.CI.Full: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251219113320.183860-15-thomas.hellstrom@linux.intel.com \
    --to=thomas.hellstrom@linux.intel.com \
    --cc=airlied@gmail.com \
    --cc=apopple@nvidia.com \
    --cc=christian.koenig@amd.com \
    --cc=dakr@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=felix.kuehling@amd.com \
    --cc=himal.prasad.ghimiray@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=matthew.brost@intel.com \
    --cc=michal.mrozek@intel.com \
    --cc=simona.vetter@ffwll.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.