On 05/29/2018 11:44 PM, Eric Dumazet wrote:
And I will add this simple fix, this really should address your initial concern much better.and also gfp_mask &= ~__GFP_DIRECT_RECLAIM
@@ -99,6 +100,8 @@ static int mlx4_alloc_icm_pages(struct scatterlist *mem, int order,
{
struct page *page;
+ if (order)
+ gfp_mask |= __GFP_NORETRY;
page = alloc_pages_node(node, gfp_mask, order);
if (!page) {
page = alloc_pages(gfp_mask, order);