public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Amir Vadai <amirv@mellanox•com>
To: Eric Dumazet <eric.dumazet@gmail•com>
Cc: "David S. Miller" <davem@davemloft•net>, <netdev@vger•kernel.org>,
	Or Gerlitz <ogerlitz@mellanox•com>,
	Yevgeny Petrilin <yevgenyp@mellanox•com>,
	Jack Morgenstein <jackm@dev•mellanox.com>
Subject: Re: [PATCH net-next 01/11] net/mlx4_en: Suppress page allocation failure warnings
Date: Sun, 23 Jun 2013 11:46:58 +0300	[thread overview]
Message-ID: <51C6B602.20703@mellanox.com> (raw)
In-Reply-To: <1371763689.3252.419.camel@edumazet-glaptop>

On 21/06/2013 00:28, Eric Dumazet wrote:
> On Thu, 2013-06-20 at 22:40 +0300, Amir Vadai wrote:
>> From: Yevgeny Petrilin <yevgenyp@mellanox•com>
>>
>> When system is low on resources, those warnings hang the host.
>>
>> Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox•com>
>> Signed-off-by: Jack Morgenstein <jackm@dev•mellanox.com>
>> Signed-off-by: Amir Vadai <amirv@mellanox•com>
>> ---
>>  drivers/net/ethernet/mellanox/mlx4/en_rx.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
>> index 9c57581..2b564ac 100644
>> --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c
>> +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
>> @@ -57,8 +57,8 @@ static int mlx4_en_alloc_frags(struct mlx4_en_priv *priv,
>>  	for (i = 0; i < priv->num_frags; i++) {
>>  		frag_info = &priv->frag_info[i];
>>  		if (ring_alloc[i].offset == frag_info->last_offset) {
>> -			page = alloc_pages(GFP_ATOMIC | __GFP_COMP,
>> -					MLX4_EN_ALLOC_ORDER);
>> +			page = alloc_pages(GFP_ATOMIC | __GFP_COMP |
>> +					   __GFP_NOWARN, MLX4_EN_ALLOC_ORDER);
>>  			if (!page)
>>  				goto out;
>>  			dma = dma_map_page(priv->ddev, page, 0,
> 
> 
> Thats IMHO a lazy patch...
> 
> What about mlx4_en_init_allocator() ?
mlx4_en_init_allocator() is called only on driver initialization - I
don't care if it will warn when no memory.
But mlx4_en_alloc_frags() is on the data path, and many warnings there
when the system is already stressed and without memory is bad.
Besides the warnings, this error flow is handled, and
mlx4_en_en_fill_rx_buffers() will handle the ENOMEM.

> 
> I think I did a patch doing fallback to order-1 and order-0 allocations
Current code has, as I said above, a fallback to reduce the rx ring size
when memory is stressed. Do you suggest to use smaller fragments instead
(or in addition)?
Can you send me a link to the patch?


Thanks,
Amir

  parent reply	other threads:[~2013-06-23  8:47 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-20 19:40 [PATCH net-next 00/11] Mellanox driver updates 2013-06-20 Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 01/11] net/mlx4_en: Suppress page allocation failure warnings Amir Vadai
2013-06-20 21:28   ` Eric Dumazet
2013-06-21  5:35     ` Amir Vadai
2013-06-23  8:46     ` Amir Vadai [this message]
2013-06-23 15:14       ` Eric Dumazet
2013-06-23 15:17       ` [PATCH net-next] mlx4: allow order-0 memory allocations in RX path Eric Dumazet
2013-06-23 20:17         ` Or Gerlitz
2013-06-23 21:13           ` Eric Dumazet
2013-06-24 14:10             ` Or Gerlitz
2013-06-24 14:09         ` Or Gerlitz
2013-06-25  8:53         ` Or Gerlitz
2013-06-25 23:19           ` David Miller
2013-06-20 19:40 ` [PATCH net-next 02/11] net/mlx4_en: Fix resource leak in error flow Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 03/11] net/mlx4_en: Do not query stats when device port is down Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 04/11] net/mlx4_en: Move register_netdev() to the end of initialization function Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 05/11] net/mlx4_en: Change log level from error to debug for vlan related messages Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 06/11] net/mlx4_en: Fix a race between napi poll function and RX ring cleanup Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 07/11] net/mlx4_en: Add prints when TX timeout occurs Amir Vadai
2013-06-20 19:55   ` Joe Perches
2013-06-21  5:31     ` Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 08/11] net/mlx4_en: Remove an unnecessary test Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 09/11] net/mlx4_core: Replace sscanf() with kstrtoint() Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 10/11] net/mlx4_core: Add warning in case of command timeouts Amir Vadai
2013-06-20 19:40 ` [PATCH net-next 11/11] net/mlx4_core: Fail device init if num_vfs is negative Amir Vadai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51C6B602.20703@mellanox.com \
    --to=amirv@mellanox$(echo .)com \
    --cc=davem@davemloft$(echo .)net \
    --cc=eric.dumazet@gmail$(echo .)com \
    --cc=jackm@dev$(echo .)mellanox.com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=ogerlitz@mellanox$(echo .)com \
    --cc=yevgenyp@mellanox$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox