why `send(2)' blocks even though I've turned up the related sock settings?
From: Mulyadi Santosa <hidden>
Date: 2017-03-11 09:31:04
On Thursday, March 9, 2017, Shiyao Ma [off-list ref] wrote:
Hi, The related settings are, sudo sysctl -w net.core.rmem_max=2147483647 sudo sysctl -w net.core.wmem_max=2147483647 sudo sysctl -w net.ipv4.tcp_rmem="10240 8738000 2147483647" sudo sysctl -w net.ipv4.tcp_wmem="10240 8738000 2147483647" sudo sysctl -w net.ipv4.tcp_limit_output_bytes=2147483647 They are insanely big.
How big are the data you send during single call of send() ? Also, what parameters do you use in send () ?
However, when executing `send' for a large buffer, it still blocks. I thought L4 (tcp) will accept that large buffer as long as it can copy those buffer into kernel. Turns out not. What could be the possible reason? Does the TCP check the `cwnd' setting or so even in the step of copying buffer from userspace to kernel? I didn't find the related code, though. Regards.
-- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20170311/56a6806a/attachment.html