fjpanag commented on code in PR #7525:
URL: https://github.com/apache/nuttx/pull/7525#discussion_r1038792888


##########
net/tcp/tcp_conn.c:
##########
@@ -586,16 +586,32 @@ FAR struct tcp_conn_s *tcp_alloc_conn(void)
 
 void tcp_initialize(void)
 {
-#ifndef CONFIG_NET_ALLOC_CONNS
   int i;
 
+#ifndef CONFIG_NET_ALLOC_CONNS
   for (i = 0; i < CONFIG_NET_TCP_CONNS; i++)
     {
       /* Mark the connection closed and move it to the free list */
 
       g_tcp_connections[i].tcpstateflags = TCP_CLOSED;
       dq_addlast(&g_tcp_connections[i].sconn.node, &g_free_tcp_connections);
     }
+#else
+  FAR struct tcp_conn_s *conn;
+
+  for (i = 0; i < CONFIG_NET_TCP_PREALLOC_CONNS; i++)
+    {
+      conn = kmm_zalloc(sizeof(struct tcp_conn_s));

Review Comment:
   I sincerely do not understand your proposition.  
   I need the following:
   
   * It is impossible to know the maximum number of connections before-hand. 
Thus I need dynamic connections allocation.
   * I know that a temporal high-load condition may happen. After this 
finishes, the connections must be deallocated to allow the system to reuse the 
memory. It must not keep the never-to-be-used-again memory reserved!
   * I know that at least *some* connections are always needed, and I need them 
preallocated to reduce heap fragmentation, enhance performance, and reduce 
locking of the system (as the memory manager may do).
   
   All the above sound like very reasonable and possibly common requirements 
for a networking application.  
   In fact, I cannot imagine a system with unknown number of connections behave 
any differently.  
   Point 2 is especially important for safety and security reasons.
   
   Your proposal cannot satisfy all 3 requirements, at least as far as I can 
understand it.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to