> -----Original Message----- > From: Ville Syrjälä [mailto:ville.syrjala@xxxxxxxxxxxxxxx] > Sent: Thursday, May 15, 2014 2:34 PM > To: Mateo Lozano, Oscar > Cc: Daniel Vetter; intel-gfx@xxxxxxxxxxxxxxxxxxxxx > Subject: Re: [PATCH] drm/i915: Gracefully handle obj not bound to > GGTT in is_pin_display > > On Thu, May 15, 2014 at 01:14:54PM +0000, Mateo Lozano, Oscar wrote: > > > > But looking at the code a better way should be: > > > > 1. Create new bo, wrap it in a kms fb. > > > > 2. Slap busy load onto that bo, e.g. reapeatedly fill it with the blitter. > > > > 3. Enable evil interruptor (igt_fork_signal_helper). > > > > 4. Submit pageflip > > > > > > > > -> Boom since the set_cache_level will block, get interrupted and > > > > -> exit > > > > early with -EINTR. > > > > > > > > Given sufficient overkill in 2. this should be 100% reliable to reproduce. > > > > As soon as I execbuffer to the bo, it gets a vma for the GGTT vm: > > > > vm = ctx->vm; > > if (!USES_FULL_PPGTT(dev)) > > vm = &dev_priv->gtt.base; > > > > ... > > > > /* Look up object handles */ > > ret = eb_lookup_vmas(eb, exec, args, vm, file); > > if (ret) > > goto err; > > > > And then it becomes impossible to reproduce the problem :( Is there > > any other trick to make set_cache_level fail? > > What if you make the pin_to_ggtt fail instead? Can you create an object that's > too big for the ggtt? Thanks Ville: that worked like a charm ;) _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx