From: kbuild test robot <lkp@intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org, kbuild-all@01.org,
Matthew Auld <matthew.auld@intel.com>
Subject: Re: [PATCH] drm/i915/blt: Remove recursive vma->lock
Date: Wed, 19 Jun 2019 01:28:26 +0800 [thread overview]
Message-ID: <201906190147.2XbCupXw%lkp@intel.com> (raw)
In-Reply-To: <20190618095258.22568-1-chris@chris-wilson.co.uk>
Hi Chris,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on drm-intel/for-linux-next]
[also build test WARNING on next-20190618]
[cannot apply to v5.2-rc5]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Chris-Wilson/drm-i915-blt-Remove-recursive-vma-lock/20190618-194749
base: git://anongit.freedesktop.org/drm-intel for-linux-next
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-rc1-7-g2b96cd8-dirty
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/i915/gem/i915_gem_client_blt.c:201:65: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected struct i915_request *rq @@ got uct i915_request *rq @@
>> drivers/gpu/drm/i915/gem/i915_gem_client_blt.c:201:65: sparse: expected struct i915_request *rq
>> drivers/gpu/drm/i915/gem/i915_gem_client_blt.c:201:65: sparse: got struct dma_fence *
include/linux/reservation.h:220:20: sparse: sparse: dereference of noderef expression
include/linux/reservation.h:220:45: sparse: sparse: dereference of noderef expression
include/linux/reservation.h:220:20: sparse: sparse: dereference of noderef expression
include/linux/reservation.h:220:45: sparse: sparse: dereference of noderef expression
vim +201 drivers/gpu/drm/i915/gem/i915_gem_client_blt.c
153
154 static void clear_pages_worker(struct work_struct *work)
155 {
156 struct clear_pages_work *w = container_of(work, typeof(*w), work);
157 struct drm_i915_private *i915 = w->ce->gem_context->i915;
158 struct drm_i915_gem_object *obj = w->sleeve->obj;
159 struct i915_vma *vma = w->sleeve->vma;
160 struct i915_request *rq;
161 int err = w->dma.error;
162
163 if (unlikely(err))
164 goto out_signal;
165
166 if (obj->cache_dirty) {
167 obj->write_domain = 0;
168 if (i915_gem_object_has_struct_page(obj))
169 drm_clflush_sg(w->sleeve->pages);
170 obj->cache_dirty = false;
171 }
172
173 /* XXX: we need to kill this */
174 mutex_lock(&i915->drm.struct_mutex);
175 err = i915_vma_pin(vma, 0, 0, PIN_USER);
176 if (unlikely(err))
177 goto out_unlock;
178
179 rq = i915_request_create(w->ce);
180 if (IS_ERR(rq)) {
181 err = PTR_ERR(rq);
182 goto out_unpin;
183 }
184
185 /* There's no way the fence has signalled */
186 if (dma_fence_add_callback(&rq->fence, &w->cb,
187 clear_pages_dma_fence_cb))
188 GEM_BUG_ON(1);
189
190 if (w->ce->engine->emit_init_breadcrumb) {
191 err = w->ce->engine->emit_init_breadcrumb(rq);
192 if (unlikely(err))
193 goto out_request;
194 }
195
196 /*
197 * w->dma is already exported via (vma|obj)->resv we need only
198 * keep track of the GPU activity within this vma/request, and
199 * propagate the signal from the request to w->dma.
200 */
> 201 err = i915_active_ref(&vma->active, rq->fence.context, &rq->fence);
202 if (err)
203 goto out_request;
204
205 err = intel_emit_vma_fill_blt(rq, vma, w->value);
206 out_request:
207 if (unlikely(err)) {
208 i915_request_skip(rq, err);
209 err = 0;
210 }
211
212 i915_request_add(rq);
213 out_unpin:
214 i915_vma_unpin(vma);
215 out_unlock:
216 mutex_unlock(&i915->drm.struct_mutex);
217 out_signal:
218 if (unlikely(err)) {
219 dma_fence_set_error(&w->dma, err);
220 dma_fence_signal(&w->dma);
221 dma_fence_put(&w->dma);
222 }
223 }
224
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2019-06-18 17:29 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-18 9:52 [PATCH] drm/i915/blt: Remove recursive vma->lock Chris Wilson
2019-06-18 9:58 ` ✗ Fi.CI.BAT: failure for " Patchwork
2019-06-18 12:48 ` [PATCH] " Matthew Auld
2019-06-18 17:28 ` kbuild test robot [this message]
2019-06-18 18:20 ` kbuild test robot
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=201906190147.2XbCupXw%lkp@intel.com \
--to=lkp@intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.org \
--cc=kbuild-all@01.org \
--cc=matthew.auld@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