Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp4050421imm; Tue, 29 May 2018 20:45:24 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKwsf2wk6qKo4pwNaYcJ6uuWpVoixtpy+KR5DEOsSQJsRS5CVb7CWEBcx9KprZC7/K35dD4 X-Received: by 2002:a62:883:: with SMTP id 3-v6mr1134224pfi.154.1527651924885; Tue, 29 May 2018 20:45:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527651924; cv=none; d=google.com; s=arc-20160816; b=SN0QqMh1oBoK4EQLBoF+4sE1XFF5GsV5Tptg7SBtvhAl326i98HrjB90m2cw3g+5Ux AF8DKXldmp1NuzILO3c6eRLpvZQCxeAvy57R4PJc+mZwx72N/0PgQxMsATpJOtgdsQR2 09S2EfOYNZjng84j+GRGqCZeC4vZQU6hhgufTQxzCx2Mnlj6tlY6dMoxIl1DganwvCd0 fpyXBy+d7WnBHsjD209lucAsv5ha/Shzx7M8sGme+KvH8MGmGY1UD/I1mvvyZYIQxyHu ewdRMCXe7gyI7kfKHKqKDvvKKf5geX6dvcEtPFmZ3t6NWyHcU1rnaoWuVvortM3ymAw3 Q9gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=o/fhAsf4AzLIeZ6NUkVMdTRH/a7U/lBhKJUVl9OtgI4=; b=egPJKp0d3z7dejRovd1UqJ3Cw4AkB7hjXErdL2tgW7X8tLsCr+bwCmL3JyY38deU2Z OEpa6btgklnR5YTJiNNQ9hxUpiu7GkjPsWMEEalryo/+VRObWmI35EDwAsXAFBaePECd dbr5ALWgfYDJfDVQk75DemQX7KZ/PxY0E8R60SKb4v+7xMVg9jPjbjxc6QJkoA7szkMW g3NGYE+PUQ45eZVklk/VnV0+4SqayNa3zkXdTBW/zt3neUvuQJ1lbVj55M9cd12Im8vn 7vssVwVvR+P4RYiicDt1zHz++1/OsVE60Mr8CzMQ744IypB1DgdQFyVan4Aze/ha+nzv J0eQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=YL2c8eo3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h12-v6si11959236plk.535.2018.05.29.20.45.10; Tue, 29 May 2018 20:45:24 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=YL2c8eo3; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754940AbeE3Dom (ORCPT + 99 others); Tue, 29 May 2018 23:44:42 -0400 Received: from mail-pl0-f65.google.com ([209.85.160.65]:40183 "EHLO mail-pl0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751782AbeE3Doj (ORCPT ); Tue, 29 May 2018 23:44:39 -0400 Received: by mail-pl0-f65.google.com with SMTP id t12-v6so10205195plo.7; Tue, 29 May 2018 20:44:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=o/fhAsf4AzLIeZ6NUkVMdTRH/a7U/lBhKJUVl9OtgI4=; b=YL2c8eo38MxMHd8YRGJMECSlWBTtFYZFBPA9p0n8XrIJqsczkFe7FSu6kGY6MiYkde oHEzdp928kKRNb/3FGM2n9xfNX8gnS5sWiHGtLVeGTe+kIj4Brj6HK02TWSY2rVbEQ9W UlELSh08vr9fXEd+BMF7pX1djd0Wqg8l6KVLBY0FDXF3akb3EiGHcv+vCFctvDexoHm3 B+ZhP5kih9MN6kbrIDH1ql7K1v2ae2DiVoeA26u6kk9OFOdfRG2Y2l2xSQ1canDntN6L HGXZsmmeVnX4hVMTv7g4VKxs/rFKCh5nyVie17QB83wcv1vtbAhsogWiTnDv7cYhfpFx IewQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=o/fhAsf4AzLIeZ6NUkVMdTRH/a7U/lBhKJUVl9OtgI4=; b=fHnb7TtI4bnLgG6uwcFdXeAAGCUma7inHPGec1aCprJnp1hSEitD02RvzHLocI+Nco Bfk9VZXSp4Kga3NsWjiBc99bgEpyUBkWkrACHTcw5hQrso/uTHU2LqraR7pjBbv6cBEz GQdzER118A5bszA4rcfsQQHNpysy/mb2TuaPakRIvwKoOlXxJ8fDdtvhF0HD6+HRAxSN vlA+ruLdnoiq7enYnGpwott380M8PzrcuYkbRU2Od4gmf6+1OpmIq3mMrj2GNH30jHe6 rLygmrxhluds7CzSlbP8zeyOMvivGyBQJOXDR415bu+5sW2hWomH17lmRnCrCPHvevoe eMgg== X-Gm-Message-State: ALKqPwc6rYldOyJWH8/ZBuJ1HPhY85hGF+ezagmgIC497U0vL2/CocHw Ae+O32uInG1FP994B8nVq1bN5D0l X-Received: by 2002:a17:902:d68b:: with SMTP id v11-v6mr1157277ply.16.1527651878569; Tue, 29 May 2018 20:44:38 -0700 (PDT) Received: from [10.246.221.134] ([50.234.174.228]) by smtp.gmail.com with ESMTPSA id o88-v6sm91723899pfa.29.2018.05.29.20.44.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 29 May 2018 20:44:37 -0700 (PDT) Subject: Re: [PATCH V4] mlx4_core: allocate ICM memory in page size chunks To: Eric Dumazet , David Miller , qing.huang@oracle.com Cc: tariqt@mellanox.com, haakon.bugge@oracle.com, yanjun.zhu@oracle.com, netdev@vger.kernel.org, linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org, gi-oh.kim@profitbricks.com References: <20180523232246.20445-1-qing.huang@oracle.com> <20180525.102321.858995452200286788.davem@davemloft.net> <7a353b65-6b7f-1aee-1c48-e83c8e02f693@gmail.com> From: Eric Dumazet Message-ID: <0e11e0fc-6ccf-aa93-9c4f-b9eae1b90643@gmail.com> Date: Tue, 29 May 2018 23:44:35 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <7a353b65-6b7f-1aee-1c48-e83c8e02f693@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/29/2018 11:34 PM, Eric Dumazet wrote: > I will test : > > diff --git a/drivers/net/ethernet/mellanox/mlx4/icm.c b/drivers/net/ethernet/mellanox/mlx4/icm.c > index 685337d58276fc91baeeb64387c52985e1bc6dda..4d2a71381acb739585d662175e86caef72338097 100644 > --- a/drivers/net/ethernet/mellanox/mlx4/icm.c > +++ b/drivers/net/ethernet/mellanox/mlx4/icm.c > @@ -43,12 +43,13 @@ > #include "fw.h" > > /* > - * We allocate in page size (default 4KB on many archs) chunks to avoid high > - * order memory allocations in fragmented/high usage memory situation. > + * We allocate in as big chunks as we can, up to a maximum of 256 KB > + * per chunk. Note that the chunks are not necessarily in contiguous > + * physical memory. > */ > enum { > - MLX4_ICM_ALLOC_SIZE = PAGE_SIZE, > - MLX4_TABLE_CHUNK_SIZE = PAGE_SIZE, > + MLX4_ICM_ALLOC_SIZE = 1 << 18, > + MLX4_TABLE_CHUNK_SIZE = 1 << 18 > }; > > static void mlx4_free_icm_pages(struct mlx4_dev *dev, struct mlx4_icm_chunk *chunk) > And I will add this simple fix, this really should address your initial concern much better. @@ -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);