CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Matthew Brost <[email protected]>

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 <[email protected]>


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/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to