diff mbox

[2/3] drm/i915: Stop depending upon CONFIG_AGP/_INTEL

Message ID 1453834196-5741-2-git-send-email-daniel.vetter@ffwll.ch (mailing list archive)
State New, archived
Headers show

Commit Message

Daniel Vetter Jan. 26, 2016, 6:49 p.m. UTC
We need this to be able to paper over some CI fail: DMA API debuggin
complaints that we leak the gmch scratch page, but fundamentally
that's the only way to do it if there's both the intel-agp and i915
driver using it: intel-agp shadow-attaches, i915 binds for real to the
gpu. But when i915 unloads we need to keep the dma-mapping for
intel-agp around, and the dma debugging code doesn't approve of that.

With this patch we can disable CONFIG_AGP_INTEL and avoid this
troubel.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93769
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/i915/Kconfig | 2 --
 1 file changed, 2 deletions(-)

Comments

Chris Wilson Jan. 26, 2016, 8:56 p.m. UTC | #1
On Tue, Jan 26, 2016 at 07:49:55PM +0100, Daniel Vetter wrote:
> We need this to be able to paper over some CI fail: DMA API debuggin
> complaints that we leak the gmch scratch page, but fundamentally
> that's the only way to do it if there's both the intel-agp and i915
> driver using it: intel-agp shadow-attaches, i915 binds for real to the
> gpu. But when i915 unloads we need to keep the dma-mapping for
> intel-agp around, and the dma debugging code doesn't approve of that.
> 
> With this patch we can disable CONFIG_AGP_INTEL and avoid this
> troubel.

How about:

The AGP_INTEL driver provides an interface for very old userspace to
control the GART (though the GART itself was only ever emulated on Intel
systems). The pci bridge discovery code is also used by the i915.ko
driver to set up the GTT on old systems, but it does not require the
old userspace interface. When i915.ko selects the old interface, it
binds another user to the core GTT routines, and in particular creates a
second reference to the scratch pages allocated. This hinders resource
leak debugging for when we unload i915.ko as we want to assert that all
DMA pages have been released, but we appear to leak because of the
secondary interface which persists after i915.ko unloads.

All i915.ko users do not require the old /dev/agpgart interface so stop
selecting it and simplify our debugging by dropping the historical
baggage.
-Chris
Ville Syrjälä Jan. 27, 2016, 11:37 a.m. UTC | #2
On Tue, Jan 26, 2016 at 07:49:55PM +0100, Daniel Vetter wrote:
> We need this to be able to paper over some CI fail: DMA API debuggin
> complaints that we leak the gmch scratch page, but fundamentally
> that's the only way to do it if there's both the intel-agp and i915
> driver using it: intel-agp shadow-attaches, i915 binds for real to the
> gpu. But when i915 unloads we need to keep the dma-mapping for
> intel-agp around, and the dma debugging code doesn't approve of that.
> 
> With this patch we can disable CONFIG_AGP_INTEL and avoid this
> troubel.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93769
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> ---
>  drivers/gpu/drm/i915/Kconfig | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
> index fcd77b27514d..9aa7d2d98add 100644
> --- a/drivers/gpu/drm/i915/Kconfig
> +++ b/drivers/gpu/drm/i915/Kconfig
> @@ -2,9 +2,7 @@ config DRM_I915
>  	tristate "Intel 8xx/9xx/G3x/G4x/HD Graphics"
>  	depends on DRM
>  	depends on X86 && PCI
> -	depends on (AGP || AGP=n)
>  	select INTEL_GTT
> -	select AGP_INTEL if AGP

Just setting AGP=n in .config isn't enough?

>  	select INTERVAL_TREE
>  	# we need shmfs for the swappable backing store, and in particular
>  	# the shmem_readpage() which depends upon tmpfs
> -- 
> 2.5.0
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
index fcd77b27514d..9aa7d2d98add 100644
--- a/drivers/gpu/drm/i915/Kconfig
+++ b/drivers/gpu/drm/i915/Kconfig
@@ -2,9 +2,7 @@  config DRM_I915
 	tristate "Intel 8xx/9xx/G3x/G4x/HD Graphics"
 	depends on DRM
 	depends on X86 && PCI
-	depends on (AGP || AGP=n)
 	select INTEL_GTT
-	select AGP_INTEL if AGP
 	select INTERVAL_TREE
 	# we need shmfs for the swappable backing store, and in particular
 	# the shmem_readpage() which depends upon tmpfs