Patchwork [1/2] UBUNTU: [Config] enable MMIOTRACE for graphics debugging

login
register
mail settings
Submitter Andy Whitcroft
Date March 17, 2010, 9:26 a.m.
Message ID <1268817985-26172-2-git-send-email-apw@canonical.com>
Download mbox | patch
Permalink /patch/47922/
State Accepted
Delegated to: Andy Whitcroft
Headers show

Comments

Andy Whitcroft - March 17, 2010, 9:26 a.m.
Enable MMIOTRACE to allow us to trace low level card operations.  This is
commonly used to debug graphics issues particularly under Nouveau.
According to the documentation it is a near zero impact when disabled.

Signed-off-by: Andy Whitcroft <apw@canonical.com>
---
 debian.master/config/config.common.ubuntu |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
Stefan Bader - March 17, 2010, 9:37 a.m.
It seems at least worth trying as everything that helps to debug is good as long
as it does not impact normal usage.

Andy Whitcroft wrote:
> Enable MMIOTRACE to allow us to trace low level card operations.  This is
> commonly used to debug graphics issues particularly under Nouveau.
> According to the documentation it is a near zero impact when disabled.
> 
> Signed-off-by: Andy Whitcroft <apw@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
> ---
>  debian.master/config/config.common.ubuntu |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
> index 0bca70a..989c14c 100644
> --- a/debian.master/config/config.common.ubuntu
> +++ b/debian.master/config/config.common.ubuntu
> @@ -2236,7 +2236,8 @@ CONFIG_MMC_TIFM_SD=m
>  # CONFIG_MMC_UNSAFE_RESUME is not set
>  CONFIG_MMC_VIA_SDMMC=m
>  CONFIG_MMC_WBSD=m
> -# CONFIG_MMIOTRACE is not set
> +CONFIG_MMIOTRACE=y
> +# CONFIG_MMIOTRACE_TEST is not set
>  CONFIG_MMU=y
>  CONFIG_MMU_NOTIFIER=y
>  CONFIG_MM_OWNER=y
Colin King - March 17, 2010, 10 a.m.
The benefit as a debugging tool makes this a very good option to turn
on. It appears to add minimal overhead when not being used in debug
mode, so I'm for this. 

On Wed, 2010-03-17 at 09:26 +0000, Andy Whitcroft wrote:
> Enable MMIOTRACE to allow us to trace low level card operations.  This is
> commonly used to debug graphics issues particularly under Nouveau.
> According to the documentation it is a near zero impact when disabled.
> 
> Signed-off-by: Andy Whitcroft <apw@canonical.com>
Acked-by: Colin King <colin.king@canonical.com>

> ---
>  debian.master/config/config.common.ubuntu |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
> index 0bca70a..989c14c 100644
> --- a/debian.master/config/config.common.ubuntu
> +++ b/debian.master/config/config.common.ubuntu
> @@ -2236,7 +2236,8 @@ CONFIG_MMC_TIFM_SD=m
>  # CONFIG_MMC_UNSAFE_RESUME is not set
>  CONFIG_MMC_VIA_SDMMC=m
>  CONFIG_MMC_WBSD=m
> -# CONFIG_MMIOTRACE is not set
> +CONFIG_MMIOTRACE=y
> +# CONFIG_MMIOTRACE_TEST is not set
>  CONFIG_MMU=y
>  CONFIG_MMU_NOTIFIER=y
>  CONFIG_MM_OWNER=y
> -- 
> 1.7.0
> 
>
Bryce Harrington - March 17, 2010, 10:03 a.m.
On Wed, Mar 17, 2010 at 09:26:24AM +0000, Andy Whitcroft wrote:
> Enable MMIOTRACE to allow us to trace low level card operations.  This is
> commonly used to debug graphics issues particularly under Nouveau.
> According to the documentation it is a near zero impact when disabled.

"when enabled" I hope?

> Signed-off-by: Andy Whitcroft <apw@canonical.com>
> ---
>  debian.master/config/config.common.ubuntu |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
> index 0bca70a..989c14c 100644
> --- a/debian.master/config/config.common.ubuntu
> +++ b/debian.master/config/config.common.ubuntu
> @@ -2236,7 +2236,8 @@ CONFIG_MMC_TIFM_SD=m
>  # CONFIG_MMC_UNSAFE_RESUME is not set
>  CONFIG_MMC_VIA_SDMMC=m
>  CONFIG_MMC_WBSD=m
> -# CONFIG_MMIOTRACE is not set
> +CONFIG_MMIOTRACE=y
> +# CONFIG_MMIOTRACE_TEST is not set
>  CONFIG_MMU=y
>  CONFIG_MMU_NOTIFIER=y
>  CONFIG_MM_OWNER=y
> -- 
> 1.7.0
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
Andy Whitcroft - March 17, 2010, 10:20 a.m.
On Wed, Mar 17, 2010 at 03:03:41AM -0700, Bryce Harrington wrote:
> On Wed, Mar 17, 2010 at 09:26:24AM +0000, Andy Whitcroft wrote:
> > Enable MMIOTRACE to allow us to trace low level card operations.  This is
> > commonly used to debug graphics issues particularly under Nouveau.
> > According to the documentation it is a near zero impact when disabled.
> 
> "when enabled" I hope?

The cost is near-zero for having the MMIOTRACE option enabled with the
trace collection turned off (the default).  We take one additional branch
in the mmio map/upmap paths which are non-critical initialisation/teardone
paths in normal usage.  The actual mmio operations are not affected at all.
When we enable trace collection the overhead is high, taking a page
fault for each access to the mmio mapping.

-apw
Christopher James Halse Rogers - March 18, 2010, 5:43 a.m.
On Wed, 2010-03-17 at 03:03 -0700, Bryce Harrington wrote:
> On Wed, Mar 17, 2010 at 09:26:24AM +0000, Andy Whitcroft wrote:
> > Enable MMIOTRACE to allow us to trace low level card operations.  This is
> > commonly used to debug graphics issues particularly under Nouveau.
> > According to the documentation it is a near zero impact when disabled.
> 
> "when enabled" I hope?
> 
No; when it's enabled it's a huge performance hit.  It's not uncommon
for a mmio-traced nvidia blob to take multiple minutes to bring up X.
Scott James Remnant - March 18, 2010, 4:50 p.m.
On Thu, 2010-03-18 at 16:43 +1100, Christopher James Halse Rogers wrote:

> On Wed, 2010-03-17 at 03:03 -0700, Bryce Harrington wrote:
> > On Wed, Mar 17, 2010 at 09:26:24AM +0000, Andy Whitcroft wrote:
> > > Enable MMIOTRACE to allow us to trace low level card operations.  This is
> > > commonly used to debug graphics issues particularly under Nouveau.
> > > According to the documentation it is a near zero impact when disabled.
> > 
> > "when enabled" I hope?
> > 
> No; when it's enabled it's a huge performance hit.  It's not uncommon
> for a mmio-traced nvidia blob to take multiple minutes to bring up X.
> 
To be clear here:

The kernel config option, when enabled, adds a new available tracer,
which when itself is enabled, causes a huge performance hit.

Enabling the kernel config option doesn't cause a huge performance hit
in its own right.

Scott

Patch

diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
index 0bca70a..989c14c 100644
--- a/debian.master/config/config.common.ubuntu
+++ b/debian.master/config/config.common.ubuntu
@@ -2236,7 +2236,8 @@  CONFIG_MMC_TIFM_SD=m
 # CONFIG_MMC_UNSAFE_RESUME is not set
 CONFIG_MMC_VIA_SDMMC=m
 CONFIG_MMC_WBSD=m
-# CONFIG_MMIOTRACE is not set
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
 CONFIG_MMU=y
 CONFIG_MMU_NOTIFIER=y
 CONFIG_MM_OWNER=y