From: Jordan Crouse <jcrouse@codeaurora.org> To: linux-arm-msm@vger.kernel.org Cc: John Stultz <john.stultz@linaro.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Sean Paul <sean@poorly.run>, devicetree@vger.kernel.org, Stephen Boyd <swboyd@chromium.org>, Douglas Anderson <dianders@chromium.org>, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Sharat Masetty <smasetty@codeaurora.org>, Rob Herring <robh+dt@kernel.org>, Rob Clark <robdclark@gmail.com>, David Airlie <airlied@linux.ie>, Andy Gross <agross@kernel.org>, Mark Rutland <mark.rutland@arm.com>, freedreno@lists.freedesktop.org, Daniel Vetter <daniel@ffwll.ch> Subject: [PATCH v1 0/4] msm/gpu/a6xx: use the DMA-API for GMU memory allocations Date: Wed, 19 Feb 2020 14:32:54 -0700 [thread overview] Message-ID: <1582147978-31475-1-git-send-email-jcrouse@codeaurora.org> (raw) When CONFIG_INIT_ON_ALLOC_DEFAULT_ON the GMU memory allocator runs afoul of cache coherency issues because it is mapped as write-combine without clearing the cache after it was zeroed. Rather than duplicate the hacky workaround we use in the GEM allocator for the same reason it turns out that we don't need to have a bespoke memory allocator for the GMU anyway. It uses a flat, global address space and there are only two relatively minor allocations anyway. In short, this is essentially what the DMA API was created for so replace a bunch of memory management code with two calls to allocate and free DMA memory and we're fine. The only wrinkle is that the memory allocations need to be in a very specific location in the GMU virtual address space so in order to get the iova allocator to do the right thing we need to specify the dma-ranges property in the device tree for the GMU node. Since we've not yet converted the GMU bindings over to YAML two patches quickly turn into four but at the end of it we have at least one bindings file converted to YAML and 99 less lines of code to worry about. Jordan Crouse (4): dt-bindings: display: msm: Convert GMU bindings to YAML dt-bindings: display: msm: Add required dma-range property arm64: dts: sdm845: Set the virtual address range for GMU allocations drm/msm/a6xx: Use the DMA API for GMU memory objects .../devicetree/bindings/display/msm/gmu.txt | 116 ----------------- .../devicetree/bindings/display/msm/gmu.yaml | 140 +++++++++++++++++++++ arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 + drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 107 +--------------- drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 5 +- 5 files changed, 149 insertions(+), 221 deletions(-) delete mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.yaml -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Jordan Crouse <jcrouse@codeaurora.org> To: linux-arm-msm@vger.kernel.org Cc: Mark Rutland <mark.rutland@arm.com>, devicetree@vger.kernel.org, David Airlie <airlied@linux.ie>, linux-kernel@vger.kernel.org, Sharat Masetty <smasetty@codeaurora.org>, freedreno@lists.freedesktop.org, Douglas Anderson <dianders@chromium.org>, dri-devel@lists.freedesktop.org, Stephen Boyd <swboyd@chromium.org>, Rob Herring <robh+dt@kernel.org>, Andy Gross <agross@kernel.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, Sean Paul <sean@poorly.run> Subject: [PATCH v1 0/4] msm/gpu/a6xx: use the DMA-API for GMU memory allocations Date: Wed, 19 Feb 2020 14:32:54 -0700 [thread overview] Message-ID: <1582147978-31475-1-git-send-email-jcrouse@codeaurora.org> (raw) When CONFIG_INIT_ON_ALLOC_DEFAULT_ON the GMU memory allocator runs afoul of cache coherency issues because it is mapped as write-combine without clearing the cache after it was zeroed. Rather than duplicate the hacky workaround we use in the GEM allocator for the same reason it turns out that we don't need to have a bespoke memory allocator for the GMU anyway. It uses a flat, global address space and there are only two relatively minor allocations anyway. In short, this is essentially what the DMA API was created for so replace a bunch of memory management code with two calls to allocate and free DMA memory and we're fine. The only wrinkle is that the memory allocations need to be in a very specific location in the GMU virtual address space so in order to get the iova allocator to do the right thing we need to specify the dma-ranges property in the device tree for the GMU node. Since we've not yet converted the GMU bindings over to YAML two patches quickly turn into four but at the end of it we have at least one bindings file converted to YAML and 99 less lines of code to worry about. Jordan Crouse (4): dt-bindings: display: msm: Convert GMU bindings to YAML dt-bindings: display: msm: Add required dma-range property arm64: dts: sdm845: Set the virtual address range for GMU allocations drm/msm/a6xx: Use the DMA API for GMU memory objects .../devicetree/bindings/display/msm/gmu.txt | 116 ----------------- .../devicetree/bindings/display/msm/gmu.yaml | 140 +++++++++++++++++++++ arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 + drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 107 +--------------- drivers/gpu/drm/msm/adreno/a6xx_gmu.h | 5 +- 5 files changed, 149 insertions(+), 221 deletions(-) delete mode 100644 Documentation/devicetree/bindings/display/msm/gmu.txt create mode 100644 Documentation/devicetree/bindings/display/msm/gmu.yaml -- 2.7.4 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
next reply other threads:[~2020-02-19 21:33 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-02-19 21:32 Jordan Crouse [this message] 2020-02-19 21:32 ` [PATCH v1 0/4] msm/gpu/a6xx: use the DMA-API for GMU memory allocations Jordan Crouse 2020-02-19 21:32 ` [PATCH v1 1/4] dt-bindings: display: msm: Convert GMU bindings to YAML Jordan Crouse 2020-02-19 21:32 ` Jordan Crouse 2020-02-19 21:32 ` [PATCH v1 2/4] dt-bindings: display: msm: Add required dma-range property Jordan Crouse 2020-02-19 21:32 ` Jordan Crouse 2020-02-19 21:32 ` [PATCH v1 3/4] arm64: dts: sdm845: Set the virtual address range for GMU allocations Jordan Crouse 2020-02-19 21:32 ` [PATCH v1 4/4] drm/msm/a6xx: Use the DMA API for GMU memory objects Jordan Crouse 2020-02-19 21:32 ` Jordan Crouse 2020-02-20 5:48 ` [PATCH v1 0/4] msm/gpu/a6xx: use the DMA-API for GMU memory allocations John Stultz 2020-02-20 5:48 ` John Stultz
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=1582147978-31475-1-git-send-email-jcrouse@codeaurora.org \ --to=jcrouse@codeaurora.org \ --cc=agross@kernel.org \ --cc=airlied@linux.ie \ --cc=bjorn.andersson@linaro.org \ --cc=daniel@ffwll.ch \ --cc=devicetree@vger.kernel.org \ --cc=dianders@chromium.org \ --cc=dri-devel@lists.freedesktop.org \ --cc=freedreno@lists.freedesktop.org \ --cc=john.stultz@linaro.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mark.rutland@arm.com \ --cc=robdclark@gmail.com \ --cc=robh+dt@kernel.org \ --cc=sean@poorly.run \ --cc=smasetty@codeaurora.org \ --cc=swboyd@chromium.org \ /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: linkBe 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.