Message ID | 1368030989-4817-1-git-send-email-jbarnes@virtuousgeek.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, May 08, 2013 at 09:36:29AM -0700, Jesse Barnes wrote: > In some cases, we may not need GTT address space allocated to a stolen > object, so allow passing -1 to the preallocated function to indicate as > much. > > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> > --- > drivers/gpu/drm/i915/i915_gem_stolen.c | 4 ++++ > drivers/gpu/drm/i915/intel_pm.c | 2 +- > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c > index 9137fa4c..2e92861 100644 > --- a/drivers/gpu/drm/i915/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c > @@ -360,6 +360,10 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev, > return NULL; > } > > + /* Some objects just need physical mem from stolen space */ > + if (gtt_offset == -1) For complete symmetry, we should do a list_add(&obj->gtt_list, &dev_priv->mm.unbound_list); but as these bo are irrelevant for the shrinker there are no immediate consequences. If we wanted to further complicate the code, we could exclude stolen objects from unbound tracking entirely. Not worth it. So as it stands, for completeness we should do the list_add here. Hmm, actually, _i915_gem_object_create_stolen() should do the list_add(unbound) and we should later do the list_move(bound) after reserving the GTT space. Ok, ignore all of this and Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> (replacing -1 with a fancy name if some one else bikesheds :) -Chris
On Wed, May 08, 2013 at 09:36:29AM -0700, Jesse Barnes wrote: > In some cases, we may not need GTT address space allocated to a stolen > object, so allow passing -1 to the preallocated function to indicate as > much. > > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> > --- > drivers/gpu/drm/i915/i915_gem_stolen.c | 4 ++++ > drivers/gpu/drm/i915/intel_pm.c | 2 +- > 2 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c > index 9137fa4c..2e92861 100644 > --- a/drivers/gpu/drm/i915/i915_gem_stolen.c > +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c > @@ -360,6 +360,10 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev, > return NULL; > } > > + /* Some objects just need physical mem from stolen space */ > + if (gtt_offset == -1) > + return obj; Surely that will explode in the BUG_ON(gtt_offset & 4095), or did that get removed? > + > /* To simplify the initialisation sequence between KMS and GTT, > * we allow construction of the stolen object prior to > * setting up the GTT space. The actual reservation will occur > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index e60cd3e..081194d 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -2877,7 +2877,7 @@ static void valleyview_setup_pctx(struct drm_device *dev) > pcbr_offset = (pcbr & (~4095)) - dev_priv->mm.stolen_base; > pctx = i915_gem_object_create_stolen_for_preallocated(dev_priv->dev, > pcbr_offset, > - pcbr_offset, > + -1, > pctx_size); > goto out; > } > -- > 1.7.10.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c index 9137fa4c..2e92861 100644 --- a/drivers/gpu/drm/i915/i915_gem_stolen.c +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c @@ -360,6 +360,10 @@ i915_gem_object_create_stolen_for_preallocated(struct drm_device *dev, return NULL; } + /* Some objects just need physical mem from stolen space */ + if (gtt_offset == -1) + return obj; + /* To simplify the initialisation sequence between KMS and GTT, * we allow construction of the stolen object prior to * setting up the GTT space. The actual reservation will occur diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index e60cd3e..081194d 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -2877,7 +2877,7 @@ static void valleyview_setup_pctx(struct drm_device *dev) pcbr_offset = (pcbr & (~4095)) - dev_priv->mm.stolen_base; pctx = i915_gem_object_create_stolen_for_preallocated(dev_priv->dev, pcbr_offset, - pcbr_offset, + -1, pctx_size); goto out; }
In some cases, we may not need GTT address space allocated to a stolen object, so allow passing -1 to the preallocated function to indicate as much. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> --- drivers/gpu/drm/i915/i915_gem_stolen.c | 4 ++++ drivers/gpu/drm/i915/intel_pm.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-)