On 12/28/2016 09:46 PM, Rune Torgersen wrote: > What will cause a sendto() call to a Tipc RDM socket to return a ENOMEM? > I am sending a roughly 30K message, and occasionally get that error. > (Ubuntu 16.04 LTS kernel)
If your message receiver is the same local node, then tipc will try avoid fragmentation/reassembly by allocating an skb large enough to fix the message. The memory (if not cached) will be allocated from the buddy pool. The current memory situation for the buddypool can be listed using: cat /proc/buddyinfo When the system runs out of buffers of size >= 32K (2^3 => 8 * 4K page size) in buddypool, the memory allocation will fail for intranode. To fix this, we need to send this message chaining several smaller buffers without inserting the fragment header only for intranode. This will surely impact the latency and throughputs for intra-node communication for sizes > MTU. /Partha > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > tipc-discussion mailing list > tipc-discussion@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/tipc-discussion > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ tipc-discussion mailing list tipc-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tipc-discussion