linux_dsm_epyc7002/drivers/net/ethernet/broadcom
Gabriel Krisman Bertazi 4cace675d6 bnx2x: Alloc 4k fragment for each rx ring buffer element
The driver allocates one page for each buffer on the rx ring, which is
too much on architectures like ppc64 and can cause unexpected allocation
failures when the system is under stress.  Now, we keep a memory pool
per queue, and if the architecture's PAGE_SIZE is greater than 4k, we
fragment pages and assign each 4k segment to a ring element, which
reduces the overall memory consumption on such architectures.  This
helps avoiding errors like the example below:

[bnx2x_alloc_rx_sge:435(eth1)]Can't alloc sge
[c00000037ffeb900] [d000000075eddeb4] .bnx2x_alloc_rx_sge+0x44/0x200 [bnx2x]
[c00000037ffeb9b0] [d000000075ee0b34] .bnx2x_fill_frag_skb+0x1ac/0x460 [bnx2x]
[c00000037ffebac0] [d000000075ee11f0] .bnx2x_tpa_stop+0x160/0x2e8 [bnx2x]
[c00000037ffebb90] [d000000075ee1560] .bnx2x_rx_int+0x1e8/0xc30 [bnx2x]
[c00000037ffebcd0] [d000000075ee2084] .bnx2x_poll+0xdc/0x3d8 [bnx2x] (unreliable)

Signed-off-by: Gabriel Krisman Bertazi <krisman@linux.vnet.ibm.com>
Acked-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Reviewed-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-06-01 15:56:42 -07:00
..
bnx2x bnx2x: Alloc 4k fragment for each rx ring buffer element 2015-06-01 15:56:42 -07:00
genet net: bcmgenet: enable MoCA link state change detection 2015-04-01 13:40:18 -04:00
b44.c MIPS: BCM47xx: Move NVRAM header to the include/linux/. 2015-04-01 17:22:00 +02:00
b44.h
bcm63xx_enet.c bcm63xx_enet: fix poll callback. 2015-03-04 15:44:52 -05:00
bcm63xx_enet.h
bcmsysport.c net: systemport: Add a check for oversized packets 2015-05-30 23:51:25 -07:00
bcmsysport.h net: systemport: Pre-calculate and utilize cb->bd_addr 2015-05-30 23:51:09 -07:00
bgmac.c bgmac: fix requests for extra polling calls from NAPI 2015-04-24 11:31:27 -04:00
bgmac.h bgmac: drop ring->num_slots 2015-04-14 14:57:11 -04:00
bnx2_fw.h bnx2-cnic: Driver Rebranding Changes 2015-02-20 15:46:49 -05:00
bnx2.c bnx2: disable toggling of rxvlan if necessary 2015-03-01 23:25:51 -05:00
bnx2.h bnx2-cnic: Driver Rebranding Changes 2015-02-20 15:46:49 -05:00
cnic_defs.h
cnic_if.h bnx2-cnic: Driver Version Update 2015-02-20 15:46:49 -05:00
cnic.c bnx2-cnic: Driver Rebranding Changes 2015-02-20 15:46:49 -05:00
cnic.h
Kconfig bgmac: allow enabling on ARCH_BCM_5301X 2015-03-20 21:44:56 -04:00
Makefile
sb1250-mac.c net: ethernet: broadcom: drop owner assignment from platform_drivers 2014-10-20 16:21:05 +02:00
tg3.c bnx2x, tg3: Replace put_page(virt_to_head_page()) with skb_free_frag() 2015-05-12 10:39:27 -04:00
tg3.h