public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Skip Stolen Memory first page.
Date: Thu, 31 Jul 2014 16:39:24 +0300	[thread overview]
Message-ID: <20140731133924.GN4193@intel.com> (raw)
In-Reply-To: <1406742466-25128-1-git-send-email-rodrigo.vivi@intel.com>

On Wed, Jul 30, 2014 at 10:47:46AM -0700, Rodrigo Vivi wrote:
> WA to skip the first page of stolen memory due to sporadic HW write on *CS Idle

How does this interact with the BIOS FB takeover? Do BDW systems even
place the BIOS FB at the start if stolen due to this W/A? We have no
code to verify if that's true or not. The takeover code just blindly
assumes that it's true.

If the BIOS places the FB at the start of stolen, then I had an idea
of copying the first page over just past the end of the BIOS FB and
fixing up the the GTT to account for that. The CS is then free to 
clobber the first page of stolen without corrupting the FB. But I'm
not sure our stolen object code can deal with >1 entry sg lists
currently. Also we'd probably need to copy the page first to some
temporary place (maybe just end of stolen), and only once we know
the size of the BIOS FB it could be copied to the final place. Or I
guess we could just leave it at the end of stolen since the GTT
will remap any access anyway. As long as we don't access the stolen
memory directly this should work just fine.

> 
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gem_stolen.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
> index 21c025a..3acefb3 100644
> --- a/drivers/gpu/drm/i915/i915_gem_stolen.c
> +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
> @@ -290,6 +290,7 @@ int i915_gem_init_stolen(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	int bios_reserved = 0;
> +	int initial_reserved = 0;
>  
>  #ifdef CONFIG_INTEL_IOMMU
>  	if (intel_iommu_gfx_mapped && INTEL_INFO(dev)->gen < 8) {
> @@ -314,9 +315,13 @@ int i915_gem_init_stolen(struct drm_device *dev)
>  	if (WARN_ON(bios_reserved > dev_priv->gtt.stolen_size))
>  		return 0;
>  
> +	/* WaSkipStolenMemoryFirstPage */
> +	if (INTEL_INFO(dev)->gen >= 8)
> +		initial_reserved = 4096;
> +
>  	/* Basic memrange allocator for stolen space */
> -	drm_mm_init(&dev_priv->mm.stolen, 0, dev_priv->gtt.stolen_size -
> -		    bios_reserved);
> +	drm_mm_init(&dev_priv->mm.stolen, initial_reserved,
> +		    dev_priv->gtt.stolen_size - bios_reserved);
>  
>  	return 0;
>  }
> -- 
> 1.9.3
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC

  parent reply	other threads:[~2014-07-31 13:39 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-30 17:47 [PATCH] drm/i915: Skip Stolen Memory first page Rodrigo Vivi
2014-07-31  3:57 ` Ben Widawsky
2014-07-31  5:57 ` Chris Wilson
2014-07-31 13:39 ` Ville Syrjälä [this message]
2014-07-31 19:08   ` Rodrigo Vivi
2014-08-01 16:34     ` Jesse Barnes
2015-02-03 16:11       ` Siluvery, Arun
2015-02-03 17:40         ` Ville Syrjälä
2015-02-03 19:24           ` Daniel Vetter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140731133924.GN4193@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=rodrigo.vivi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox