All of lore.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.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=jackm@dev.mellanox.com \
    --cc=netdev@vger.kernel.org \
    --cc=ogerlitz@mellanox.com \
    --cc=yevgenyp@mellanox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.