Commit 3360cd30 authored by Haifeng Xu's avatar Haifeng Xu Committed by Andrew Morton
Browse files

selftests: cgroup: fix unexpected failure on test_memcg_sock

Before server got a client connection, there were some memory allocations
in the test memcg, such as user stack.  So do not count those allocations
which are not related to socket when checking socket memory accounting.

Link: https://lkml.kernel.org/r/20230619124735.2124-1-haifeng.xu@shopee.com


Signed-off-by: default avatarHaifeng Xu <haifeng.xu@shopee.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Michal Koutný <mkoutny@suse.com>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Shakeel Butt <shakeelb@google.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 91f0dcce
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -989,7 +989,9 @@ static int tcp_client(const char *cgroup, unsigned short port)
	char servport[6];
	int retries = 0x10; /* nice round number */
	int sk, ret;
	long allocated;

	allocated = cg_read_long(cgroup, "memory.current");
	snprintf(servport, sizeof(servport), "%hd", port);
	ret = getaddrinfo(server, servport, NULL, &ai);
	if (ret)
@@ -1017,7 +1019,8 @@ static int tcp_client(const char *cgroup, unsigned short port)
		if (current < 0 || sock < 0)
			goto close_sk;

		if (values_close(current, sock, 10)) {
		/* exclude the memory not related to socket connection */
		if (values_close(current - allocated, sock, 10)) {
			ret = KSFT_PASS;
			break;
		}