From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [RFC PATCH 83/97] drm/i915/guc: Don't return -EAGAIN to user when guc_ids exhausted
Date: Fri, 07 May 2021 08:40:25 +0800 [thread overview]
Message-ID: <202105070803.dihUDuDV-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 6770 bytes --]
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210506191451.77768-84-matthew.brost@intel.com>
References: <20210506191451.77768-84-matthew.brost@intel.com>
TO: Matthew Brost <matthew.brost@intel.com>
Hi Matthew,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on drm-tip/drm-tip]
[cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next tegra-drm/drm/tegra/for-next drm/drm-next v5.12 next-20210506]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Matthew-Brost/Basic-GuC-submission-support-in-the-i915/20210507-030308
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
:::::: branch date: 6 hours ago
:::::: commit date: 6 hours ago
config: i386-randconfig-s002-20210506 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-341-g8af24329-dirty
# https://github.com/0day-ci/linux/commit/07a654f75149663bf7c39bab3c2087cefcb73799
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Matthew-Brost/Basic-GuC-submission-support-in-the-i915/20210507-030308
git checkout 07a654f75149663bf7c39bab3c2087cefcb73799
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c:2160:26: sparse: sparse: context imbalance in 'retire_worker_sched_disable' - different lock contexts for basic block
vim +/retire_worker_sched_disable +2160 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
07a654f7514966 Matthew Brost 2021-05-06 2101
07a654f7514966 Matthew Brost 2021-05-06 2102 static void retire_worker_sched_disable(struct intel_guc *guc,
07a654f7514966 Matthew Brost 2021-05-06 2103 struct intel_context *ce)
07a654f7514966 Matthew Brost 2021-05-06 2104 {
07a654f7514966 Matthew Brost 2021-05-06 2105 unsigned long flags;
07a654f7514966 Matthew Brost 2021-05-06 2106 bool disabled;
07a654f7514966 Matthew Brost 2021-05-06 2107
07a654f7514966 Matthew Brost 2021-05-06 2108 guc->stalled_context = NULL;
07a654f7514966 Matthew Brost 2021-05-06 2109 spin_lock_irqsave(&ce->guc_state.lock, flags);
07a654f7514966 Matthew Brost 2021-05-06 2110 disabled = submission_disabled(guc);
07a654f7514966 Matthew Brost 2021-05-06 2111 if (!disabled && !context_pending_disable(ce) && context_enabled(ce)) {
07a654f7514966 Matthew Brost 2021-05-06 2112 /*
07a654f7514966 Matthew Brost 2021-05-06 2113 * Still enabled, issue schedule disable + configure state so
07a654f7514966 Matthew Brost 2021-05-06 2114 * when G2H returns tasklet is kicked.
07a654f7514966 Matthew Brost 2021-05-06 2115 */
07a654f7514966 Matthew Brost 2021-05-06 2116
07a654f7514966 Matthew Brost 2021-05-06 2117 struct intel_runtime_pm *runtime_pm =
07a654f7514966 Matthew Brost 2021-05-06 2118 &ce->engine->gt->i915->runtime_pm;
07a654f7514966 Matthew Brost 2021-05-06 2119 intel_wakeref_t wakeref;
07a654f7514966 Matthew Brost 2021-05-06 2120 u16 guc_id;
07a654f7514966 Matthew Brost 2021-05-06 2121
07a654f7514966 Matthew Brost 2021-05-06 2122 /*
07a654f7514966 Matthew Brost 2021-05-06 2123 * We add +2 here as the schedule disable complete CTB handler
07a654f7514966 Matthew Brost 2021-05-06 2124 * calls intel_context_sched_disable_unpin (-2 to pin_count).
07a654f7514966 Matthew Brost 2021-05-06 2125 */
07a654f7514966 Matthew Brost 2021-05-06 2126 GEM_BUG_ON(!atomic_read(&ce->pin_count));
07a654f7514966 Matthew Brost 2021-05-06 2127 atomic_add(2, &ce->pin_count);
07a654f7514966 Matthew Brost 2021-05-06 2128
07a654f7514966 Matthew Brost 2021-05-06 2129 set_context_block_tasklet(ce);
07a654f7514966 Matthew Brost 2021-05-06 2130 guc_id = prep_context_pending_disable(ce);
07a654f7514966 Matthew Brost 2021-05-06 2131 spin_unlock_irqrestore(&ce->guc_state.lock, flags);
07a654f7514966 Matthew Brost 2021-05-06 2132
07a654f7514966 Matthew Brost 2021-05-06 2133 with_intel_runtime_pm(runtime_pm, wakeref)
07a654f7514966 Matthew Brost 2021-05-06 2134 __guc_context_sched_disable(guc, ce, guc_id);
07a654f7514966 Matthew Brost 2021-05-06 2135
07a654f7514966 Matthew Brost 2021-05-06 2136 invalidate_guc_id_sched_disable(ce);
07a654f7514966 Matthew Brost 2021-05-06 2137 } else if (!disabled && context_pending_disable(ce)) {
07a654f7514966 Matthew Brost 2021-05-06 2138 /*
07a654f7514966 Matthew Brost 2021-05-06 2139 * Schedule disable in flight, set bit to kick tasklet in G2H
07a654f7514966 Matthew Brost 2021-05-06 2140 * handler and call it a day.
07a654f7514966 Matthew Brost 2021-05-06 2141 */
07a654f7514966 Matthew Brost 2021-05-06 2142
07a654f7514966 Matthew Brost 2021-05-06 2143 set_context_block_tasklet(ce);
07a654f7514966 Matthew Brost 2021-05-06 2144 spin_unlock_irqrestore(&ce->guc_state.lock, flags);
07a654f7514966 Matthew Brost 2021-05-06 2145
07a654f7514966 Matthew Brost 2021-05-06 2146 invalidate_guc_id_sched_disable(ce);
07a654f7514966 Matthew Brost 2021-05-06 2147 } else if (disabled || !context_enabled(ce)) {
07a654f7514966 Matthew Brost 2021-05-06 2148 /* Schedule disable is done, kick tasklet */
07a654f7514966 Matthew Brost 2021-05-06 2149
07a654f7514966 Matthew Brost 2021-05-06 2150 spin_unlock_irqrestore(&ce->guc_state.lock, flags);
07a654f7514966 Matthew Brost 2021-05-06 2151
07a654f7514966 Matthew Brost 2021-05-06 2152 invalidate_guc_id_sched_disable(ce);
07a654f7514966 Matthew Brost 2021-05-06 2153
07a654f7514966 Matthew Brost 2021-05-06 2154 guc->submission_stall_reason = STALL_REGISTER_CONTEXT;
07a654f7514966 Matthew Brost 2021-05-06 2155 clr_tasklet_blocked(guc);
07a654f7514966 Matthew Brost 2021-05-06 2156
07a654f7514966 Matthew Brost 2021-05-06 2157 kick_tasklet(ce_to_guc(ce));
07a654f7514966 Matthew Brost 2021-05-06 2158 }
07a654f7514966 Matthew Brost 2021-05-06 2159
07a654f7514966 Matthew Brost 2021-05-06 @2160 intel_context_put(ce);
07a654f7514966 Matthew Brost 2021-05-06 2161 }
07a654f7514966 Matthew Brost 2021-05-06 2162
---
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: 35607 bytes --]
next reply other threads:[~2021-05-07 0:40 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-07 0:40 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-05-06 19:13 [Intel-gfx] [RFC PATCH 00/97] Basic GuC submission support in the i915 Matthew Brost
2021-05-06 19:14 ` [RFC PATCH 83/97] drm/i915/guc: Don't return -EAGAIN to user when guc_ids exhausted Matthew Brost
2021-05-07 6:06 ` kernel 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=202105070803.dihUDuDV-lkp@intel.com \
--to=lkp@intel.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.