On Tue, Mar 13, 2018 at 03:48:38AM +0800, kbuild test robot wrote:
> tree:   git://anongit.freedesktop.org/drm-intel for-linux-next-fixes
> head:   ab30b9c117f37f9f33bec6b92818e2b402791f54
> commit: ab30b9c117f37f9f33bec6b92818e2b402791f54 [4/4] drm/i915: Wrap 
> engine->schedule in RCU locks for set-wedge protection

Sorry for the noise on a back cherry-pick for fixes.
Patch removed for now so fixes trees can compile again.

> config: i386-randconfig-x010-201810 (attached as .config)
> compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
> reproduce:
>         git checkout ab30b9c117f37f9f33bec6b92818e2b402791f54
>         # save the attached .config to linux build tree
>         make ARCH=i386 
> 
> All errors (new ones prefixed by >>):
> 
>    drivers/gpu//drm/i915/i915_gem.c: In function 'i915_gem_set_wedged':
> >> drivers/gpu//drm/i915/i915_gem.c:3223:8: error: 'struct drm_i915_private' 
> >> has no member named 'caps'; did you mean 'ips'?
>      i915->caps.scheduler = 0;
>            ^~~~
>            ips
> 
> vim +3223 drivers/gpu//drm/i915/i915_gem.c
> 
>   3206        
>   3207        void i915_gem_set_wedged(struct drm_i915_private *i915)
>   3208        {
>   3209                struct intel_engine_cs *engine;
>   3210                enum intel_engine_id id;
>   3211        
>   3212                /*
>   3213                 * First, stop submission to hw, but do not yet 
> complete requests by
>   3214                 * rolling the global seqno forward (since this would 
> complete requests
>   3215                 * for which we haven't set the fence error to EIO yet).
>   3216                 */
>   3217                for_each_engine(engine, i915, id) {
>   3218                        i915_gem_reset_prepare_engine(engine);
>   3219        
>   3220                        engine->submit_request = nop_submit_request;
>   3221                        engine->schedule = NULL;
>   3222                }
> > 3223                i915->caps.scheduler = 0;
>   3224        
>   3225                /*
>   3226                 * Make sure no one is running the old callback before 
> we proceed with
>   3227                 * cancelling requests and resetting the completion 
> tracking. Otherwise
>   3228                 * we might submit a request to the hardware which 
> never completes.
>   3229                 */
>   3230                synchronize_rcu();
>   3231        
>   3232                for_each_engine(engine, i915, id) {
>   3233                        /* Mark all executing requests as skipped */
>   3234                        engine->cancel_requests(engine);
>   3235        
>   3236                        /*
>   3237                         * Only once we've force-cancelled all 
> in-flight requests can we
>   3238                         * start to complete all requests.
>   3239                         */
>   3240                        engine->submit_request = 
> nop_complete_submit_request;
>   3241                }
>   3242        
>   3243                /*
>   3244                 * Make sure no request can slip through without 
> getting completed by
>   3245                 * either this call here to 
> intel_engine_init_global_seqno, or the one
>   3246                 * in nop_complete_submit_request.
>   3247                 */
>   3248                synchronize_rcu();
>   3249        
>   3250                for_each_engine(engine, i915, id) {
>   3251                        unsigned long flags;
>   3252        
>   3253                        /* Mark all pending requests as complete so 
> that any concurrent
>   3254                         * (lockless) lookup doesn't try and wait upon 
> the request as we
>   3255                         * reset it.
>   3256                         */
>   3257                        spin_lock_irqsave(&engine->timeline->lock, 
> flags);
>   3258                        intel_engine_init_global_seqno(engine,
>   3259                                                       
> intel_engine_last_submit(engine));
>   3260                        spin_unlock_irqrestore(&engine->timeline->lock, 
> flags);
>   3261        
>   3262                        i915_gem_reset_finish_engine(engine);
>   3263                }
>   3264        
>   3265                set_bit(I915_WEDGED, &i915->gpu_error.flags);
>   3266                wake_up_all(&i915->gpu_error.reset_queue);
>   3267        }
>   3268        
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation


> _______________________________________________
> Intel-gfx mailing list
> intel-...@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to