Linus proposes to revert an accounting for sops objects in
do_semtimedop() because it's really just a temporary buffer
for a single semtimedop() system call.

This object can consume up to 2 pages, syscall is sleeping one,
size and duration can be controlled by user, and this allocation
can be repeated by many thread at the same time.

However Shakeel Butt pointed that there are much more popular objects
with the same life time and similar memory consumption, the accounting
of which was decided to be rejected for performance reasons.

In addition, any usual task consumes much more accounted memory,
so 2 pages of this temporal buffer can be safely ignored.

Link: 
https://patchwork.kernel.org/project/linux-fsdevel/patch/[email protected]/
[backport of upstream patch version]
Link: 
https://lore.kernel.org/all/[email protected]/
Signed-off-by: Vasily Averin <[email protected]>
---
 ipc/sem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ipc/sem.c b/ipc/sem.c
index 437f2e5..274a2bc 100644
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -1797,7 +1797,7 @@ SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf 
__user *, tsops,
        if (nsops > ns->sc_semopm)
                return -E2BIG;
        if (nsops > SEMOPM_FAST) {
-               sops = kmalloc(sizeof(*sops)*nsops, GFP_KERNEL_ACCOUNT);
+               sops = kmalloc(sizeof(*sops)*nsops, GFP_KERNEL);
                if (sops == NULL)
                        return -ENOMEM;
        }
-- 
1.8.3.1

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to