https://github.com/torvalds/linux
Revision 9f457179244a1c0316546b1760f8993d0d718861 authored by Johannes Weiner on 13 August 2020, 14:40:54 UTC, committed by Linus Torvalds on 13 August 2020, 19:15:21 UTC
Commit 3e38e0aaca9e ("mm: memcg: charge memcg percpu memory to the
parent cgroup") adds memory tracking to the memcg kernel structures
themselves to make cgroups liable for the memory they are consuming
through the allocation of child groups (which can be significant).

This code is a bit awkward as it's spread out through several functions:
The outermost function does memalloc_use_memcg(parent) to set up
current->active_memcg, which designates which cgroup to charge, and the
inner functions pass GFP_ACCOUNT to request charging for specific
allocations.  To make sure this dependency is satisfied at all times -
to make sure we don't randomly charge whoever is calling the functions -
the inner functions warn on !current->active_memcg.

However, this triggers a false warning when the root memcg itself is
allocated.  No parent exists in this case, and so current->active_memcg
is rightfully NULL.  It's a false positive, not indicative of a bug.

Delete the warnings for now, we can revisit this later.

Fixes: 3e38e0aaca9e ("mm: memcg: charge memcg percpu memory to the parent cgroup")
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: Roman Gushchin <guro@fb.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent dc06fe5
History
Tip revision: 9f457179244a1c0316546b1760f8993d0d718861 authored by Johannes Weiner on 13 August 2020, 14:40:54 UTC
mm: memcontrol: fix warning when allocating the root cgroup
Tip revision: 9f45717
File Mode Size
9p
adfs
affs
afs
autofs
befs
bfs
btrfs
cachefiles
ceph
cifs
coda
configfs
cramfs
crypto
debugfs
devpts
dlm
ecryptfs
efivarfs
efs
erofs
exfat
exportfs
ext2
ext4
f2fs
fat
freevxfs
fscache
fuse
gfs2
hfs
hfsplus
hostfs
hpfs
hugetlbfs
iomap
isofs
jbd2
jffs2
jfs
kernfs
lockd
minix
nfs
nfs_common
nfsd
nilfs2
nls
notify
ntfs
ocfs2
omfs
openpromfs
orangefs
overlayfs
proc
pstore
qnx4
qnx6
quota
ramfs
reiserfs
romfs
squashfs
sysfs
sysv
tracefs
ubifs
udf
ufs
unicode
vboxsf
verity
xfs
zonefs
Kconfig -rw-r--r-- 8.5 KB
Kconfig.binfmt -rw-r--r-- 7.6 KB
Makefile -rw-r--r-- 4.5 KB
aio.c -rw-r--r-- 56.5 KB
anon_inodes.c -rw-r--r-- 4.6 KB
attr.c -rw-r--r-- 9.7 KB
bad_inode.c -rw-r--r-- 5.3 KB
binfmt_aout.c -rw-r--r-- 8.3 KB
binfmt_elf.c -rw-r--r-- 64.7 KB
binfmt_elf_fdpic.c -rw-r--r-- 47.2 KB
binfmt_em86.c -rw-r--r-- 2.7 KB
binfmt_flat.c -rw-r--r-- 28.1 KB
binfmt_misc.c -rw-r--r-- 17.3 KB
binfmt_script.c -rw-r--r-- 4.2 KB
block_dev.c -rw-r--r-- 53.6 KB
buffer.c -rw-r--r-- 89.4 KB
char_dev.c -rw-r--r-- 16.5 KB
compat.c -rw-r--r-- 3.2 KB
compat_binfmt_elf.c -rw-r--r-- 3.5 KB
coredump.c -rw-r--r-- 22.5 KB
d_path.c -rw-r--r-- 11.3 KB
dax.c -rw-r--r-- 45.7 KB
dcache.c -rw-r--r-- 84.4 KB
dcookies.c -rw-r--r-- 7.1 KB
direct-io.c -rw-r--r-- 40.1 KB
drop_caches.c -rw-r--r-- 1.8 KB
eventfd.c -rw-r--r-- 12.0 KB
eventpoll.c -rw-r--r-- 66.0 KB
exec.c -rw-r--r-- 51.0 KB
fcntl.c -rw-r--r-- 23.3 KB
fhandle.c -rw-r--r-- 6.8 KB
file.c -rw-r--r-- 28.2 KB
file_table.c -rw-r--r-- 10.2 KB
filesystems.c -rw-r--r-- 6.4 KB
fs-writeback.c -rw-r--r-- 74.6 KB
fs_context.c -rw-r--r-- 17.3 KB
fs_parser.c -rw-r--r-- 10.1 KB
fs_pin.c -rw-r--r-- 1.9 KB
fs_struct.c -rw-r--r-- 3.4 KB
fs_types.c -rw-r--r-- 2.5 KB
fsopen.c -rw-r--r-- 11.0 KB
init.c -rw-r--r-- 5.9 KB
inode.c -rw-r--r-- 63.0 KB
internal.h -rw-r--r-- 5.2 KB
io-wq.c -rw-r--r-- 27.1 KB
io-wq.h -rw-r--r-- 3.6 KB
io_uring.c -rw-r--r-- 204.0 KB
ioctl.c -rw-r--r-- 20.9 KB
libfs.c -rw-r--r-- 34.7 KB
locks.c -rw-r--r-- 80.0 KB
mbcache.c -rw-r--r-- 12.0 KB
mount.h -rw-r--r-- 4.2 KB
mpage.c -rw-r--r-- 20.5 KB
namei.c -rw-r--r-- 119.9 KB
namespace.c -rw-r--r-- 98.2 KB
no-block.c -rw-r--r-- 478 bytes
nsfs.c -rw-r--r-- 6.6 KB
open.c -rw-r--r-- 33.2 KB
pipe.c -rw-r--r-- 33.0 KB
pnode.c -rw-r--r-- 15.1 KB
pnode.h -rw-r--r-- 1.9 KB
posix_acl.c -rw-r--r-- 21.5 KB
proc_namespace.c -rw-r--r-- 7.9 KB
read_write.c -rw-r--r-- 53.2 KB
readdir.c -rw-r--r-- 13.7 KB
select.c -rw-r--r-- 34.5 KB
seq_file.c -rw-r--r-- 23.9 KB
signalfd.c -rw-r--r-- 9.0 KB
splice.c -rw-r--r-- 40.5 KB
stack.c -rw-r--r-- 2.5 KB
stat.c -rw-r--r-- 20.2 KB
statfs.c -rw-r--r-- 9.6 KB
super.c -rw-r--r-- 47.9 KB
sync.c -rw-r--r-- 10.5 KB
timerfd.c -rw-r--r-- 13.6 KB
userfaultfd.c -rw-r--r-- 51.7 KB
utimes.c -rw-r--r-- 7.6 KB
xattr.c -rw-r--r-- 26.1 KB

back to top