Michal Koutný 2e73db
From: Vasily Averin <vvs@virtuozzo.com>
Michal Koutný 2e73db
Subject: ipc: remove memcg accounting for sops objects in do_semtimedop()
Michal Koutný 2e73db
Date: Sat, 11 Sep 2021 10:40:08 +0300
Michal Koutný 2e73db
Message-ID: <90e254df-0dfe-f080-011e-b7c53ee7fd20@virtuozzo.com>
Michal Koutný 2e73db
Patch-mainline: Not yet, too soon
Michal Koutný 2e73db
References: bsc#1190115
Michal Koutný 2e73db
Michal Koutný 2e73db
Linus proposes to revert an accounting for sops objects in
Michal Koutný 2e73db
do_semtimedop() because it's really just a temporary buffer
Michal Koutný 2e73db
for a single semtimedop() system call.
Michal Koutný 2e73db
Michal Koutný 2e73db
This object can consume up to 2 pages, syscall is sleeping one,
Michal Koutný 2e73db
size and duration can be controlled by user, and this allocation
Michal Koutný 2e73db
can be repeated by many thread at the same time.
Michal Koutný 2e73db
Michal Koutný 2e73db
However Shakeel Butt pointed that there are much more popular objects
Michal Koutný 2e73db
with the same life time and similar memory consumption, the accounting
Michal Koutný 2e73db
of which was decided to be rejected for performance reasons.
Michal Koutný 2e73db
Michal Koutný 2e73db
In addition, any usual task consumes much more accounted memory,
Michal Koutný 2e73db
so 2 pages of this temporal buffer can be safely ignored.
Michal Koutný 2e73db
Michal Koutný 2e73db
Link: https://patchwork.kernel.org/project/linux-fsdevel/patch/20171005222144.123797-1-shakeelb@google.com/
Michal Koutný 2e73db
Michal Koutný 2e73db
Fixes: 18319498fdd4 ("memcg: enable accounting of ipc resources")
Michal Koutný 2e73db
Signed-off-by: Vasily Averin <vvs@virtuozzo.com>
Michal Koutný 2e73db
Acked-by: Michal Koutný <mkoutny@suse.com>
Michal Koutný 2e73db
---
Michal Koutný 2e73db
 ipc/sem.c | 2 +-
Michal Koutný 2e73db
 1 file changed, 1 insertion(+), 1 deletion(-)
Michal Koutný 2e73db
Michal Koutný 2e73db
diff --git a/ipc/sem.c b/ipc/sem.c
Michal Koutný 2e73db
index f833238df1ce..6693daf4fe11 100644
Michal Koutný 2e73db
--- a/ipc/sem.c
Michal Koutný 2e73db
+++ b/ipc/sem.c
Michal Koutný 2e73db
@@ -2238,7 +2238,7 @@ static long do_semtimedop(int semid, struct sembuf __user *tsops,
Michal Koutný 2e73db
 	if (nsops > ns->sc_semopm)
Michal Koutný 2e73db
 		return -E2BIG;
Michal Koutný 2e73db
 	if (nsops > SEMOPM_FAST) {
Michal Koutný 2e73db
-		sops = kvmalloc(sizeof(*sops)*nsops, GFP_KERNEL_ACCOUNT);
Michal Koutný 2e73db
+		sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL);
Michal Koutný 2e73db
 		if (sops == NULL)
Michal Koutný 2e73db
 			return -ENOMEM;
Michal Koutný 2e73db
 	}
Michal Koutný 2e73db
-- 
Michal Koutný 2e73db
2.25.1
Michal Koutný 2e73db