linux_dsm_epyc7002/drivers/net/ethernet/broadcom/bnx2x
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_cmn.c bnx2x: Alloc 4k fragment for each rx ring buffer element 2015-06-01 15:56:42 -07:00
bnx2x_cmn.h bnx2x: Alloc 4k fragment for each rx ring buffer element 2015-06-01 15:56:42 -07:00
bnx2x_dcb.c bnx2x: Code cleanup 2014-08-22 12:31:15 -07:00
bnx2x_dcb.h
bnx2x_dump.h bnx2x: ethtool -d might cause timeout in log 2014-08-25 17:30:21 -07:00
bnx2x_ethtool.c bnx2x: Prevent inner-reload while VFs exist 2015-04-22 14:23:31 -04:00
bnx2x_fw_defs.h bnx2x: Utilize FW 7.10.51 2014-08-22 12:31:15 -07:00
bnx2x_fw_file_hdr.h
bnx2x_hsi.h bnx2x: Count number of link changes 2015-03-31 13:34:10 -04:00
bnx2x_init_ops.h
bnx2x_init.h ethernet: codespell comment spelling fixes 2015-03-08 22:54:22 -04:00
bnx2x_link.c bnx2x: Count number of link changes 2015-03-31 13:34:10 -04:00
bnx2x_link.h bnx2x: Fix link problems for 1G SFP RJ45 module 2014-09-05 17:28:37 -07:00
bnx2x_main.c bnx2x: limit fw delay in kdump to 5s after boot 2015-05-10 19:23:22 -04:00
bnx2x_mfw_req.h
bnx2x_reg.h bnx2x: Configure IFir et al. according to nvram 2015-03-31 13:34:10 -04:00
bnx2x_sp.c bnx2x: Use correct fastpath version for VFs. 2014-12-09 14:29:10 -05:00
bnx2x_sp.h bnx2x: Use correct fastpath version for VFs. 2014-12-09 14:29:10 -05:00
bnx2x_sriov.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2015-04-15 09:00:47 -07:00
bnx2x_sriov.h bnx2x: Use correct fastpath version for VFs. 2014-12-09 14:29:10 -05:00
bnx2x_stats.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-02 16:16:53 -04:00
bnx2x_stats.h bnx2x: Fix statistics locking scheme 2015-03-23 22:38:24 -04:00
bnx2x_vfpf.c bnx2x: merge fp->disable_tpa with fp->mode 2015-04-29 14:48:35 -04:00
bnx2x_vfpf.h bnx2x: Use correct fastpath version for VFs. 2014-12-09 14:29:10 -05:00
bnx2x.h bnx2x: Alloc 4k fragment for each rx ring buffer element 2015-06-01 15:56:42 -07:00
Makefile