kernel_optimize_test/drivers
Vladimir Davydov 5d097056c9 kmemcg: account certain kmem allocations to memcg
Mark those kmem allocations that are known to be easily triggered from
userspace as __GFP_ACCOUNT/SLAB_ACCOUNT, which makes them accounted to
memcg.  For the list, see below:

 - threadinfo
 - task_struct
 - task_delay_info
 - pid
 - cred
 - mm_struct
 - vm_area_struct and vm_region (nommu)
 - anon_vma and anon_vma_chain
 - signal_struct
 - sighand_struct
 - fs_struct
 - files_struct
 - fdtable and fdtable->full_fds_bits
 - dentry and external_name
 - inode for all filesystems. This is the most tedious part, because
   most filesystems overwrite the alloc_inode method.

The list is far from complete, so feel free to add more objects.
Nevertheless, it should be close to "account everything" approach and
keep most workloads within bounds.  Malevolent users will be able to
breach the limit, but this was possible even with the former "account
everything" approach (simply because it did not account everything in
fact).

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Vladimir Davydov <vdavydov@virtuozzo.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Michal Hocko <mhocko@suse.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Greg Thelen <gthelen@google.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2016-01-14 16:00:49 -08:00
..
accessibility
acpi libnvdimm for 4.5 2016-01-13 19:15:14 -08:00
amba
android
ata Merge branch 'for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2016-01-11 19:33:59 -08:00
atm atm: solos-pci: use to_pci_dev() 2015-12-29 15:32:24 -05:00
auxdisplay
base Power management and ACPI updates for v4.5-rc1 2016-01-12 20:25:09 -08:00
bcma bcma: use module_init for the main part of bus initialization 2015-12-31 10:17:05 +02:00
block SCSI misc on 20160113 2016-01-13 19:37:36 -08:00
bluetooth Bluetooth: btmrvl: don't send data to firmware while processing suspend 2016-01-06 16:37:14 +01:00
bus bus: sunxi-rsb: Fix peripheral IC mapping runtime address 2015-12-22 11:42:30 -08:00
cdrom cdrom: don't open-code memdup_user() 2016-01-06 08:25:24 -05:00
char Some minor changes that have been in linux-next for a while. 2016-01-13 11:19:24 -08:00
clk ARM: SoC fixes for 4.4-rc 2015-12-12 16:43:44 -08:00
clocksource Merge branches 'timers-core-for-linus' and 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-01-11 18:06:43 -08:00
connector connector: bump skb->users before callback invocation 2016-01-04 21:46:45 -05:00
cpufreq cpufreq-dt: fix handling regulator_get_voltage() result 2016-01-05 02:01:38 +01:00
cpuidle drivers/cpuidle: make cpuidle-exynos.c explicitly non-modular 2015-12-15 00:22:22 +01:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2016-01-12 18:51:14 -08:00
dca dmaengine: ioatdma: constify dca_ops structures 2015-11-16 09:27:32 +05:30
devfreq
dio
dma dmaengine updates for 4.5-rc1 2016-01-13 10:59:52 -08:00
dma-buf
edac EDAC, i5100: Use to_delayed_work() 2016-01-01 18:31:34 +01:00
eisa
extcon extcon: add Maxim MAX3355 driver 2015-12-21 11:44:00 +09:00
firewire IEEE 1394 subsystem patch: 2015-11-11 10:21:34 -08:00
firmware efi: include asm/early_ioremap.h not asm/efi.h to get early_memremap 2016-01-13 10:35:14 -08:00
fmc
fpga fpga manager: Fix firmware resource leak on error 2015-11-24 15:25:46 -08:00
gpio Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2016-01-13 11:14:05 -08:00
gpu Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-01-12 17:11:47 -08:00
hid USB fixes for 4.4-rc5 2015-12-13 11:58:18 -08:00
hsi
hv char/misc patches for 4.5-rc1 2016-01-13 10:23:36 -08:00
hwmon hwmon: (nct6683) Add basic support for NCT6683 on Mitac boards 2016-01-09 07:31:58 -08:00
hwspinlock
hwtracing coresight: Fix a typo in Kconfig 2015-12-21 13:31:31 -08:00
i2c Merge branch 'acpi-soc' 2016-01-12 01:08:47 +01:00
ide mm, page_alloc: rename __GFP_WAIT to __GFP_RECLAIM 2015-11-06 17:50:42 -08:00
idle
iio Third set of new stuff for IIO in the 4.5 cycle. 2015-12-26 17:05:25 -08:00
infiniband IB/mlx5: Add flow steering support 2016-01-11 17:48:53 -05:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2016-01-13 11:14:05 -08:00
iommu Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-01-11 16:26:03 -08:00
ipack
irqchip Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-01-11 18:28:06 -08:00
isdn Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2016-01-11 23:55:43 -05:00
leds leds: add HAS_IOMEM dependency to LEDS_BCM6328/LEDS_BCM6358 2016-01-04 09:57:41 +01:00
lguest
lightnvm lightnvm: wrong offset in bad blk lun calculation 2015-12-29 08:28:32 -07:00
macintosh
mailbox
mcb
md libnvdimm for 4.5 2016-01-13 19:15:14 -08:00
media media updates for v4.5-rc1 2016-01-13 11:46:37 -08:00
memory fsl-ifc: add missing include on ARM64 2015-12-16 00:16:58 +01:00
memstick
message SCSI queue for 4.4. 2015-11-12 07:06:18 -05:00
mfd Power management and ACPI updates for v4.5-rc1 2016-01-12 20:25:09 -08:00
misc mei: fix fasync return value on error 2016-01-07 17:03:43 -08:00
mmc mmc: dw_mmc: remove the unused quirks 2016-01-05 18:04:58 +01:00
mtd MTD updates for v4.5: 2016-01-13 11:25:54 -08:00
net Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-01-12 18:57:02 -08:00
nfc nfc: pn544: Remove i2c client gpio irq configuration 2015-12-29 19:06:23 +01:00
ntb NTB: fix 32-bit compiler warning 2015-11-08 16:24:43 -05:00
nubus
nvdimm Merge branch 'for-4.5/block-dax' into for-4.5/libnvdimm 2016-01-10 07:53:55 -08:00
nvme NVMe: IO ending fixes on surprise removal 2015-12-22 10:12:04 -07:00
nvmem
of mdio: remove an unneed condition 2016-01-12 11:51:57 -05:00
oprofile
parisc parisc iommu: fix panic due to trying to allocate too large region 2015-12-12 16:07:25 +01:00
parport parport: avoid assignment in if 2016-01-03 16:32:59 -08:00
pci Power management and ACPI updates for v4.5-rc1 2016-01-12 20:25:09 -08:00
pcmcia
perf drivers/perf: kill armpmu_register 2015-11-16 15:41:49 +00:00
phy phy: for 4.5 2015-12-26 17:01:18 -08:00
pinctrl This is the bulk of pin control patches for the v4.5 2016-01-11 20:05:39 -08:00
platform thinkpad_acpi: Use acpi_video_handles_brightness_key_presses() 2016-01-01 03:14:51 +01:00
pnp PNP: respect PNP_DRIVER_RES_DO_NOT_CHANGE when detaching 2016-01-04 22:12:42 +01:00
power - New Device Support 2015-11-06 10:23:50 -08:00
powercap Merge branch 'powercap' 2016-01-12 01:12:40 +01:00
pps
ps3
ptp
pwm pwm: Changes for v4.4-rc1 2015-11-11 09:16:10 -08:00
rapidio
ras
regulator spi: Updates for v4.4 2015-11-05 13:15:12 -08:00
remoteproc remoteproc: fix memory leak of remoteproc ida cache layers 2015-11-26 17:44:28 +02:00
reset
rpmsg
rtc rtc: da9063: fix access ordering error during RTC interrupt at system power on 2015-12-20 13:39:29 +01:00
s390 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2016-01-13 13:16:16 -08:00
sbus convert a bunch of open-coded instances of memdup_user_nul() 2016-01-04 10:26:58 -05:00
scsi SCSI misc on 20160113 2016-01-13 19:37:36 -08:00
sfi
sh drivers: sh: Get rid of CONFIG_ARCH_SHMOBILE_MULTI 2015-11-17 02:12:46 +09:00
sn
soc Merge branches 'misc' and 'misc-rc6' into for-linus 2016-01-05 11:07:28 +00:00
spi spi: Updates for v4.5 2016-01-13 11:38:27 -08:00
spmi char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
ssb ssb: pick SoC invariants code from MIPS BCM47xx arch 2015-12-16 16:36:25 +02:00
staging kmemcg: account certain kmem allocations to memcg 2016-01-14 16:00:49 -08:00
target target/stat: print full t10_wwn.model buffer 2015-11-28 21:23:13 -08:00
tc
thermal x86/platform/iosf_mbi: Remove duplicate definitions 2015-12-09 01:18:34 +01:00
thunderbolt
tty TTY/Serial patches for 4.5-rc1 2016-01-13 10:02:05 -08:00
uio
usb USB patches for 4.5-rc1 2016-01-13 09:26:40 -08:00
uwb uwb: uwbd() is not freezable kthread 2015-12-01 14:26:33 -08:00
vfio Revert: "vfio: Include No-IOMMU mode" 2015-12-04 08:38:42 -07:00
vhost Revert "Merge branch 'vsock-virtio'" 2015-12-08 21:55:49 -05:00
video OMAPDSS: fix timings for VENC to match what omapdrm expects 2015-12-09 12:57:13 +02:00
virt
virtio virtio_ring: shadow available ring flags & index 2015-12-07 17:28:11 +02:00
vlynq
vme char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
w1 power supply and reset changes for the v4.4 series 2015-11-05 12:28:15 -08:00
watchdog watchdog: mtk_wdt: Use MODE_KEY when stopping the watchdog 2015-11-23 09:00:09 +01:00
xen xen/gntdev: add ioctl for grant copy 2016-01-07 13:21:53 +00:00
zorro
Kconfig char/misc drivers for 4.4-rc1 2015-11-04 22:15:15 -08:00
Makefile null_blk: register as a LightNVM device 2015-11-16 15:22:28 -07:00