linux_dsm_epyc7002/arch/arm/configs
Minchan Kim e91d8d7823 mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING
While I was doing zram testing, I found sometimes decompression failed
since the compression buffer was corrupted.  With investigation, I found
below commit calls cond_resched unconditionally so it could make a
problem in atomic context if the task is reschedule.

  BUG: sleeping function called from invalid context at mm/vmalloc.c:108
  in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 946, name: memhog
  3 locks held by memhog/946:
   #0: ffff9d01d4b193e8 (&mm->mmap_lock#2){++++}-{4:4}, at: __mm_populate+0x103/0x160
   #1: ffffffffa3d53de0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0xa98/0x1160
   #2: ffff9d01d56b8110 (&zspage->lock){.+.+}-{3:3}, at: zs_map_object+0x8e/0x1f0
  CPU: 0 PID: 946 Comm: memhog Not tainted 5.9.3-00011-gc5bfc0287345-dirty #316
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1 04/01/2014
  Call Trace:
    unmap_kernel_range_noflush+0x2eb/0x350
    unmap_kernel_range+0x14/0x30
    zs_unmap_object+0xd5/0xe0
    zram_bvec_rw.isra.0+0x38c/0x8e0
    zram_rw_page+0x90/0x101
    bdev_write_page+0x92/0xe0
    __swap_writepage+0x94/0x4a0
    pageout+0xe3/0x3a0
    shrink_page_list+0xb94/0xd60
    shrink_inactive_list+0x158/0x460

We can fix this by removing the ZSMALLOC_PGTABLE_MAPPING feature (which
contains the offending calling code) from zsmalloc.

Even though this option showed some amount improvement(e.g., 30%) in
some arm32 platforms, it has been headache to maintain since it have
abused APIs[1](e.g., unmap_kernel_range in atomic context).

Since we are approaching to deprecate 32bit machines and already made
the config option available for only builtin build since v5.8, lastly it
has been not default option in zsmalloc, it's time to drop the option
for better maintenance.

[1] http://lore.kernel.org/linux-mm/20201105170249.387069-1-minchan@kernel.org

Fixes: e47110e905 ("mm/vunmap: add cond_resched() in vunmap_pmd_range")
Signed-off-by: Minchan Kim <minchan@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Harish Sriram <harish@linux.ibm.com>
Cc: Uladzislau Rezki <urezki@gmail.com>
Cc: <stable@vger.kernel.org>
Link: https://lkml.kernel.org/r/20201117202916.GA3856507@google.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-12-06 10:19:07 -08:00
..
am200epdkit_defconfig all arch: remove system call sys_sysctl 2020-08-14 19:56:56 -07:00
aspeed_g4_defconfig ARM: config: aspeed: Fix selection of media drivers 2020-09-11 15:25:24 +09:30
aspeed_g5_defconfig ARM: config: aspeed_g5: Enable IBM OP Panel driver 2020-09-11 15:25:24 +09:30
assabet_defconfig
at91_dt_defconfig
axm55xx_defconfig
badge4_defconfig
bcm2835_defconfig Enables fixed regulator in bcm2835_defconfig 2020-04-13 15:55:35 -07:00
cerfcube_defconfig
clps711x_defconfig
cm_x300_defconfig
cns3420vb_defconfig
colibri_pxa270_defconfig
colibri_pxa300_defconfig
collie_defconfig
corgi_defconfig
davinci_all_defconfig
dove_defconfig
dram_0x00000000.config
dram_0xc0000000.config
dram_0xd0000000.config
ebsa110_defconfig
efm32_defconfig
ep93xx_defconfig
eseries_pxa_defconfig
exynos_defconfig ARM: exynos_defconfig: enable platform media drivers 2020-08-17 17:52:50 +02:00
ezx_defconfig media: arch/arm/configs: remove obsolete CONFIG_SOC_CAMERA* 2020-07-04 12:20:33 +02:00
footbridge_defconfig
gemini_defconfig
h3600_defconfig
h5000_defconfig
hackkit_defconfig
hisi_defconfig
imote2_defconfig media: arch/arm/configs: remove obsolete CONFIG_SOC_CAMERA* 2020-07-04 12:20:33 +02:00
imx_v4_v5_defconfig ARM: imx_v4_v5_defconfig: Select CONFIG_GPIO_MXC 2020-10-27 07:45:43 +08:00
imx_v6_v7_defconfig ARM: imx_v6_v7_defconfig: Build in CONFIG_GPIO_MXC by default 2020-10-26 15:48:59 +08:00
integrator_defconfig ARM: configs: Update Integrator defconfig 2020-08-20 18:12:49 -07:00
iop32x_defconfig
ixp4xx_defconfig
jornada720_defconfig
keystone_defconfig net: ethernet: ti: Remove TI_CPTS_MOD workaround 2020-05-12 12:33:27 -07:00
lart_defconfig
lpc18xx_defconfig
lpc32xx_defconfig
lpd270_defconfig
lubbock_defconfig
magician_defconfig
mainstone_defconfig
milbeaut_m10v_defconfig
mini2440_defconfig
mmp2_defconfig
moxart_defconfig
mps2_defconfig
multi_v4t_defconfig
multi_v5_defconfig ARM: multi_v5_defconfig: Select CONFIG_GPIO_MXC 2020-10-27 07:45:43 +08:00
multi_v7_defconfig ARM: multi_v7_defconfig: Build in CONFIG_GPIO_MXC by default 2020-10-26 15:49:15 +08:00
mv78xx0_defconfig
mvebu_v5_defconfig
mvebu_v7_defconfig
mxs_defconfig
neponset_defconfig
netwinder_defconfig
nhk8815_defconfig
omap1_defconfig
omap2plus_defconfig mm/zsmalloc.c: drop ZSMALLOC_PGTABLE_MAPPING 2020-12-06 10:19:07 -08:00
orion5x_defconfig
oxnas_v6_defconfig
palmz72_defconfig
pcm027_defconfig
pleb_defconfig
prima2_defconfig
pxa3xx_defconfig
pxa168_defconfig
pxa255-idp_defconfig
pxa910_defconfig
pxa_defconfig media updates for v5.9-rc1 2020-08-07 13:00:53 -07:00
qcom_defconfig
realview_defconfig ARM: configs: Update Realview defconfig 2020-09-13 11:15:24 -07:00
rpc_defconfig
s3c2410_defconfig
s3c6400_defconfig
s5pv210_defconfig
sama5_defconfig media updates for v5.9-rc1 2020-08-07 13:00:53 -07:00
shannon_defconfig
shmobile_defconfig ARM: shmobile: defconfig: Enable CONFIG_PCIE_RCAR_HOST 2020-09-01 13:54:41 +02:00
simpad_defconfig
socfpga_defconfig
spear3xx_defconfig
spear6xx_defconfig
spear13xx_defconfig
spitz_defconfig
stm32_defconfig
sunxi_defconfig ARM: configs: sunxi: Enable crypto related options 2020-07-07 12:52:46 +02:00
tango4_defconfig
tct_hammer_defconfig
tegra_defconfig ARM: tegra: Default configuration changes for v5.9-rc1 2020-07-20 17:16:51 +02:00
trizeps4_defconfig
u300_defconfig
u8500_defconfig ARM: defconfig: u8500: Enable new drivers for ux500 2020-04-29 17:32:42 +02:00
versatile_defconfig ARM: configs: Update Versatile defconfig 2020-09-13 11:15:17 -07:00
vexpress_defconfig
vf610m4_defconfig
viper_defconfig
vt8500_v6_v7_defconfig
xcep_defconfig
zeus_defconfig
zx_defconfig