diff options
Diffstat (limited to 'drivers/gpu/drm/ttm')
| -rw-r--r-- | drivers/gpu/drm/ttm/ttm_page_alloc.c | 11 | ||||
| -rw-r--r-- | drivers/gpu/drm/ttm/ttm_page_alloc_dma.c | 3 | 
2 files changed, 10 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c index f0481b7b60c5..06c94e3a5f15 100644 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c @@ -910,7 +910,8 @@ static int ttm_get_pages(struct page **pages, unsigned npages, int flags,  			while (npages >= HPAGE_PMD_NR) {  				gfp_t huge_flags = gfp_flags; -				huge_flags |= GFP_TRANSHUGE; +				huge_flags |= GFP_TRANSHUGE_LIGHT | __GFP_NORETRY | +					__GFP_KSWAPD_RECLAIM;  				huge_flags &= ~__GFP_MOVABLE;  				huge_flags &= ~__GFP_COMP;  				p = alloc_pages(huge_flags, HPAGE_PMD_ORDER); @@ -1027,11 +1028,15 @@ int ttm_page_alloc_init(struct ttm_mem_global *glob, unsigned max_pages)  				  GFP_USER | GFP_DMA32, "uc dma", 0);  	ttm_page_pool_init_locked(&_manager->wc_pool_huge, -				  GFP_TRANSHUGE	& ~(__GFP_MOVABLE | __GFP_COMP), +				  (GFP_TRANSHUGE_LIGHT | __GFP_NORETRY | +				   __GFP_KSWAPD_RECLAIM) & +				  ~(__GFP_MOVABLE | __GFP_COMP),  				  "wc huge", order);  	ttm_page_pool_init_locked(&_manager->uc_pool_huge, -				  GFP_TRANSHUGE	& ~(__GFP_MOVABLE | __GFP_COMP) +				  (GFP_TRANSHUGE_LIGHT | __GFP_NORETRY | +				   __GFP_KSWAPD_RECLAIM) & +				  ~(__GFP_MOVABLE | __GFP_COMP)  				  , "uc huge", order);  	_manager->options.max_size = max_pages; diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c index 8a25d1974385..f63d99c302e4 100644 --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c @@ -910,7 +910,8 @@ static gfp_t ttm_dma_pool_gfp_flags(struct ttm_dma_tt *ttm_dma, bool huge)  		gfp_flags |= __GFP_ZERO;  	if (huge) { -		gfp_flags |= GFP_TRANSHUGE; +		gfp_flags |= GFP_TRANSHUGE_LIGHT | __GFP_NORETRY | +			__GFP_KSWAPD_RECLAIM;  		gfp_flags &= ~__GFP_MOVABLE;  		gfp_flags &= ~__GFP_COMP;  	} |