Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1499977
| From | Shuah Khan <shuahkh@osg.samsung.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] exynos-drm: Fix display manager failing to start without IOMMU problem |
| Date | 2016-10-13 01:30 +0200 |
| Message-ID | <srAYx-2VU-3@gated-at.bofh.it> (permalink) |
| References | (2 earlier) <s4KNj-3c9-1@gated-at.bofh.it> <s4KNj-3c9-17@gated-at.bofh.it> <s5orn-4ES-9@gated-at.bofh.it> <s5oUq-4QH-21@gated-at.bofh.it> <s6Eu6-6Tr-11@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi Inki, On 08/15/2016 10:40 PM, Inki Dae wrote: >> >> okay the very first commit that added IOMMU support >> introduced the code that rejects non-contig gem memory >> type without IOMMU. >> >> commit 0519f9a12d0113caab78980c48a7902d2bd40c2c >> Author: Inki Dae <inki.dae@samsung.com> >> Date: Sat Oct 20 07:53:42 2012 -0700 >> >> drm/exynos: add iommu support for exynos drm framework >> I haven't given up on this yet. I am still seeing the following failure: Additional debug messages I added: [ 15.287403] exynos_drm_gem_create_ioctl() 1 [ 15.287419] exynos_drm_gem_create() flags 1 [ 15.311511] [drm:exynos_drm_framebuffer_init] *ERROR* Non-contiguous GEM memory is not supported. Additional debug message I added: [ 15.318981] [drm:exynos_user_fb_create] *ERROR* failed to initialize framebuffer This is what happens: 1. exynos_drm_gem_create_ioctl() gets called with EXYNOS_BO_NONCONTIG request 2. exynos_drm_gem_create(0 goes ahead and creates the GEM buffers 3. exynos_user_fb_create() tries to associate GEM to fb and fails during check_fb_gem_memory_type() At this point, there is no recovery and lightdm fails xf86-video-armsoc/src/drmmode_exynos/drmmode_exynos.c assumes contiguous allocations are not supported in some exynos drm versions: The following commit introduced this change: https://git.linaro.org/arm/xorg/driver/xf86-video-armsoc.git/commitdiff/3be1f6273441fe95dd442f44064387322e16b7e9 excerpts from the diff:- if (create_gem->buf_type == ARMSOC_BO_SCANOUT) - create_exynos.flags = EXYNOS_BO_CONTIG; - else - create_exynos.flags = EXYNOS_BO_NONCONTIG; + + /* Contiguous allocations are not supported in some exynos drm versions. + * When they are supported all allocations are effectively contiguous + * anyway, so for simplicity we always request non contiguous buffers. + */ + create_exynos.flags = EXYNOS_BO_NONCONTIG; There might have been logic on exynos_drm that forced Contig when it coudn't support NONCONTIG. At least, that is what this comment suggests. This assumption doesn't appear to be a good one and not sure if this change was made to fix a bug. After the IOMMU support, this assumption is no longer true. Hence, with IOMMU support, latest kernels have a mismatch with the installed xf86-video-armsoc This is what I am running into. This leads to the following question: 1. How do we ensure exynos_drm kernel changes don't break user-space specifically xf86-video-armsoc 2. This seems to have gone undetected for a while. I see a change in exynos_drm_gem_dumb_create() that is probably addressing this type of breakage. Commit 122beea84bb90236b1ae545f08267af58591c21b adds handling for IOMMU NONCONTIG case. Anyway, I am interested in getting the exynos_drm kernel side code and xf86-video-armsoc in sync to resolve the issue. Could you recommend a going forward plan? I can submit a patch to xf86-video-armsoc. I am also looking ahead to see if we can avoid such breaks in the future by keeping kernel and xf86-video-armsoc in sync. thanks, -- Shuah
Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread
Re: [PATCH] exynos-drm: Fix display manager failing to start without IOMMU problem Shuah Khan <shuahkh@osg.samsung.com> - 2016-10-13 01:30 +0200
Re: [PATCH] exynos-drm: Fix display manager failing to start without IOMMU problem Inki Dae <daeinki@gmail.com> - 2016-10-19 16:20 +0200
Re: [PATCH] exynos-drm: Fix display manager failing to start without IOMMU problem Shuah Khan <shuahkh@osg.samsung.com> - 2016-10-20 00:30 +0200
Re: [PATCH] exynos-drm: Fix display manager failing to start without IOMMU problem Shuah Khan <shuahkh@osg.samsung.com> - 2016-10-25 18:40 +0200
Re: [PATCH] exynos-drm: Fix display manager failing to start without IOMMU problem Tobias Jakobi <tjakobi@math.uni-bielefeld.de> - 2016-10-25 20:00 +0200
Re: [PATCH] exynos-drm: Fix display manager failing to start without IOMMU problem Shuah Khan <shuahkh@osg.samsung.com> - 2016-10-25 21:00 +0200
csiph-web