From: Eric Dumazet <eric.dumazet@gmail.com>
To: Rafael Aquini <aquini@redhat.com>, Roland Dreier <roland@kernel.org>
Cc: Ben Greear <greearb@candelatech.com>,
Francois Romieu <romieu@fr.zoreil.com>,
atomlin@redhat.com, netdev@vger.kernel.org, davem@davemloft.net,
edumazet@google.com, pshelar@nicira.com, mst@redhat.com,
alexander.h.duyck@intel.com, riel@redhat.com,
sergei.shtylyov@cogentembedded.com, linux-kernel@vger.kernel.org
Subject: Re: [Patch v2] skbuff: Hide GFP_ATOMIC page allocation failures for dropped packets
Date: Tue, 28 May 2013 11:03:20 -0700 [thread overview]
Message-ID: <1369764200.3301.551.camel@edumazet-glaptop> (raw)
In-Reply-To: <20130528174304.GD11614@optiplex.redhat.com>
On Tue, 2013-05-28 at 14:43 -0300, Rafael Aquini wrote:
> Perhaps the explanation is because we're looking into old stuff bad effects,
> then. But just to list a few for your appreciation:
> --------------------------------------------------------
> Apr 23 11:25:31 217-IDC kernel: httpd: page allocation failure. order:1,
> mode:0x20 Apr 23 11:25:31 217-IDC kernel: Pid: 19747, comm: httpd Not tainted
> 2.6.32-358.2.1.el6.x86_64 #1 Apr 23 11:25:31 217-IDC kernel: Call Trace: Apr 23
> 11:25:31 217-IDC kernel: <IRQ> [<ffffffff8112c207>] ?
> __alloc_pages_nodemask+0x757/0x8d0 Apr 23 11:25:31 217-IDC kernel:
> [<ffffffffa0337361>] ? bond_start_xmit+0x2f1/0x5d0 [bonding]
> ....
> --------------------------------------------------------
> Apr 4 18:51:32 exton kernel: swapper: page allocation failure. order:1,
> mode:0x20
> Apr 4 18:51:32 exton kernel: Pid: 0, comm: swapper Not tainted
> 2.6.32-279.19.1.el6.x86_64 #1
> Apr 4 18:51:32 exton kernel: Call Trace:
> Apr 4 18:51:32 exton kernel: <IRQ> [<ffffffff811231ff>] ?
> __alloc_pages_nodemask+0x77f/0x940
> Apr 4 18:51:32 exton kernel: [<ffffffff8115d1a2>] ? kmem_getpages+0x62/0x170
> Apr 4 18:51:32 exton kernel: [<ffffffff8115ddba>] ? fallback_alloc+0x1ba/0x270
> Apr 4 18:51:32 exton kernel: [<ffffffff8115d80f>] ? cache_grow+0x2cf/0x320
> Apr 4 18:51:32 exton kernel: [<ffffffff8115db39>] ?
> ____cache_alloc_node+0x99/0x160
> Apr 4 18:51:32 exton kernel: [<ffffffff8115ed00>] ?
> kmem_cache_alloc_node_trace+0x90/0x200
> Apr 4 18:51:32 exton kernel: [<ffffffff8115ef1d>] ? __kmalloc_node+0x4d/0x60
> Apr 4 18:51:32 exton kernel: [<ffffffff8141ea1d>] ? __alloc_skb+0x6d/0x190
> Apr 4 18:51:32 exton kernel: [<ffffffff8141eb5d>] ? dev_alloc_skb+0x1d/0x40
> Apr 4 18:51:32 exton kernel: [<ffffffffa04f5f50>] ?
> ipoib_cm_alloc_rx_skb+0x30/0x430 [ib_ipoib]
> Apr 4 18:51:32 exton kernel: [<ffffffffa04f71ef>] ?
> ipoib_cm_handle_rx_wc+0x29f/0x770 [ib_ipoib]
> Apr 4 18:51:32 exton kernel: [<ffffffffa03c6a46>] ? mlx4_ib_poll_cq+0x2c6/0x7f0
> [mlx4_ib]
> ....
> ----
This one seems a real bug/problem in
drivers/infiniband/ulp/ipoib/ipoib_cm.c
It uses :
IPOIB_CM_HEAD_SIZE = IPOIB_CM_BUF_SIZE % PAGE_SIZE,
IPOIB_CM_RX_SG = ALIGN(IPOIB_CM_BUF_SIZE, PAGE_SIZE) /
PAGE_SIZE,
but then, ipoib_cm_alloc_rx_skb() does :
skb = dev_alloc_skb(IPOIB_CM_HEAD_SIZE + 12);
so really asking more than one page for the first frag (skb->head),
while the intent of the code was to use order-0 allocations.
for (i = 0; i < frags; i++) {
struct page *page = alloc_page(GFP_ATOMIC);
....
Ideally, IPOIB_CM_HEAD_SIZE should be redefined to use
SKB_MAX_HEAD(NET_SKB_PAD + 12)
so that skb->head would use exactly oder-0 page, not order-1 one.
Do you know understand why we should not hide allocation errors ?
next prev parent reply other threads:[~2013-05-28 18:03 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-26 20:45 [Patch v2] skbuff: Hide GFP_ATOMIC page allocation failures for dropped packets atomlin
2013-05-27 18:18 ` Rafael Aquini
2013-05-27 22:41 ` Francois Romieu
2013-05-28 16:00 ` Ben Greear
2013-05-28 16:15 ` Rafael Aquini
2013-05-28 16:19 ` Ben Greear
2013-05-28 16:29 ` Eric Dumazet
2013-05-28 17:43 ` Rafael Aquini
2013-05-28 17:46 ` Eric Dumazet
2013-05-28 18:03 ` Eric Dumazet [this message]
2013-05-28 18:19 ` Joe Perches
2013-05-28 21:32 ` Rik van Riel
2013-05-28 17:29 ` Joe Perches
2013-05-28 21:30 ` Rik van Riel
-- strict thread matches above, loose matches on Subject: below --
2013-05-26 20:19 atomlin
2013-05-27 17:39 ` Rik van Riel
2013-05-27 22:25 ` Eric Dumazet
2013-05-28 4:31 ` Joe Perches
2013-05-28 6:04 ` Eric Dumazet
2013-05-28 6:08 ` Joe Perches
2013-05-28 17:15 ` Debabrata Banerjee
2013-05-29 7:36 ` Rik van Riel
2013-05-27 17:56 ` Sergei Shtylyov
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=1369764200.3301.551.camel@edumazet-glaptop \
--to=eric.dumazet@gmail.com \
--cc=alexander.h.duyck@intel.com \
--cc=aquini@redhat.com \
--cc=atomlin@redhat.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=greearb@candelatech.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pshelar@nicira.com \
--cc=riel@redhat.com \
--cc=roland@kernel.org \
--cc=romieu@fr.zoreil.com \
--cc=sergei.shtylyov@cogentembedded.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox