diff mbox

[v1] skbuff: Hide GFP_ATOMIC page allocation failures for dropped packets

Message ID 1369574241-21397-1-git-send-email-atomlin@redhat.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Aaron Tomlin May 26, 2013, 1:17 p.m. UTC
From: Aaron Tomlin <atomlin@redhat.com>

Failed GFP_ATOMIC allocations by the network stack result in dropped
packets, which will be received on a subsequent retransmit, and an
unnecessary, noisy warning with a kernel backtrace.

These warnings are harmless, but they still cause users to panic and
file bug reports over dropped packets. It would be better to hide the
failed allocation warnings and backtraces, and let retransmits handle
dropped packets quietly.

Signed-off-by: Aaron Tomlin <atomlin@redhat.com>
---
 net/core/skbuff.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Sergei Shtylyov May 26, 2013, 4:28 p.m. UTC | #1
Hello.

On 26-05-2013 17:17, atomlin@redhat.com wrote:

> From: Aaron Tomlin <atomlin@redhat.com>

> Failed GFP_ATOMIC allocations by the network stack result in dropped
> packets, which will be received on a subsequent retransmit, and an
> unnecessary, noisy warning with a kernel backtrace.

> These warnings are harmless, but they still cause users to panic and
> file bug reports over dropped packets. It would be better to hide the
> failed allocation warnings and backtraces, and let retransmits handle
> dropped packets quietly.

> Signed-off-by: Aaron Tomlin <atomlin@redhat.com>
> ---
>   net/core/skbuff.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
> index af9185d..02139d6 100644
> --- a/net/core/skbuff.c
> +++ b/net/core/skbuff.c
> @@ -236,7 +236,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
>   		? skbuff_fclone_cache : skbuff_head_cache;
>
>   	if (sk_memalloc_socks() && (flags & SKB_ALLOC_RX))
> -		gfp_mask |= __GFP_MEMALLOC;
> +		gfp_mask |= (__GFP_MEMALLOC|__GFP_NOWARN);

    Parens not needed here.

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Joe Perches May 26, 2013, 10 p.m. UTC | #2
On Sun, 2013-05-26 at 20:28 +0400, Sergei Shtylyov wrote:
> On 26-05-2013 17:17, atomlin@redhat.com wrote:
> > Failed GFP_ATOMIC allocations by the network stack result in dropped
> > packets, which will be received on a subsequent retransmit, and an
> > unnecessary, noisy warning with a kernel backtrace.
> 
> > These warnings are harmless, but they still cause users to panic and
> > file bug reports over dropped packets. It would be better to hide the
> > failed allocation warnings and backtraces, and let retransmits handle
> > dropped packets quietly.

> > diff --git a/net/core/skbuff.c b/net/core/skbuff.c
[]
> > @@ -236,7 +236,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
> >   		? skbuff_fclone_cache : skbuff_head_cache;
> >
> >   	if (sk_memalloc_socks() && (flags & SKB_ALLOC_RX))
> > -		gfp_mask |= __GFP_MEMALLOC;
> > +		gfp_mask |= (__GFP_MEMALLOC|__GFP_NOWARN);
> 
>     Parens not needed here.

Maybe add a pr_debug before the goto out instead.


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Sergei Shtylyov May 27, 2013, 5:53 p.m. UTC | #3
Hello.

On 26-05-2013 20:28, Sergei Shtylyov wrote:

>> From: Aaron Tomlin <atomlin@redhat.com>

>> Failed GFP_ATOMIC allocations by the network stack result in dropped
>> packets, which will be received on a subsequent retransmit, and an
>> unnecessary, noisy warning with a kernel backtrace.

>> These warnings are harmless, but they still cause users to panic and
>> file bug reports over dropped packets. It would be better to hide the
>> failed allocation warnings and backtraces, and let retransmits handle
>> dropped packets quietly.

>> Signed-off-by: Aaron Tomlin <atomlin@redhat.com>
>> ---
>>   net/core/skbuff.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)

>> diff --git a/net/core/skbuff.c b/net/core/skbuff.c
>> index af9185d..02139d6 100644
>> --- a/net/core/skbuff.c
>> +++ b/net/core/skbuff.c
>> @@ -236,7 +236,7 @@ struct sk_buff *__alloc_skb(unsigned int size,
>> gfp_t gfp_mask,
>>           ? skbuff_fclone_cache : skbuff_head_cache;
>>
>>       if (sk_memalloc_socks() && (flags & SKB_ALLOC_RX))
>> -        gfp_mask |= __GFP_MEMALLOC;
>> +        gfp_mask |= (__GFP_MEMALLOC|__GFP_NOWARN);

>     Parens not needed here.

    And add spaces around | please, to be consistent with other code.

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index af9185d..02139d6 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -236,7 +236,7 @@  struct sk_buff *__alloc_skb(unsigned int size, gfp_t gfp_mask,
 		? skbuff_fclone_cache : skbuff_head_cache;
 
 	if (sk_memalloc_socks() && (flags & SKB_ALLOC_RX))
-		gfp_mask |= __GFP_MEMALLOC;
+		gfp_mask |= (__GFP_MEMALLOC|__GFP_NOWARN);
 
 	/* Get the HEAD */
 	skb = kmem_cache_alloc_node(cache, gfp_mask & ~__GFP_DMA, node);