[Intel-gfx] [PATCH 2/8] drm/i915: Adds graphic address space ballooning logic

Chris Wilson chris at chris-wilson.co.uk
Tue Sep 23 11:19:02 CEST 2014


On Tue, Sep 23, 2014 at 10:26:26AM +0200, Daniel Vetter wrote:
> On Fri, Sep 19, 2014 at 09:00:00PM +0100, Chris Wilson wrote:
> > On Fri, Sep 19, 2014 at 06:21:46PM +0000, Tian, Kevin wrote:
> > > > From: Chris Wilson
> > > > The implementation also looks backwards. To work correctly with the GTT
> > > > allocator, you need to preallocate the reserved space such that it can
> > > > only allocate from the allowed ranges. Similarly, it should evict any
> > > > conflicting nodes when deballooning.
> > > 
> > > Could you elaborate a bit for above suggestion?
> > 
> > My expectation was that the dev_priv->gtt.base.vm would contain exactly
> > two holes after setup (in the mappable and non-mappable range). To do
> > that you would explicitly reserve everything barred from this client 
> > using a set of drm_mm_reserve_node()
> 
> Essentially a reserve_node implements what you open-code with
> insert_node_range right now.

Heh, there is a big difference. One inserts exactly where you ask and
fails if it conflicts, the other inserts where it feels like within that
range.
 
> One issue aside with both this and with the PDE reservations for gen7 is
> that there are now other thins in the ggtt drm_mm allocator than just gem
> objects. Which means our debugfs files are now less useful.
> 
> It might be useful to augment that dumper with one that dumps everything.
> We could add a few bits of driver-private tags in drm_mm_node (there's
> space) to figure out what kind of object it is. Would be a great follow-up
> task.

I think moving the other way and making them all objects so that we can
tie them into evection and the shrinker, use more interesting allocation
strategies, improve integration with debugging etc.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre



More information about the Intel-gfx mailing list