Linus Torvalds
69bf4b6b54
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 <mikhail.v.gavrilov@gmail.com>
Suggested-by: Jan Kara <jack@suse.cz>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Kirill Shutemov <kirill@shutemov.name>
Cc: William Kucharski <william.kucharski@oracle.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-07-05 19:55:18 -07:00
..
2019-06-01 15:51:31 -07:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:52 +02:00
2019-05-14 09:47:45 -07:00
2019-05-24 17:37:54 +02:00
2017-11-02 11:10:55 +01:00
2019-06-01 15:51:32 -07:00
2017-11-02 11:10:55 +01:00
2019-05-14 19:52:47 -07:00
2019-06-05 17:37:13 +02:00
2017-12-11 14:54:44 +01:00
2018-08-30 20:01:32 +02:00
2019-03-05 21:07:17 -08:00
2019-07-05 19:55:18 -07:00
2017-12-14 16:00:48 -08:00
2019-06-19 17:09:52 +02:00
2019-05-14 09:47:45 -07:00
2019-06-01 15:51:31 -07:00
2018-12-28 12:11:47 -08:00
2019-06-13 17:34:56 -10:00
2019-07-05 19:55:18 -07:00
2018-06-07 17:34:35 -07:00
2019-06-29 16:43:45 +08:00
2019-05-21 10:50:45 +02:00
2018-07-17 09:35:30 +02:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:08 +02:00
2019-05-21 10:50:46 +02:00
2019-05-21 10:50:46 +02:00
2019-07-05 19:55:18 -07:00
2019-06-05 17:37:06 +02:00
2019-06-05 17:37:06 +02:00
2019-06-19 17:09:52 +02:00
2019-06-13 17:34:56 -10:00
2019-05-21 10:50:45 +02:00
2019-05-14 09:47:49 -07:00
2019-05-14 19:52:48 -07:00
2019-05-30 11:26:32 -07:00
2019-06-13 17:34:56 -10:00
2019-07-05 19:55:18 -07:00
2019-05-21 10:50:45 +02:00
2019-06-29 16:43:45 +08:00
2019-05-21 10:50:45 +02:00
2019-06-29 16:43:44 +08:00
2019-03-05 21:07:20 -08:00
2017-11-02 11:10:55 +01:00
2019-07-05 19:55:18 -07:00
2019-05-14 19:52:48 -07:00
2019-06-13 17:34:56 -10:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2017-03-02 08:42:38 +01:00
2019-06-13 17:34:56 -10:00
2019-06-19 17:09:53 +02:00
2017-11-02 11:10:55 +01:00
2019-05-14 09:47:51 -07:00
2019-05-14 09:47:49 -07:00
2017-11-02 11:10:55 +01:00
2019-05-21 10:50:45 +02:00
2019-06-29 16:43:45 +08:00
2019-07-05 11:12:07 +09:00
2018-06-07 17:34:36 -07:00
2019-03-12 10:04:02 -07:00
2019-06-29 16:43:45 +08:00
2019-07-05 11:12:07 +09:00
2019-05-14 09:47:46 -07:00
2019-04-29 12:37:50 +02:00
2019-03-05 21:07:13 -08:00
2018-10-31 08:54:11 -07:00
2019-05-21 10:50:45 +02:00
2018-04-05 21:36:27 -07:00
2019-03-13 12:25:31 -07:00
2019-06-05 17:37:16 +02:00
2019-06-05 17:37:16 +02:00
2019-06-05 17:37:16 +02:00
2019-06-05 17:37:16 +02:00
2018-10-09 16:51:11 +02:00
2019-05-30 11:26:32 -07:00
2017-11-02 11:10:55 +01:00
2019-05-21 10:50:45 +02:00
2019-05-14 09:47:49 -07:00
2019-06-05 17:37:17 +02:00
2019-07-05 19:55:18 -07:00
2019-05-14 19:52:48 -07:00
2019-05-14 19:52:48 -07:00
2019-03-29 10:01:37 -07:00
2019-05-16 15:51:55 -07:00
2019-03-29 10:01:37 -07:00
2019-05-14 09:47:44 -07:00
2019-05-14 09:47:45 -07:00
2018-10-31 08:54:16 -07:00
2019-05-14 09:47:48 -07:00
2017-11-02 11:10:55 +01:00
2018-08-22 10:52:44 -07:00
2019-07-05 19:55:18 -07:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:53 +02:00
2019-06-01 15:51:31 -07:00
2018-09-13 15:18:04 -10:00
2019-06-29 16:43:45 +08:00
2019-06-19 17:09:55 +02:00
2019-07-05 11:12:07 +09:00
2019-05-21 10:50:45 +02:00
2019-05-14 19:52:53 -07:00
2019-06-01 15:51:31 -07:00
2019-05-21 10:50:45 +02:00
2019-05-21 10:50:45 +02:00
2018-10-26 16:26:35 -07:00
2019-05-30 11:26:37 -07:00