From: Guenter Roeck <linux@roeck-us.net>
To: Matthew Auld <matthew.auld@intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
"Thomas Hellström" <thomas.hellstrom@linux.intel.com>
Subject: Re: [Intel-gfx] [PATCH 4/9] drm/i915/dmabuf: add paranoid flush-on-acquire
Date: Tue, 26 Oct 2021 06:44:11 -0700 [thread overview]
Message-ID: <20211026134411.GA3857583@roeck-us.net> (raw)
In-Reply-To: <20211018174508.2137279-4-matthew.auld@intel.com>
On Mon, Oct 18, 2021 at 06:45:03PM +0100, Matthew Auld wrote:
> As pointed out by Thomas, we likely need to flush the pages here if the
> GPU can read the page contents directly from main memory. Underneath we
> don't know what the sg_table is pointing to, so just add a
> wbinvd_on_all_cpus() here, for now.
>
> Reported-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
With nosmp builds:
Error log:
drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c: In function 'i915_gem_object_get_pages_dmabuf':
drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c:248:17: error: implicit declaration of function 'wbinvd_on_all_cpus' [-Werror=implicit-function-declaration]
248 | wbinvd_on_all_cpus();
| ^~~~~~~~~~~~~~~~~~
Guenter
> ---
> drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> index 5be505ebbb7b..1adcd8e02d29 100644
> --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c
> @@ -232,6 +232,7 @@ struct dma_buf *i915_gem_prime_export(struct drm_gem_object *gem_obj, int flags)
>
> static int i915_gem_object_get_pages_dmabuf(struct drm_i915_gem_object *obj)
> {
> + struct drm_i915_private *i915 = to_i915(obj->base.dev);
> struct sg_table *pages;
> unsigned int sg_page_sizes;
>
> @@ -242,8 +243,11 @@ static int i915_gem_object_get_pages_dmabuf(struct drm_i915_gem_object *obj)
> if (IS_ERR(pages))
> return PTR_ERR(pages);
>
> - sg_page_sizes = i915_sg_dma_sizes(pages->sgl);
> + /* XXX: consider doing a vmap flush or something */
> + if (!HAS_LLC(i915) || i915_gem_object_can_bypass_llc(obj))
> + wbinvd_on_all_cpus();
>
> + sg_page_sizes = i915_sg_dma_sizes(pages->sgl);
> __i915_gem_object_set_pages(obj, pages, sg_page_sizes);
>
> return 0;
> --
> 2.26.3
>
next prev parent reply other threads:[~2021-10-26 13:44 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-18 17:45 [Intel-gfx] [PATCH 1/9] drm/i915: mark dmabuf objects as ALLOC_USER Matthew Auld
2021-10-18 17:45 ` [Intel-gfx] [PATCH 2/9] drm/i915: mark userptr " Matthew Auld
2021-10-20 14:36 ` Thomas Hellström
2021-10-18 17:45 ` [Intel-gfx] [PATCH 3/9] drm/i915: extract bypass-llc check into helper Matthew Auld
2021-10-20 14:38 ` Thomas Hellström
2021-10-18 17:45 ` [Intel-gfx] [PATCH 4/9] drm/i915/dmabuf: add paranoid flush-on-acquire Matthew Auld
2021-10-20 14:42 ` Thomas Hellström
2021-10-26 13:44 ` Guenter Roeck [this message]
2021-10-18 17:45 ` [Intel-gfx] [PATCH 5/9] drm/i915/userptr: " Matthew Auld
2021-10-20 14:52 ` Thomas Hellström
2021-10-18 17:45 ` [Intel-gfx] [PATCH 6/9] drm/i915/shmem: ensure flush during swap-in on non-LLC Matthew Auld
2021-10-20 14:53 ` Thomas Hellström
2021-10-18 17:45 ` [Intel-gfx] [PATCH 7/9] drm/i915: expand on the kernel-doc for cache_dirty Matthew Auld
2021-10-20 14:58 ` Thomas Hellström
2021-10-18 17:45 ` [Intel-gfx] [PATCH 8/9] drm/i915: mark up internal objects with start_cpu_write Matthew Auld
2021-10-20 15:11 ` Thomas Hellström
2021-10-18 17:45 ` [Intel-gfx] [PATCH 9/9] drm/i915/selftests: mark up hugepages object " Matthew Auld
2021-10-20 15:12 ` Thomas Hellström
2021-10-18 19:11 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/9] drm/i915: mark dmabuf objects as ALLOC_USER Patchwork
2021-10-18 19:13 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-10-18 19:42 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-10-19 2:39 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2021-10-20 14:34 ` [Intel-gfx] [PATCH 1/9] " Thomas Hellström
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=20211026134411.GA3857583@roeck-us.net \
--to=linux@roeck-us.net \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=matthew.auld@intel.com \
--cc=thomas.hellstrom@linux.intel.com \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox