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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Thursday, March 9, 2017, Shiyao Ma <i@xxxxxxxxx> 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
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux