Displaying 4 results from an estimated 4 matches for "svmm_interval".
2020 Jan 13
0
[PATCH v6 5/6] nouveau: use new mmu interval notifiers
...svm.c
@@ -88,7 +88,7 @@ nouveau_ivmm_find(struct nouveau_svm *svm, u64 inst)
}
struct nouveau_svmm {
- struct mmu_notifier notifier;
+ struct mm_struct *mm;
struct nouveau_vmm *vmm;
struct {
unsigned long start;
@@ -98,6 +98,13 @@ struct nouveau_svmm {
struct mutex mutex;
};
+struct svmm_interval {
+ struct mmu_interval_notifier notifier;
+ struct nouveau_svmm *svmm;
+};
+
+static const struct mmu_interval_notifier_ops nouveau_svm_mni_ops;
+
#define SVMM_DBG(s,f,a...) \
NV_DEBUG((s)->vmm->cli->drm, "svm-%p: "f"\n...
2020 Jan 14
2
[PATCH v6 5/6] nouveau: use new mmu interval notifiers
...m->vmm = NULL;
> mutex_unlock(&svmm->mutex);
> - mmu_notifier_put(&svmm->notifier);
While here it was actually a refcount.
> +static void nouveau_svmm_do_unmap(struct mmu_interval_notifier *mni,
> + const struct mmu_notifier_range *range)
> +{
> + struct svmm_interval *smi =
> + container_of(mni, struct svmm_interval, notifier);
> + struct nouveau_svmm *svmm = smi->svmm;
> + unsigned long start = mmu_interval_notifier_start(mni);
> + unsigned long last = mmu_interval_notifier_last(mni);
This whole algorithm only works if it is protected by the r...
2020 Jan 15
0
[PATCH v6 5/6] nouveau: use new mmu interval notifiers
...ock(&svmm->mutex);
>> - mmu_notifier_put(&svmm->notifier);
>
> While here it was actually a refcount.
>
>> +static void nouveau_svmm_do_unmap(struct mmu_interval_notifier *mni,
>> + const struct mmu_notifier_range *range)
>> +{
>> + struct svmm_interval *smi =
>> + container_of(mni, struct svmm_interval, notifier);
>> + struct nouveau_svmm *svmm = smi->svmm;
>> + unsigned long start = mmu_interval_notifier_start(mni);
>> + unsigned long last = mmu_interval_notifier_last(mni);
>
> This whole algorithm only works i...
2020 Jan 13
9
[PATCH v6 0/6] mm/hmm/test: add self tests for HMM
This series adds new functions to the mmu interval notifier API to
allow device drivers with MMUs to dynamically mirror a process' page
tables based on device faults and invalidation callbacks. The Nouveau
driver is updated to use the extended API and a set of stand alone self
tests is added to help validate and maintain correctness.
The patches are based on linux-5.5.0-rc6 and are for