why `send(2)' blocks even though I've turned up the related sock settings?

Shiyao Ma i at introo.me
Thu Mar 9 07:30:13 EST 2017


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.


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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20170309/00279d0e/attachment.html 


More information about the Kernelnewbies mailing list