]> git.baikalelectronics.ru Git - kernel.git/commitdiff
Revert "memcg: enable accounting for pollfd and select bits arrays"
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 Sep 2021 18:26:23 +0000 (11:26 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 Sep 2021 18:26:23 +0000 (11:26 -0700)
This reverts commit 16a1dad5b53cac5e255ff2347bfa7d8d85b6ed5b.

Just like with the memcg lock accounting, the kernel test robot reports
a sizeable performance regression for this commit, and while it clearly
does the rigth thing in theory, we'll need to look at just how to avoid
or minimize the performance overhead of the memcg accounting.

People already have suggestions on how to do that, but it's "future
work".

So revert it for now.

[ Note: the first link below is for this same commit but a different
  commit ID, because it's the kernel test robot ended up noticing it in
  Andrew Morton's patch queue ]

Link: https://lore.kernel.org/lkml/20210905132732.GC15026@xsang-OptiPlex-9020/
Link: https://lore.kernel.org/lkml/20210907150757.GE17617@xsang-OptiPlex-9020/
Acked-by: Jens Axboe <axboe@kernel.dk>
Acked-by: Shakeel Butt <shakeelb@google.com>
Acked-by: Roman Gushchin <guro@fb.com>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/select.c

index e83e563a351dbd71e8972de22f490d22fda43707..945896d0ac9e7624db36d48169ebc757d4f18adb 100644 (file)
@@ -655,7 +655,7 @@ int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp,
                        goto out_nofds;
 
                alloc_size = 6 * size;
-               bits = kvmalloc(alloc_size, GFP_KERNEL_ACCOUNT);
+               bits = kvmalloc(alloc_size, GFP_KERNEL);
                if (!bits)
                        goto out_nofds;
        }
@@ -1000,7 +1000,7 @@ static int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,
 
                len = min(todo, POLLFD_PER_PAGE);
                walk = walk->next = kmalloc(struct_size(walk, entries, len),
-                                           GFP_KERNEL_ACCOUNT);
+                                           GFP_KERNEL);
                if (!walk) {
                        err = -ENOMEM;
                        goto out_fds;