Revision c0cf4512a31eb3cec70b066bc36ed55f7d05b8c0 authored by Bart Van Assche on 23 June 2016, 07:35:48 UTC, committed by Doug Ledford on 23 June 2016, 16:04:09 UTC
The memory needed for the send and receive queues associated with a QP is proportional to the max_sge parameter. The current value of that parameter is such that with an mlx4 HCA the QP buffer size is 8 MB. Since DMA is used for communication between HCA and CPU that buffer either has to be allocated coherently or map_single() must succeed for that buffer. Since large contiguous allocations are fragile and since the maximum segment size for e.g. swiotlb is 256 KB, reduce the max_sge parameter. This patch avoids that the following text appears on the console after SRP logout and relogin on a system equipped with multiple IB HCAs: mlx4_core 0000:05:00.0: swiotlb buffer is full (sz: 8388608 bytes) swiotlb: coherent allocation failed for device 0000:05:00.0 size=8388608 CPU: 11 PID: 148 Comm: kworker/11:1 Not tainted 4.7.0-rc4-dbg+ #1 Call Trace: [<ffffffff812c6d35>] dump_stack+0x67/0x92 [<ffffffff812efe71>] swiotlb_alloc_coherent+0x141/0x150 [<ffffffff810458be>] x86_swiotlb_alloc_coherent+0x3e/0x50 [<ffffffffa03861fa>] mlx4_buf_direct_alloc.isra.5+0x9a/0x120 [mlx4_core] [<ffffffffa0386545>] mlx4_buf_alloc+0x165/0x1a0 [mlx4_core] [<ffffffffa035053d>] create_qp_common.isra.29+0x57d/0xff0 [mlx4_ib] [<ffffffffa03510da>] mlx4_ib_create_qp+0x12a/0x3f0 [mlx4_ib] [<ffffffffa031154a>] ib_create_qp+0x3a/0x250 [ib_core] [<ffffffffa055dd4b>] srpt_cm_handler+0x4bb/0xcad [ib_srpt] [<ffffffffa02c1ab0>] cm_process_work+0x20/0xf0 [ib_cm] [<ffffffffa02c3640>] cm_work_handler+0x1ac0/0x2059 [ib_cm] [<ffffffff810737ed>] process_one_work+0x19d/0x490 [<ffffffff81073b29>] worker_thread+0x49/0x490 [<ffffffff8107a0ea>] kthread+0xea/0x100 [<ffffffff815b25af>] ret_from_fork+0x1f/0x40 Fixes: b99f8e4d7bcd ("IB/srpt: convert to the generic RDMA READ/WRITE API") Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Cc: Laurence Oberman <loberman@redhat.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Doug Ledford <dledford@redhat.com>
1 parent 37e07cd
File | Mode | Size |
---|---|---|
netfilter | ||
Kconfig | -rw-r--r-- | 23.6 KB |
Makefile | -rw-r--r-- | 2.4 KB |
af_inet.c | -rw-r--r-- | 46.6 KB |
ah4.c | -rw-r--r-- | 13.5 KB |
arp.c | -rw-r--r-- | 34.9 KB |
cipso_ipv4.c | -rw-r--r-- | 62.8 KB |
datagram.c | -rw-r--r-- | 3.2 KB |
devinet.c | -rw-r--r-- | 59.9 KB |
esp4.c | -rw-r--r-- | 17.3 KB |
fib_frontend.c | -rw-r--r-- | 31.0 KB |
fib_lookup.h | -rw-r--r-- | 1.3 KB |
fib_rules.c | -rw-r--r-- | 8.2 KB |
fib_semantics.c | -rw-r--r-- | 37.9 KB |
fib_trie.c | -rw-r--r-- | 64.0 KB |
fou.c | -rw-r--r-- | 22.3 KB |
gre_demux.c | -rw-r--r-- | 4.3 KB |
gre_offload.c | -rw-r--r-- | 7.2 KB |
icmp.c | -rw-r--r-- | 29.0 KB |
igmp.c | -rw-r--r-- | 71.3 KB |
inet_connection_sock.c | -rw-r--r-- | 26.7 KB |
inet_diag.c | -rw-r--r-- | 28.0 KB |
inet_fragment.c | -rw-r--r-- | 10.3 KB |
inet_hashtables.c | -rw-r--r-- | 18.4 KB |
inet_timewait_sock.c | -rw-r--r-- | 8.9 KB |
inetpeer.c | -rw-r--r-- | 15.9 KB |
ip_forward.c | -rw-r--r-- | 3.9 KB |
ip_fragment.c | -rw-r--r-- | 21.1 KB |
ip_gre.c | -rw-r--r-- | 31.8 KB |
ip_input.c | -rw-r--r-- | 14.5 KB |
ip_options.c | -rw-r--r-- | 15.1 KB |
ip_output.c | -rw-r--r-- | 39.5 KB |
ip_sockglue.c | -rw-r--r-- | 35.7 KB |
ip_tunnel.c | -rw-r--r-- | 25.8 KB |
ip_tunnel_core.c | -rw-r--r-- | 11.9 KB |
ip_vti.c | -rw-r--r-- | 14.4 KB |
ipcomp.c | -rw-r--r-- | 4.6 KB |
ipconfig.c | -rw-r--r-- | 39.7 KB |
ipip.c | -rw-r--r-- | 15.1 KB |
ipmr.c | -rw-r--r-- | 66.3 KB |
netfilter.c | -rw-r--r-- | 5.2 KB |
ping.c | -rw-r--r-- | 29.1 KB |
proc.c | -rw-r--r-- | 20.3 KB |
protocol.c | -rw-r--r-- | 2.3 KB |
raw.c | -rw-r--r-- | 25.7 KB |
route.c | -rw-r--r-- | 71.0 KB |
syncookies.c | -rw-r--r-- | 11.4 KB |
sysctl_net_ipv4.c | -rw-r--r-- | 24.9 KB |
tcp.c | -rw-r--r-- | 84.2 KB |
tcp_bic.c | -rw-r--r-- | 6.2 KB |
tcp_cdg.c | -rw-r--r-- | 11.2 KB |
tcp_cong.c | -rw-r--r-- | 10.9 KB |
tcp_cubic.c | -rw-r--r-- | 14.7 KB |
tcp_dctcp.c | -rw-r--r-- | 9.4 KB |
tcp_diag.c | -rw-r--r-- | 2.4 KB |
tcp_fastopen.c | -rw-r--r-- | 9.1 KB |
tcp_highspeed.c | -rw-r--r-- | 4.8 KB |
tcp_htcp.c | -rw-r--r-- | 7.4 KB |
tcp_hybla.c | -rw-r--r-- | 4.9 KB |
tcp_illinois.c | -rw-r--r-- | 8.2 KB |
tcp_input.c | -rw-r--r-- | 179.9 KB |
tcp_ipv4.c | -rw-r--r-- | 62.0 KB |
tcp_lp.c | -rw-r--r-- | 8.7 KB |
tcp_metrics.c | -rw-r--r-- | 30.5 KB |
tcp_minisocks.c | -rw-r--r-- | 26.0 KB |
tcp_offload.c | -rw-r--r-- | 7.8 KB |
tcp_output.c | -rw-r--r-- | 102.3 KB |
tcp_probe.c | -rw-r--r-- | 7.4 KB |
tcp_recovery.c | -rw-r--r-- | 3.5 KB |
tcp_scalable.c | -rw-r--r-- | 1.4 KB |
tcp_timer.c | -rw-r--r-- | 18.7 KB |
tcp_vegas.c | -rw-r--r-- | 9.6 KB |
tcp_vegas.h | -rw-r--r-- | 901 bytes |
tcp_veno.c | -rw-r--r-- | 5.7 KB |
tcp_westwood.c | -rw-r--r-- | 8.2 KB |
tcp_yeah.c | -rw-r--r-- | 6.9 KB |
tunnel4.c | -rw-r--r-- | 4.1 KB |
udp.c | -rw-r--r-- | 64.3 KB |
udp_diag.c | -rw-r--r-- | 5.5 KB |
udp_impl.h | -rw-r--r-- | 1.2 KB |
udp_offload.c | -rw-r--r-- | 10.1 KB |
udp_tunnel.c | -rw-r--r-- | 3.2 KB |
udplite.c | -rw-r--r-- | 3.4 KB |
xfrm4_input.c | -rw-r--r-- | 3.9 KB |
xfrm4_mode_beet.c | -rw-r--r-- | 3.7 KB |
xfrm4_mode_transport.c | -rw-r--r-- | 2.1 KB |
xfrm4_mode_tunnel.c | -rw-r--r-- | 3.0 KB |
xfrm4_output.c | -rw-r--r-- | 2.6 KB |
xfrm4_policy.c | -rw-r--r-- | 8.6 KB |
xfrm4_protocol.c | -rw-r--r-- | 6.7 KB |
xfrm4_state.c | -rw-r--r-- | 2.4 KB |
xfrm4_tunnel.c | -rw-r--r-- | 2.7 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...