On Sat, 14 Mar 2015 23:24:53 +1100 Jonathan Gray <[email protected]> wrote:
> On Sat, Mar 14, 2015 at 08:02:09AM -0400, dan mclaughlin wrote:
> > On Sat, 14 Mar 2015 20:58:32 +1100
> > Mon Dec 10 10:49:46 2012 -0600 Jonathan Gray <[email protected]> wrote:
> > > On Tue, Mar 10, 2015 at 07:14:28AM -0400, dan mclaughlin wrote:
> > > > 
> > > > that did do something. before the screen would just freeze with its 
> > > > contents.
> > > > now it freezes like that for a second, and then goes blank. i 
> > > > reproduced it
> > > > twice. the first time took about the same amount of time as before, the 
> > > > second
> > > > went a bit longer before hanging. it seems there is also enough time 
> > > > before it
> > > > freezes to get error messages now. the first time i got the expected 
> > > > messages:
> > > > 
> > > > Mar  9 17:15:48 node02 /bsd: error: [drm:pid2359:i915_hangcheck_hung] 
> > > > *ERROR* Ha
> > > > ngcheck timer elapsed... GPU hung
> > > > Mar  9 17:15:48 node02 /bsd: error: [drm:pid11430:i915_reset] *ERROR* 
> > > > Failed to
> > > > reset chip.
> > > > 
> > > > the second time though i got this though:
> > > > 
> > > > Mar 10 06:37:01 node02 /bsd: error: 
> > > > [drm:pid27180:i915_get_vblank_timestamp] *ER
> > > > ROR* Invalid crtc 1
> > > > Mar 10 06:37:01 node02 /bsd: uvm_fault(0xd5c34634, 0x80038000, 0, 1) -> 
> > > > e
> > > > 
> > > > i do get occational vblank_timestamp errors but they have never seemed 
> > > > to cause
> > > > any significant problem before (although i don't use graphics too 
> > > > intensely).
> > > 
> > > The 845g hardware has a single display pipe.  I had hoped the problems
> > > people had encountered with it were gone when the 'pipe a force' quirks
> > > were removed for it.
> > > 
> > > I'm not entirely sure where to look for the source of getting the pipe
> > > wrong.
> > > 
> > > I would be interested to hear if the following diff makes any difference.
> > > From:
> > > 
> > > commit 21a245d2d62ef617978316203af032d499805cd2
> > > Author: Rob Clark <[email protected]>
> > > Date:   Mon Dec 10 10:49:46 2012 -0600
> > > 
> > >     drm: small fix in drm_send_vblank_event()
> > >     
> > >     Initialize e->pipe.. some drivers set this themselves, others do not.
> > >     Setting it in drm_send_vblank_event() should help ensure more 
> > > consistent
> > >     behavior with the different drivers.
> > >     
> > > Index: sys/dev/pci/drm/drm_irq.c
> > > ===================================================================
> > > RCS file: /cvs/src/sys/dev/pci/drm/drm_irq.c,v
> > > retrieving revision 1.59
> > > diff -u -p -r1.59 drm_irq.c
> > > --- sys/dev/pci/drm/drm_irq.c     12 Feb 2015 08:48:32 -0000      1.59
> > > +++ sys/dev/pci/drm/drm_irq.c     12 Mar 2015 12:50:29 -0000
> > > @@ -885,6 +885,7 @@ void drm_send_vblank_event(struct drm_de
> > >  
> > >           now = get_drm_timestamp();
> > >   }
> > > + e->pipe = crtc;
> > >   send_vblank_event(dev, e, seq, &now);
> > >  }
> > >  EXPORT_SYMBOL(drm_send_vblank_event);
> > 
> > no luck.
> > 
> > i was using qiv, and when changing a picture, it paused for a second or two
> > (no response) and then resumed, showing some blue lines across the middle 
> > for
> > a fraction of a second. everything was fine for a few more seconds, and 
> > then i
> > tried to use fullscreen, and it froze after blanking.
> > 
> > i got a few errors, but don't know exactly what caused them.
> > 
> > Mar 14 07:35:50 node02 /bsd: error: 
> > [drm:pid16745:i915_get_vblank_timestamp] *ERROR* Invalid crtc 1
> > Mar 14 07:35:59 node02 /bsd: error: [drm:pid31156:i915_hangcheck_hung] 
> > *ERROR* Hangcheck timer elapsed... GPU hung
> > Mar 14 07:35:59 node02 /bsd: error: [drm:pid11046:i915_reset] *ERROR* 
> > Failed to reset chip.
> > 
> > BTW, this was with the other patch applied as well.
> > 
> 
> Do you still see the hangs with vblank timestamping disabled?
> 
> Index: sys/dev/pci/drm/i915/i915_irq.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/i915/i915_irq.c,v
> retrieving revision 1.21
> diff -u -p -r1.21 i915_irq.c
> --- sys/dev/pci/drm/i915/i915_irq.c   12 Feb 2015 11:11:45 -0000      1.21
> +++ sys/dev/pci/drm/i915/i915_irq.c   14 Mar 2015 12:14:03 -0000
> @@ -2719,7 +2719,8 @@ void intel_irq_init(struct drm_device *d
>               dev->driver->get_vblank_counter = gm45_get_vblank_counter;
>       }
>  
> -     if (drm_core_check_feature(dev, DRIVER_MODESET))
> +     if (drm_core_check_feature(dev, DRIVER_MODESET) &&
> +         INTEL_INFO(dev)->num_pipes > 1)
>               dev->driver->get_vblank_timestamp = i915_get_vblank_timestamp;
>       else
>               dev->driver->get_vblank_timestamp = NULL;
> 

even quicker than before! using qiv again (it seems to trigger it more than
feh) and the screen blanked and froze.  no error messages this time (system
froze too quickly i guess).

Reply via email to