All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jesse Barnes <jbarnes@virtuousgeek.org>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: akash.goel@intel.com, intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 2/7] drm/i915: Resolving the memory region conflict for Stolen area
Date: Mon, 3 Mar 2014 14:33:09 -0800	[thread overview]
Message-ID: <20140303143309.7a1f5a90@jbarnes-desktop> (raw)
In-Reply-To: <20140303111409.76401ce2@jbarnes-desktop>



On Mon, 3 Mar 2014 11:14:09 -0800
Jesse Barnes <jbarnes@virtuousgeek.org> wrote:

> On Thu, 27 Feb 2014 11:01:08 +0200
> Jani Nikula <jani.nikula@linux.intel.com> wrote:
> 
> > On Thu, 27 Feb 2014, Jani Nikula <jani.nikula@linux.intel.com> wrote:
> > > On Wed, 26 Feb 2014, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> > >> On Mon, 13 Jan 2014 16:25:21 +0530
> > >> akash.goel@intel.com wrote:
> > >>
> > >>> From: Akash Goel <akash.goel@intel.com>
> > >>> 
> > >>> There is a conflict seen when requesting the kernel to reserve
> > >>> the physical space used for the stolen area. This is because
> > >>> some BIOS are wrapping the stolen area in the root PCI bus, but have
> > >>> an off-by-one error. As a workaround we retry the reservation with an
> > >>> offset of 1 instead of 0.
> > >>> 
> > >>> v2: updated commit message & the comment in source file (Daniel)
> > >>> 
> > >>> Signed-off-by: Akash Goel <akash.goel@intel.com>
> > >>> ---
> > >>>  drivers/gpu/drm/i915/i915_gem_stolen.c | 20 +++++++++++++++++---
> > >>>  1 file changed, 17 insertions(+), 3 deletions(-)
> > >>> 
> > >>> diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
> > >>> index 1a24e84..114a806 100644
> > >>> --- a/drivers/gpu/drm/i915/i915_gem_stolen.c
> > >>> +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
> > >>> @@ -82,9 +82,23 @@ static unsigned long i915_stolen_to_physical(struct drm_device *dev)
> > >>>  	r = devm_request_mem_region(dev->dev, base, dev_priv->gtt.stolen_size,
> > >>>  				    "Graphics Stolen Memory");
> > >>>  	if (r == NULL) {
> > >>> -		DRM_ERROR("conflict detected with stolen region: [0x%08x - 0x%08x]\n",
> > >>> -			  base, base + (uint32_t)dev_priv->gtt.stolen_size);
> > >>> -		base = 0;
> > >>> +		/*
> > >>> +		 * One more attempt but this time requesting region from
> > >>> +		 * base + 1, as we have seen that this resolves the region
> > >>> +		 * conflict with the PCI Bus.
> > >>> +		 * This is a BIOS w/a: Some BIOS wrap stolen in the root
> > >>> +		 * PCI bus, but have an off-by-one error. Hence retry the
> > >>> +		 * reservation starting from 1 instead of 0.
> > >>> +		 */
> > >>> +		r = devm_request_mem_region(dev->dev, base + 1,
> > >>> +					    dev_priv->gtt.stolen_size - 1,
> > >>> +					    "Graphics Stolen Memory");
> > >>> +		if (r == NULL) {
> > >>> +			DRM_ERROR("conflict detected with stolen region:"\
> > >>> +				  "[0x%08x - 0x%08x]\n",
> > >>> +				  base, base + (uint32_t)dev_priv->gtt.stolen_size);
> > >>> +			base = 0;
> > >>> +		}
> > >>>  	}
> > >>>  
> > >>>  	return base;
> > >>
> > >> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> > >> Tested-by: Arjan van de Ven <arjan@linux.intel.com>
> > >
> > > Pushed to -fixes, thanks for the patch, review, and testing.
> > 
> > Oh, forgot to add that I fixed the DRM_ERROR string split up that
> > checkpatch complained about while applying.
> 
> Note I think we should do this at the x86 quirk level as well since
> otherwise the kernel may put MMIO space on top of our stolen range.

Nevermind, I think the stolen core code will do the right thing and
mark this region reserved... but it's worth checking on an affected
system.

-- 
Jesse Barnes, Intel Open Source Technology Center

  reply	other threads:[~2014-03-03 22:32 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-13 10:55 [PATCH 2/7] drm/i915: Resolving the memory region conflict for Stolen area akash.goel
     [not found] ` <8BF5CF93467D8C498F250C96583BC09CC6AD09@BGSMSX103.gar.corp.intel.com>
2014-01-28  9:14   ` Daniel Vetter
2014-02-18 19:49     ` Jesse Barnes
2014-02-24 19:22       ` Jani Nikula
2014-02-27 16:43         ` Chris Wilson
2014-02-28 14:06           ` Jani Nikula
2014-03-06  6:21             ` Jani Nikula
2014-02-26 16:21 ` Jesse Barnes
2014-02-27  8:59   ` Jani Nikula
2014-02-27  9:01     ` Jani Nikula
2014-03-03 19:14       ` Jesse Barnes
2014-03-03 22:33         ` Jesse Barnes [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-01-09  5:30 akash.goel
2014-01-09  7:29 ` 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=20140303143309.7a1f5a90@jbarnes-desktop \
    --to=jbarnes@virtuousgeek.org \
    --cc=akash.goel@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.