From 22a2967a47c6a24b28c83c20d90c1f0731b844f9 Mon Sep 17 00:00:00 2001 From: Denis Kirjanov Date: Sep 13 2021 15:08:09 +0000 Subject: Merge remote-tracking branch 'origin/cve/linux-4.12' into SLE12-SP5 Conflicts: series.conf --- diff --git a/patches.suse/ipc-remove-memcg-accounting-for-sops-objects.patch b/patches.suse/ipc-remove-memcg-accounting-for-sops-objects.patch new file mode 100644 index 0000000..3dbaf77 --- /dev/null +++ b/patches.suse/ipc-remove-memcg-accounting-for-sops-objects.patch @@ -0,0 +1,47 @@ +From: Vasily Averin +Subject: ipc: remove memcg accounting for sops objects in do_semtimedop() +Date: Sat, 11 Sep 2021 10:40:08 +0300 +Message-ID: <90e254df-0dfe-f080-011e-b7c53ee7fd20@virtuozzo.com> +Patch-mainline: Not yet, too soon +References: bsc#1190115 + +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/20171005222144.123797-1-shakeelb@google.com/ + +Fixes: 18319498fdd4 ("memcg: enable accounting of ipc resources") +Signed-off-by: Vasily Averin +Acked-by: Michal Koutný +--- + ipc/sem.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/ipc/sem.c b/ipc/sem.c +index f833238df1ce..6693daf4fe11 100644 +--- a/ipc/sem.c ++++ b/ipc/sem.c +@@ -2238,7 +2238,7 @@ static long do_semtimedop(int semid, struct sembuf __user *tsops, + if (nsops > ns->sc_semopm) + return -E2BIG; + if (nsops > SEMOPM_FAST) { +- sops = kvmalloc(sizeof(*sops)*nsops, GFP_KERNEL_ACCOUNT); ++ sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL); + if (sops == NULL) + return -ENOMEM; + } +-- +2.25.1 + diff --git a/series.conf b/series.conf index e262bc5..c351ddd 100644 --- a/series.conf +++ b/series.conf @@ -59828,6 +59828,7 @@ patches.suse/blk-mq-move-_blk_mq_update_nr_hw_queues-synchronize_rcu-call patches.suse/proc-Avoid-mixing-integer-types-in-mem_rw.patch patches.suse/scsi-smartpqi-create-module-parameters-for-LUN-reset.patch + patches.suse/ipc-remove-memcg-accounting-for-sops-objects.patch ######################################################## # end of sorted patches