# git rev-parse -q --verify 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d^{commit} 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d already have revision, skipping fetch # git checkout -q -f -B kisskb 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d # git clean -qxdf # < git log -1 # commit 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d # Author: Linus Torvalds # Date: Fri Jul 5 19:55:18 2019 -0700 # # Revert "mm: page cache: store only head pages in i_pages" # # This reverts commit 5fd4ca2d84b249f0858ce28cf637cf25b61a398f. # # Mikhail Gavrilov reports that it causes the VM_BUG_ON_PAGE() in # __delete_from_swap_cache() to trigger: # # page:ffffd6d34dff0000 refcount:1 mapcount:1 mapping:ffff97812323a689 index:0xfecec363 # anon # flags: 0x17fffe00080034(uptodate|lru|active|swapbacked) # raw: 0017fffe00080034 ffffd6d34c67c508 ffffd6d3504b8d48 ffff97812323a689 # raw: 00000000fecec363 0000000000000000 0000000100000000 ffff978433ace000 # page dumped because: VM_BUG_ON_PAGE(entry != page) # page->mem_cgroup:ffff978433ace000 # ------------[ cut here ]------------ # kernel BUG at mm/swap_state.c:170! # invalid opcode: 0000 [#1] SMP NOPTI # CPU: 1 PID: 221 Comm: kswapd0 Not tainted 5.2.0-0.rc2.git0.1.fc31.x86_64 #1 # Hardware name: System manufacturer System Product Name/ROG STRIX X470-I GAMING, BIOS 2202 04/11/2019 # RIP: 0010:__delete_from_swap_cache+0x20d/0x240 # Code: 30 65 48 33 04 25 28 00 00 00 75 4a 48 83 c4 38 5b 5d 41 5c 41 5d 41 5e 41 5f c3 48 c7 c6 2f dc 0f 8a 48 89 c7 e8 93 1b fd ff <0f> 0b 48 c7 c6 a8 74 0f 8a e8 85 1b fd ff 0f 0b 48 c7 c6 a8 7d 0f # RSP: 0018:ffffa982036e7980 EFLAGS: 00010046 # RAX: 0000000000000021 RBX: 0000000000000040 RCX: 0000000000000006 # RDX: 0000000000000000 RSI: 0000000000000086 RDI: ffff97843d657900 # RBP: 0000000000000001 R08: ffffa982036e7835 R09: 0000000000000535 # R10: ffff97845e21a46c R11: ffffa982036e7835 R12: ffff978426387120 # R13: 0000000000000000 R14: ffffd6d34dff0040 R15: ffffd6d34dff0000 # FS: 0000000000000000(0000) GS:ffff97843d640000(0000) knlGS:0000000000000000 # CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 # CR2: 00002cba88ef5000 CR3: 000000078a97c000 CR4: 00000000003406e0 # Call Trace: # delete_from_swap_cache+0x46/0xa0 # try_to_free_swap+0xbc/0x110 # swap_writepage+0x13/0x70 # pageout.isra.0+0x13c/0x350 # shrink_page_list+0xc14/0xdf0 # shrink_inactive_list+0x1e5/0x3c0 # shrink_node_memcg+0x202/0x760 # shrink_node+0xe0/0x470 # balance_pgdat+0x2d1/0x510 # kswapd+0x220/0x420 # kthread+0xfb/0x130 # ret_from_fork+0x22/0x40 # # and it's not immediately obvious why it happens. It's too late in the # rc cycle to do anything but revert for now. # # Link: https://lore.kernel.org/lkml/CABXGCsN9mYmBD-4GaaeW_NrDu+FDXLzr_6x+XNxfmFV6QkYCDg@mail.gmail.com/ # Reported-and-bisected-by: Mikhail Gavrilov # Suggested-by: Jan Kara # Cc: Michal Hocko # Cc: Vlastimil Babka # Cc: Matthew Wilcox # Cc: Kirill Shutemov # Cc: William Kucharski # Cc: Andrew Morton # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux-gcc --version # < /opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux-ld --version # < git log --format=%s --max-count=1 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d # < make -s -j 48 ARCH=sh O=/kisskb/build/linus_se7724_defconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux- se7724_defconfig # make -s -j 48 ARCH=sh O=/kisskb/build/linus_se7724_defconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/sh4-linux/bin/sh4-linux- Generating include/generated/machtypes.h /kisskb/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S: Assembler messages: /kisskb/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:385: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence /kisskb/src/arch/sh/kernel/cpu/sh4/../sh3/../../entry-common.S:388: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence /kisskb/src/fs/proc/inode.c: In function 'proc_reg_open': /kisskb/src/include/linux/list.h:65:12: warning: 'pdeo' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/fs/proc/inode.c:331:21: note: 'pdeo' was declared here /kisskb/src/kernel/printk/printk.c: In function 'devkmsg_sysctl_set_loglvl': /kisskb/src/kernel/printk/printk.c:194:16: warning: 'old' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/base/regmap/regmap.c: In function 'regmap_raw_read': /kisskb/src/drivers/base/regmap/regmap.c:2589:6: warning: 'ret' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/base/regmap/regmap.c: In function '_regmap_raw_write': /kisskb/src/drivers/base/regmap/regmap.c:1850:6: warning: 'ret' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/kernel/rcu/srcutree.c: In function 'init_srcu_struct_fields': /kisskb/src/kernel/rcu/srcutree.c:121:34: warning: 'levelspread[]' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/kernel/rcu/srcutree.c:88:6: note: 'levelspread[]' was declared here /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c: In function 'sh_mobile_i2c_isr': /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c:399:26: warning: 'data' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c:372:16: note: 'data' was declared here /kisskb/src/drivers/sh/clk/cpg.c: In function 'r8': /kisskb/src/drivers/sh/clk/cpg.c:41:2: warning: passing argument 1 of 'ioread8' discards 'const' qualifier from pointer target type [enabled by default] /kisskb/src/include/asm-generic/iomap.h:29:21: note: expected 'void *' but argument is of type 'const void *' /kisskb/src/drivers/sh/clk/cpg.c: In function 'r16': /kisskb/src/drivers/sh/clk/cpg.c:46:2: warning: passing argument 1 of 'ioread16' discards 'const' qualifier from pointer target type [enabled by default] /kisskb/src/include/asm-generic/iomap.h:30:21: note: expected 'void *' but argument is of type 'const void *' /kisskb/src/drivers/sh/clk/cpg.c: In function 'r32': /kisskb/src/drivers/sh/clk/cpg.c:51:2: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type [enabled by default] /kisskb/src/include/asm-generic/iomap.h:32:21: note: expected 'void *' but argument is of type 'const void *' Image Name: Linux-5.2.0-rc7+ Created: Sat Jul 6 16:47:55 2019 Image Type: SuperH Linux Kernel Image (gzip compressed) Data Size: 3380662 Bytes = 3301.43 KiB = 3.22 MiB Load Address: 88001000 Entry Point: 88002000 Image arch/sh/boot/uImage is ready Completed OK # rm -rf /kisskb/build/linus_se7724_defconfig_sh4 # Build took: 0:00:39.033415