[PULL] remove drm_sman and some i815 fixes

Daniel Vetter daniel at ffwll.ch
Fri Dec 23 04:47:22 PST 2011


On Thu, Dec 22, 2011 at 11:22:00PM +0000, James Simmons wrote:
> 
> > > > Hi Dave,
> > > > 
> > > > I've failed to correctly fix the via hang in the reclaim buffers rework
> > > > till now, so I'm only submitting the drm_sman removal of my drm cruft
> > > > removal series.
> > > 
> > > Last attempt at your branch still had problem. Start I didn't have time 
> > > track down the exact issue. I'm cloning the below branch and will test it.
> > > Thanks for cleanup.
> > 
> > Jakob Bornecrantz quickly tested my attempt at fixing the deadlock you've
> > reported and noticed that the X server fails to start up (and that the
> > kernel hangs). Is that the same you're seeing?
> 
> What was just merged to drm-next works fine. Its the reclaim buffer 
> patches that cause the problem. In my case the X server starts but I get  
> a blank screen. I have full debug on so this is what happens.

Thanks for testing and gathering the logs.

Judging from the dmesg you've attached the via driver opens and closes the
via drm node at least twice while starting X. Which explains why things
blow up for you and Jakob already at startup. But ...

[snip]

> diff --git a/drivers/gpu/drm/via/via_mm.c b/drivers/gpu/drm/via/via_mm.c
> index bedb23d..f29d0c5 100644
> --- a/drivers/gpu/drm/via/via_mm.c
> +++ b/drivers/gpu/drm/via/via_mm.c
> @@ -215,6 +215,10 @@ void via_reclaim_buffers_locked(struct drm_device *dev,
>  {
>  	struct via_file_private *file_priv = file->driver_priv;
>  	struct via_memblock *entry, *next;
> +	int release_idlelock = 0;
> +
> +	if (file->master && file->master->lock.hw_lock)
> +		drm_idlelock_take(&file->master->lock);

This is still the old version of the patch, which doesn't set
release_idlelock properly. I've made double-sure that my branch a

http://cgit.freedesktop.org/~danvet/drm/log/?h=kill-with-fire

contains the right patches (now rebased onto drm-next). Alternatively you
can just apply the via reclaim_buffers patch on top of drm-next:

http://cgit.freedesktop.org/~danvet/drm/commit/?h=kill-with-fire&id=a00a2f313d6e99f6c35d2abed094aa4ec94431e2

Can you please retest with that and again grab the dmesg with full
logging? Jakob reported that this still blows up, so there's a problem
left somewhere. But I've rechecked the patches and couldn't see it.

I'll be offline next week.

Yours, Daniel
-- 
Daniel Vetter
Mail: daniel at ffwll.ch
Mobile: +41 (0)79 365 57 48


More information about the dri-devel mailing list