[RFC 06/13] drm/i915/svm: Page table mirroring support

Niranjan Vishwanathapura niranjana.vishwanathapura at intel.com
Fri Nov 22 20:01:17 UTC 2019


On Fri, Nov 22, 2019 at 11:54:45AM -0800, Niranjana Vishwanathapura wrote:
>Use HMM page table mirroring support to build device page table.
>Implement the bind ioctl and bind the process address range in the
>specified context's ppgtt.
>Handle invalidation notifications by unbinding the address range.
>
>Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
>Cc: Jon Bloomfield <jon.bloomfield at intel.com>
>Cc: Daniel Vetter <daniel.vetter at intel.com>
>Cc: Sudeep Dutt <sudeep.dutt at intel.com>
>Signed-off-by: Niranjana Vishwanathapura <niranjana.vishwanathapura at intel.com>
>---
>+int i915_svm_bind_mm(struct i915_address_space *vm)
>+{
>+	struct i915_svm *svm;
>+	struct mm_struct *mm;
>+	int ret = 0;
>+
>+	mm = get_task_mm(current);
>+	down_write(&mm->mmap_sem);
>+	mutex_lock(&vm->svm_mutex);
>+	if (vm->svm)
>+		goto bind_out;
>+
>+	svm = kzalloc(sizeof(*svm), GFP_KERNEL);
>+	if (!svm) {
>+		ret = -ENOMEM;
>+		goto bind_out;
>+	}
>+	svm->mirror.ops = &i915_mirror_ops;
>+	mutex_init(&svm->mutex);
>+	kref_init(&svm->ref);
>+	svm->mm = mm;
>+	svm->vm = vm;
>+
>+	ret = hmm_mirror_register(&svm->mirror, mm);

I saw that these APIs have been removed.
I will update once it gets included in kernel release.

Niranjana 

>+	if (ret)
>+		goto bind_out;


More information about the dri-devel mailing list