diff mbox series

[net-next] selftests: net: tcp_mmap should create detached threads

Message ID 20191114164327.171997-1-edumazet@google.com
State Accepted
Delegated to: David Miller
Headers show
Series [net-next] selftests: net: tcp_mmap should create detached threads | expand

Commit Message

Eric Dumazet Nov. 14, 2019, 4:43 p.m. UTC
Since we do not plan using pthread_join() in the server do_accept()
loop, we better create detached threads, or risk increasing memory
footprint over time.

Fixes: 192dc405f308 ("selftests: net: add tcp_mmap program")
Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 tools/testing/selftests/net/tcp_mmap.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

David Miller Nov. 15, 2019, 8:46 p.m. UTC | #1
From: Eric Dumazet <edumazet@google.com>
Date: Thu, 14 Nov 2019 08:43:27 -0800

> Since we do not plan using pthread_join() in the server do_accept()
> loop, we better create detached threads, or risk increasing memory
> footprint over time.
> 
> Fixes: 192dc405f308 ("selftests: net: add tcp_mmap program")
> Signed-off-by: Eric Dumazet <edumazet@google.com>

Applied.
diff mbox series

Patch

diff --git a/tools/testing/selftests/net/tcp_mmap.c b/tools/testing/selftests/net/tcp_mmap.c
index 31ced79f4f25de89afe95a7214600b2eae42f057..0e73a30f0c2262e62a5ed1e2db6c7c8977bf44fa 100644
--- a/tools/testing/selftests/net/tcp_mmap.c
+++ b/tools/testing/selftests/net/tcp_mmap.c
@@ -270,6 +270,11 @@  static void setup_sockaddr(int domain, const char *str_addr,
 
 static void do_accept(int fdlisten)
 {
+	pthread_attr_t attr;
+
+	pthread_attr_init(&attr);
+	pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
+
 	if (setsockopt(fdlisten, SOL_SOCKET, SO_RCVLOWAT,
 		       &chunk_size, sizeof(chunk_size)) == -1) {
 		perror("setsockopt SO_RCVLOWAT");
@@ -288,7 +293,7 @@  static void do_accept(int fdlisten)
 			perror("accept");
 			continue;
 		}
-		res = pthread_create(&th, NULL, child_thread,
+		res = pthread_create(&th, &attr, child_thread,
 				     (void *)(unsigned long)fd);
 		if (res) {
 			errno = res;