On Tue, Oct 28, 2014 at 06:35:04PM +0900, Michel Dänzer wrote: > From: Michel Dänzer <michel.daenzer@xxxxxxx> > > DRM_MM_SEARCH_BEST gets the smallest hole which can fit the BO. That seems > against the idea of TTM_PL_FLAG_TOPDOWN: > > * The smallest hole may be in the overall bottom of the area > * If the hole isn't much larger than the BO, it doesn't make much > difference whether the BO is placed at the bottom or at the top of the > hole > > Signed-off-by: Michel Dänzer <michel.daenzer@xxxxxxx> tbh I think SEARCH_BEST is pretty much always a bad idea - it rips apart allocations from the same execbuf, and usually those get recycled around the same time. Which means you'll just fragment your mm even more if you try to find the best hole instead of just picking one and the stuffing the entire execbuf into it. So imo we might as well just kill it. Another one that I've advertised a bunch of times already is the scan roaster in drm_mm.c: Currently ttm just evicts until there's a big enough hole, which is fairly awful if you have quasi-segmented memory like with top-down/bottom-up schemes and different ranges for different units. With the roaster you just walk the lru and build up potential holes until there's a suitable one, and then only evict those buffers. Which means if you have a certain range of memory under very high pressure (e.g. the 256M which uvd can use or whatever it is), then you wont thrash all the other vram too. Cheers, Daniel > --- > drivers/gpu/drm/ttm/ttm_bo_manager.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/ttm/ttm_bo_manager.c b/drivers/gpu/drm/ttm/ttm_bo_manager.c > index 1e93f6c..aa0bd05 100644 > --- a/drivers/gpu/drm/ttm/ttm_bo_manager.c > +++ b/drivers/gpu/drm/ttm/ttm_bo_manager.c > @@ -69,7 +69,7 @@ static int ttm_bo_man_get_node(struct ttm_mem_type_manager *man, > return -ENOMEM; > > if (place->flags & TTM_PL_FLAG_TOPDOWN) { > - sflags |= DRM_MM_SEARCH_BELOW; > + sflags = DRM_MM_SEARCH_BELOW; > aflags = DRM_MM_CREATE_TOP; > } > > -- > 2.1.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel