|
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 |
|