Am 09.02.2018 um 15:02 schrieb Tom St Denis:
On 09/02/18 08:56 AM, Christian König wrote:
Am 09.02.2018 um 14:32 schrieb Tom St Denis:
On 02/02/18 02:09 PM, Christian König wrote:
+        if (p->mapping != adev->mman.bdev.dev_mapping)
+            return -EPERM;

This comparison fails for both IOMMU and non-IOMMU devices in my carrizo+polaris10 box.

The address being read from is what the VM decodes to (checked with strace).

Have you applied the whole series? That patches before this one are necessary to initialize p->mapping when there isn't any userspace mapping for the page.

Yes, I have the entire 5 pages applied to a temp branch based on the tip of drm-next

$ git log --oneline HEAD~10..
405bc1dc85db (HEAD -> iomem) wip
a06d7a6f29e4 drm/amdgpu: replace iova debugfs file with iomem
d324c21f2c5e drm/ttm: set page mapping during allocation
9f440ee91c58 drm/radeon: remove extra TT unpopulated check
f55d505b0387 drm/amdgpu: remove extra TT unpopulated check
37d705119ea8 drm/ttm: add ttm_tt_populate wrapper
53af6035d04b (origin/amd-staging-drm-next, amd-staging-drm-next) drm/radeon: only enable swiotlb path when need v2

(the wip is me adding printks to see which error path is taken).

I don't see an init call for adev->[TTM_PL_SYSTEM] anywhere.  Maybe that's related?

No, there is simply no need to initialize the system domain. What are the values of p->mapping and adev->mman.bdev.dev_mapping when they don't match? Maybe we are allocating memory before initializing adev->mman.bdev.dev_mapping.

Or do you have more than one GPU in the system? E.g. APU+dGPU? Could it be that you read through the wrong device?



dri-devel mailing list

Reply via email to