From e4c3c5730ea1ae236b1096d7c315c02ea9f15ab4 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 8 Nov 2022 13:47:15 +0100 Subject: [PATCH] 5.4-stable patches added patches: ipc-remove-memcg-accounting-for-sops-objects-in-do_semtimedop.patch --- ...ng-for-sops-objects-in-do_semtimedop.patch | 58 +++++++++++++++++++ queue-5.4/series | 1 + 2 files changed, 59 insertions(+) create mode 100644 queue-5.4/ipc-remove-memcg-accounting-for-sops-objects-in-do_semtimedop.patch diff --git a/queue-5.4/ipc-remove-memcg-accounting-for-sops-objects-in-do_semtimedop.patch b/queue-5.4/ipc-remove-memcg-accounting-for-sops-objects-in-do_semtimedop.patch new file mode 100644 index 00000000000..9e2bc9b232b --- /dev/null +++ b/queue-5.4/ipc-remove-memcg-accounting-for-sops-objects-in-do_semtimedop.patch @@ -0,0 +1,58 @@ +From 6a4746ba06191e23d30230738e94334b26590a8a Mon Sep 17 00:00:00 2001 +From: Vasily Averin +Date: Sat, 11 Sep 2021 10:40:08 +0300 +Subject: ipc: remove memcg accounting for sops objects in do_semtimedop() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Vasily Averin + +commit 6a4746ba06191e23d30230738e94334b26590a8a upstream. + +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. + +Considering at least 2 pages for task_struct and 2 pages for +the kernel stack, a back of the envelope calculation gives a +footprint amplification of <1.5 so this temporal buffer can be +safely ignored. + +The factor would IMO be interesting if it was >> 2 (from the +PoV of excessive (ab)use, fine-grained accounting seems to be +currently unfeasible due to performance impact). + +Link: https://lore.kernel.org/lkml/90e254df-0dfe-f080-011e-b7c53ee7fd20@virtuozzo.com/ +Fixes: 18319498fdd4 ("memcg: enable accounting of ipc resources") +Signed-off-by: Vasily Averin +Acked-by: Michal Hocko +Reviewed-by: Michal Koutný +Acked-by: Shakeel Butt +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman +--- + ipc/sem.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/ipc/sem.c ++++ b/ipc/sem.c +@@ -1984,8 +1984,7 @@ static long do_semtimedop(int semid, str + if (nsops > ns->sc_semopm) + return -E2BIG; + if (nsops > SEMOPM_FAST) { +- sops = kvmalloc_array(nsops, sizeof(*sops), +- GFP_KERNEL_ACCOUNT); ++ sops = kvmalloc_array(nsops, sizeof(*sops), GFP_KERNEL); + if (sops == NULL) + return -ENOMEM; + } diff --git a/queue-5.4/series b/queue-5.4/series index a9c5df8f0e7..a066e3cac9a 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -71,3 +71,4 @@ drm-rockchip-dsi-force-synchronous-probe.patch drm-i915-sdvo-filter-out-invalid-outputs-more-sensibly.patch drm-i915-sdvo-setup-ddc-fully-before-output-init.patch wifi-brcmfmac-fix-potential-buffer-overflow-in-brcmf_fweh_event_worker.patch +ipc-remove-memcg-accounting-for-sops-objects-in-do_semtimedop.patch -- 2.47.3