On Tue, Feb 11, 2003 at 08:35:14PM +0100, Egbert Eich wrote:
Content-Description: message body text
>Michael Cardenas writes:
> > Unfortunately, I edited i810_memory.c and changed
> > 
> > if (xf86AgpGARTSupported() && !pI810->directRenderingEnabled
> >        && pI810->GttBound) {
> > 
> > to
> > 
> > if (xf86AgpGARTSupported() && pI810->GttBound) {
> > 
> > and it still produces the same error when I launch a second X server. 
> > 
> > (WW) xf86AcquireGART: AGPIOC_ACQUIRE failed (Device or resource busy)
> > (EE) GARTInit: AGPIOC_INFO failed (Invalid argument)
> > (EE) I810(0): AGP GART support is not available.  Make sure your kernel has
> >         agpgart support or that the agpgart kernel module is loaded.
> > 
> > Any suggestions on how to proceed?
> > 
>
>This is not so easy to fix. 
>
>Only when used *without* DRI I810UnbindGARTMemory() 
>unbinds the GART memory. In this case unbinding
>works well, starting a second server is no problem.
>
>With DRI unbinding has to be done thru a different
>interface. In this case the drm functions drmAgpUnbind(),
> drmAgpRelease(), drmAcquire() and drmBind() need to take 
>care of unbinding/releaseing and reacquiring/rebinding
>the AGP memory. 

Hmm, yes, the i810 driver uses those interfaces (and doesn't have any
explicit drmAgpUnbind() calls), but the i830 part doesn't.  Another
alternative might be to have the i810 part work like the i830 part.

>The current driver contains no code doing this.
>
>The patch in attachment 1 fixes this. There is one
>bug in the agpgart module and another one in agp_unbind()
>in the drm kernel driver which prevent a VT switch when
>direct rendering is enabled. Attachment 2 has patches.
>
>One last problem remains: 
>These patches don't help starting a second Xserver:
>This second Xserver hangs in the lock created by the first
>one.
>The release() in the drm kernel driver tries to obtain a
>lock, when __HAVE_RELEASE is set. This lock is however held
>by the first Xsever.
>Only the i810 and i830 drivers have __HAVE_RELEASE set
>therefore other Xservers aren't affected.

That's probably the contention problem I saw with DRI enabled.

I'd be good to get all of this resolved, but it's looking like the level
of changes that might be needed to do it fully are getting beyone what
we should be putting in before 4.3.

David
--
David Dawes
Release Engineer/Architect                      The XFree86 Project
www.XFree86.org/~dawes
_______________________________________________
XFree86 mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xfree86

Reply via email to