All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: Re: [Intel-gfx] [PATCH 20/23] drm/i915: Use ww pinning for intel_context_create_request()
Date: Tue, 07 Jul 2020 17:35:56 +0300	[thread overview]
Message-ID: <20200707143556.GG2549@kadam> (raw)
In-Reply-To: <20200703122221.591656-21-maarten.lankhorst@linux.intel.com>

[-- Attachment #1: Type: text/plain, Size: 4130 bytes --]

Hi Maarten,

url:    https://github.com/0day-ci/linux/commits/Maarten-Lankhorst/drm-i915-Use-ww-locking-in-execbuf-submission/20200703-202504
base:    7faedc4873dd257f4ed064ab4e0a28407690ea73
config: i386-randconfig-m021-20200701 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/gpu/drm/i915/gt/intel_context.c:472 intel_context_create_request() error: uninitialized symbol 'rq'.

Old smatch warnings:
drivers/gpu/drm/i915/gem/i915_gem_object.h:130 __i915_gem_object_lock() error: we previously assumed 'ww' could be null (see line 122)

# https://github.com/0day-ci/linux/commit/bf4a02b288a7a2fb0b765163016a766e068b32da
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout bf4a02b288a7a2fb0b765163016a766e068b32da
vim +/rq +472 drivers/gpu/drm/i915/gt/intel_context.c

5e2a0419ef7cb25 Chris Wilson      2019-04-26  450  struct i915_request *intel_context_create_request(struct intel_context *ce)
5e2a0419ef7cb25 Chris Wilson      2019-04-26  451  {
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  452  	struct i915_gem_ww_ctx ww;
5e2a0419ef7cb25 Chris Wilson      2019-04-26  453  	struct i915_request *rq;
                                                                             ^^

5e2a0419ef7cb25 Chris Wilson      2019-04-26  454  	int err;
5e2a0419ef7cb25 Chris Wilson      2019-04-26  455  
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  456  	i915_gem_ww_ctx_init(&ww, true);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  457  retry:
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  458  	err = intel_context_pin_ww(ce, &ww);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  459  	if (!err) {
5e2a0419ef7cb25 Chris Wilson      2019-04-26  460  		rq = i915_request_create(ce);
5e2a0419ef7cb25 Chris Wilson      2019-04-26  461  		intel_context_unpin(ce);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  462  	} else if (err == -EDEADLK) {
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  463  		err = i915_gem_ww_ctx_backoff(&ww);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  464  		if (!err)
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  465  			goto retry;

rq = ERR_PTR(err); on this path presumably?

bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  466  	} else {
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  467  		rq = ERR_PTR(err);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  468  	}
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  469  
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  470  	i915_gem_ww_ctx_fini(&ww);
5e2a0419ef7cb25 Chris Wilson      2019-04-26  471  
2c5820855aff608 Maarten Lankhorst 2020-07-03 @472  	if (IS_ERR(rq))
                                                                   ^^
2c5820855aff608 Maarten Lankhorst 2020-07-03  473  		return rq;
2c5820855aff608 Maarten Lankhorst 2020-07-03  474  
2c5820855aff608 Maarten Lankhorst 2020-07-03  475  	/*
2c5820855aff608 Maarten Lankhorst 2020-07-03  476  	 * timeline->mutex should be the inner lock, but is used as outer lock.
2c5820855aff608 Maarten Lankhorst 2020-07-03  477  	 * Hack around this to shut up lockdep in selftests..
2c5820855aff608 Maarten Lankhorst 2020-07-03  478  	 */
2c5820855aff608 Maarten Lankhorst 2020-07-03  479  	lockdep_unpin_lock(&ce->timeline->mutex, rq->cookie);
2c5820855aff608 Maarten Lankhorst 2020-07-03  480  	mutex_release(&ce->timeline->mutex.dep_map, _RET_IP_);
2c5820855aff608 Maarten Lankhorst 2020-07-03  481  	mutex_acquire(&ce->timeline->mutex.dep_map, SINGLE_DEPTH_NESTING, 0, _RET_IP_);
2c5820855aff608 Maarten Lankhorst 2020-07-03  482  	rq->cookie = lockdep_pin_lock(&ce->timeline->mutex);
2c5820855aff608 Maarten Lankhorst 2020-07-03  483  
5e2a0419ef7cb25 Chris Wilson      2019-04-26  484  	return rq;
5e2a0419ef7cb25 Chris Wilson      2019-04-26  485  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 41957 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: Re: [Intel-gfx] [PATCH 20/23] drm/i915: Use ww pinning for intel_context_create_request()
Date: Tue, 07 Jul 2020 17:35:56 +0300	[thread overview]
Message-ID: <20200707143556.GG2549@kadam> (raw)
In-Reply-To: <20200703122221.591656-21-maarten.lankhorst@linux.intel.com>

[-- Attachment #1: Type: text/plain, Size: 4130 bytes --]

Hi Maarten,

url:    https://github.com/0day-ci/linux/commits/Maarten-Lankhorst/drm-i915-Use-ww-locking-in-execbuf-submission/20200703-202504
base:    7faedc4873dd257f4ed064ab4e0a28407690ea73
config: i386-randconfig-m021-20200701 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-14) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/gpu/drm/i915/gt/intel_context.c:472 intel_context_create_request() error: uninitialized symbol 'rq'.

Old smatch warnings:
drivers/gpu/drm/i915/gem/i915_gem_object.h:130 __i915_gem_object_lock() error: we previously assumed 'ww' could be null (see line 122)

# https://github.com/0day-ci/linux/commit/bf4a02b288a7a2fb0b765163016a766e068b32da
git remote add linux-review https://github.com/0day-ci/linux
git remote update linux-review
git checkout bf4a02b288a7a2fb0b765163016a766e068b32da
vim +/rq +472 drivers/gpu/drm/i915/gt/intel_context.c

5e2a0419ef7cb25 Chris Wilson      2019-04-26  450  struct i915_request *intel_context_create_request(struct intel_context *ce)
5e2a0419ef7cb25 Chris Wilson      2019-04-26  451  {
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  452  	struct i915_gem_ww_ctx ww;
5e2a0419ef7cb25 Chris Wilson      2019-04-26  453  	struct i915_request *rq;
                                                                             ^^

5e2a0419ef7cb25 Chris Wilson      2019-04-26  454  	int err;
5e2a0419ef7cb25 Chris Wilson      2019-04-26  455  
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  456  	i915_gem_ww_ctx_init(&ww, true);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  457  retry:
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  458  	err = intel_context_pin_ww(ce, &ww);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  459  	if (!err) {
5e2a0419ef7cb25 Chris Wilson      2019-04-26  460  		rq = i915_request_create(ce);
5e2a0419ef7cb25 Chris Wilson      2019-04-26  461  		intel_context_unpin(ce);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  462  	} else if (err == -EDEADLK) {
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  463  		err = i915_gem_ww_ctx_backoff(&ww);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  464  		if (!err)
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  465  			goto retry;

rq = ERR_PTR(err); on this path presumably?

bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  466  	} else {
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  467  		rq = ERR_PTR(err);
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  468  	}
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  469  
bf4a02b288a7a2f Maarten Lankhorst 2020-07-03  470  	i915_gem_ww_ctx_fini(&ww);
5e2a0419ef7cb25 Chris Wilson      2019-04-26  471  
2c5820855aff608 Maarten Lankhorst 2020-07-03 @472  	if (IS_ERR(rq))
                                                                   ^^
2c5820855aff608 Maarten Lankhorst 2020-07-03  473  		return rq;
2c5820855aff608 Maarten Lankhorst 2020-07-03  474  
2c5820855aff608 Maarten Lankhorst 2020-07-03  475  	/*
2c5820855aff608 Maarten Lankhorst 2020-07-03  476  	 * timeline->mutex should be the inner lock, but is used as outer lock.
2c5820855aff608 Maarten Lankhorst 2020-07-03  477  	 * Hack around this to shut up lockdep in selftests..
2c5820855aff608 Maarten Lankhorst 2020-07-03  478  	 */
2c5820855aff608 Maarten Lankhorst 2020-07-03  479  	lockdep_unpin_lock(&ce->timeline->mutex, rq->cookie);
2c5820855aff608 Maarten Lankhorst 2020-07-03  480  	mutex_release(&ce->timeline->mutex.dep_map, _RET_IP_);
2c5820855aff608 Maarten Lankhorst 2020-07-03  481  	mutex_acquire(&ce->timeline->mutex.dep_map, SINGLE_DEPTH_NESTING, 0, _RET_IP_);
2c5820855aff608 Maarten Lankhorst 2020-07-03  482  	rq->cookie = lockdep_pin_lock(&ce->timeline->mutex);
2c5820855aff608 Maarten Lankhorst 2020-07-03  483  
5e2a0419ef7cb25 Chris Wilson      2019-04-26  484  	return rq;
5e2a0419ef7cb25 Chris Wilson      2019-04-26  485  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 41957 bytes --]

  reply	other threads:[~2020-07-07 14:35 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-03 12:21 [Intel-gfx] [PATCH 00/23] drm/i915: Use ww locking in execbuf submission Maarten Lankhorst
2020-07-03 12:21 ` [Intel-gfx] [PATCH 01/23] Revert "drm/i915/gem: Async GPU relocations only" Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 02/23] drm/i915: Revert relocation chaining commits Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 03/23] Revert "drm/i915/gem: Drop relocation slowpath" Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 04/23] drm/i915: Add an implementation for i915_gem_ww_ctx locking, v2 Maarten Lankhorst
2020-07-03 13:45   ` Tvrtko Ursulin
2020-07-03 12:22 ` [Intel-gfx] [PATCH 05/23] drm/i915: Remove locking from i915_gem_object_prepare_read/write Maarten Lankhorst
2020-07-03 13:43   ` Tvrtko Ursulin
2020-07-06 12:53     ` Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 06/23] drm/i915: Parse command buffer earlier in eb_relocate(slow) Maarten Lankhorst
2020-07-03 13:49   ` Tvrtko Ursulin
2020-07-06 12:53     ` Maarten Lankhorst
2020-07-06 15:47       ` Tvrtko Ursulin
2020-07-03 12:22 ` [Intel-gfx] [PATCH 07/23] Revert "drm/i915/gem: Split eb_vma into its own allocation" Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 08/23] drm/i915: Use per object locking in execbuf, v12 Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 09/23] drm/i915: Use ww locking in intel_renderstate Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 10/23] drm/i915: Add ww context handling to context_barrier_task Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 11/23] drm/i915: Nuke arguments to eb_pin_engine Maarten Lankhorst
2020-07-03 13:38   ` Tvrtko Ursulin
2020-07-03 12:22 ` [Intel-gfx] [PATCH 12/23] drm/i915: Pin engine before pinning all objects, v4 Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 13/23] drm/i915: Rework intel_context pinning to do everything outside of pin_mutex Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 14/23] drm/i915: Make sure execbuffer always passes ww state to i915_vma_pin Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 15/23] drm/i915: Convert i915_gem_object/client_blt.c to use ww locking as well, v2 Maarten Lankhorst
2020-07-07 14:32   ` Dan Carpenter
2020-07-07 14:32     ` Dan Carpenter
2020-07-03 12:22 ` [Intel-gfx] [PATCH 16/23] drm/i915: Kill last user of intel_context_create_request outside of selftests Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 17/23] drm/i915: Convert i915_perf to ww locking as well Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 18/23] drm/i915: Dirty hack to fix selftests locking inversion Maarten Lankhorst
2020-07-03 13:48   ` Tvrtko Ursulin
2020-07-07 10:19     ` Maarten Lankhorst
2020-07-07 10:56       ` Tvrtko Ursulin
2020-07-07 11:00         ` Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 19/23] drm/i915/selftests: Fix locking inversion in lrc selftest Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 20/23] drm/i915: Use ww pinning for intel_context_create_request() Maarten Lankhorst
2020-07-07 14:35   ` Dan Carpenter [this message]
2020-07-07 14:35     ` Dan Carpenter
2020-07-03 12:22 ` [Intel-gfx] [PATCH 21/23] drm/i915: Move i915_vma_lock in the selftests to avoid lock inversion, v2 Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 22/23] drm/i915: Add ww locking to vm_fault_gtt Maarten Lankhorst
2020-07-03 12:22 ` [Intel-gfx] [PATCH 23/23] drm/i915: Add ww locking to pin_to_display_plane Maarten Lankhorst
2020-07-03 14:12 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Use ww locking in execbuf submission Patchwork
2020-07-03 14:13 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2020-07-03 14:36 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2020-07-06  1:20 [Intel-gfx] [PATCH 20/23] drm/i915: Use ww pinning for intel_context_create_request() kernel test robot
2020-07-14 11:44 [Intel-gfx] [PATCH 01/23] Revert "drm/i915/gem: Async GPU relocations only" Maarten Lankhorst
2020-07-14 11:45 ` [Intel-gfx] [PATCH 20/23] drm/i915: Use ww pinning for intel_context_create_request() Maarten Lankhorst

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=20200707143556.GG2549@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=kbuild@lists.01.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: link
Be 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.