Qian Cai
5b56d996dd
mm/compaction.c: abort search if isolation fails
...
Running LTP oom01 in a tight loop or memory stress testing put the system
in a low-memory situation could triggers random memory corruption like
page flag corruption below due to in fast_isolate_freepages(), if
isolation fails, next_search_order() does not abort the search immediately
could lead to improper accesses.
UBSAN: Undefined behaviour in ./include/linux/mm.h:1195:50
index 7 is out of range for type 'zone [5]'
Call Trace:
dump_stack+0x62/0x9a
ubsan_epilogue+0xd/0x7f
__ubsan_handle_out_of_bounds+0x14d/0x192
__isolate_free_page+0x52c/0x600
compaction_alloc+0x886/0x25f0
unmap_and_move+0x37/0x1e70
migrate_pages+0x2ca/0xb20
compact_zone+0x19cb/0x3620
kcompactd_do_work+0x2df/0x680
kcompactd+0x1d8/0x6c0
kthread+0x32c/0x3f0
ret_from_fork+0x35/0x40
------------[ cut here ]------------
kernel BUG at mm/page_alloc.c:3124!
invalid opcode: 0000 [#1 ] SMP DEBUG_PAGEALLOC KASAN PTI
RIP: 0010:__isolate_free_page+0x464/0x600
RSP: 0000:ffff888b9e1af848 EFLAGS: 00010007
RAX: 0000000030000000 RBX: ffff888c39fcf0f8 RCX: 0000000000000000
RDX: 1ffff111873f9e25 RSI: 0000000000000004 RDI: ffffed1173c35ef6
RBP: ffff888b9e1af898 R08: fffffbfff4fc2461 R09: fffffbfff4fc2460
R10: fffffbfff4fc2460 R11: ffffffffa7e12303 R12: 0000000000000008
R13: dffffc0000000000 R14: 0000000000000000 R15: 0000000000000007
FS: 0000000000000000(0000) GS:ffff888ba8e80000(0000)
knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fc7abc00000 CR3: 0000000752416004 CR4: 00000000001606a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
compaction_alloc+0x886/0x25f0
unmap_and_move+0x37/0x1e70
migrate_pages+0x2ca/0xb20
compact_zone+0x19cb/0x3620
kcompactd_do_work+0x2df/0x680
kcompactd+0x1d8/0x6c0
kthread+0x32c/0x3f0
ret_from_fork+0x35/0x40
Link: http://lkml.kernel.org/r/20190320192648.52499-1-cai@lca.pw
Fixes: dbe2d4e4f12e ("mm, compaction: round-robin the order while searching the free lists for a target")
Signed-off-by: Qian Cai <cai@lca.pw>
Acked-by: Mel Gorman <mgorman@techsingularity.net>
Cc: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
2019-04-04 11:56:15 +01:00
..
2019-03-29 10:01:36 -07:00
2019-01-22 14:39:38 -07:00
2017-11-14 23:57:38 +02:00
2018-06-15 07:55:25 +09:00
2019-03-05 21:07:20 -08:00
2019-03-12 10:04:01 -07:00
2017-11-02 11:10:55 +01:00
2019-04-04 11:56:15 +01:00
2017-11-02 11:10:55 +01:00
2019-03-29 10:01:37 -07:00
2019-03-05 21:07:20 -08: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-03-15 11:26:07 -07:00
2017-12-14 16:00:48 -08:00
2018-06-15 07:55:25 +09:00
2019-03-05 21:07:17 -08:00
2019-03-07 17:43:58 -08:00
2018-12-28 12:11:47 -08:00
2019-03-12 10:04:00 -07:00
2019-03-05 21:07:21 -08:00
2018-06-07 17:34:35 -07:00
2019-03-05 21:07:19 -08:00
2018-01-23 12:17:42 -06:00
2018-07-17 09:35:30 +02:00
2019-03-05 21:07:17 -08:00
2018-01-31 17:18:37 -08:00
2018-12-28 12:11:46 -08:00
2019-03-05 21:07:18 -08:00
2019-03-05 21:07:19 -08:00
2019-02-21 09:01:00 -08:00
2019-03-05 21:07:19 -08:00
2019-03-05 21:07:19 -08:00
2019-02-25 09:10:51 -08:00
2018-12-28 12:11:50 -08:00
2018-10-31 08:54:16 -07:00
2019-03-12 10:04:02 -07:00
2019-03-05 21:07:21 -08:00
2019-03-05 21:07:19 -08:00
2019-03-29 10:01:37 -07:00
2019-03-05 21:07:13 -08:00
2019-03-29 10:01:37 -07:00
2019-03-29 10:01:37 -07:00
2019-03-05 21:07:20 -08:00
2017-11-02 11:10:55 +01:00
2019-03-29 10:01:37 -07:00
2019-01-24 09:04:37 +13:00
2019-03-05 21:07:21 -08:00
2018-12-28 12:11:47 -08:00
2019-03-05 21:07:18 -08:00
2017-03-02 08:42:38 +01:00
2018-11-27 09:21:46 -08:00
2018-12-28 12:11:50 -08:00
2017-11-02 11:10:55 +01:00
2019-03-05 21:07:18 -08:00
2019-03-05 21:07:21 -08:00
2017-11-02 11:10:55 +01:00
2018-10-26 16:38:15 -07:00
2019-03-05 21:07:19 -08:00
2019-03-29 10:01:37 -07:00
2018-06-07 17:34:36 -07:00
2019-03-12 10:04:02 -07:00
2019-03-05 21:07:21 -08:00
2019-01-04 13:13:48 -08:00
2019-03-29 10:01:37 -07:00
2019-03-05 21:07:17 -08:00
2019-03-05 21:07:13 -08:00
2018-10-31 08:54:11 -07:00
2019-03-05 21:07:20 -08:00
2018-04-05 21:36:27 -07:00
2017-11-02 11:10:55 +01:00
2019-02-26 13:47:58 -08:00
2018-06-12 16:19:22 -07:00
2018-02-18 05:33:01 -08:00
2019-03-12 10:04:02 -07:00
2018-10-09 16:51:11 +02:00
2018-02-06 18:32:48 -08:00
2017-11-02 11:10:55 +01:00
2019-03-05 21:07:20 -08:00
2019-03-05 21:07:21 -08:00
2017-10-03 17:54:24 -07:00
2019-03-05 21:07:19 -08:00
2019-03-29 10:01:37 -07:00
2019-03-29 10:01:37 -07:00
2019-03-29 10:01:37 -07:00
2018-06-07 17:34:34 -07:00
2019-03-29 10:01:37 -07:00
2018-10-31 08:54:16 -07:00
2019-03-29 10:01:37 -07:00
2017-11-02 11:10:55 +01:00
2018-08-22 10:52:44 -07:00
2019-03-05 21:07:16 -08:00
2019-03-05 21:07:21 -08:00
2019-03-05 21:07:21 -08:00
2019-03-05 21:07:20 -08:00
2019-01-08 17:15:11 -08:00
2019-01-08 17:15:11 -08:00
2019-03-05 21:07:20 -08:00
2018-09-13 15:18:04 -10:00
2019-03-05 21:07:20 -08:00
2018-06-07 17:34:36 -07:00
2019-03-05 21:07:21 -08:00
2019-03-05 21:07:17 -08:00
2019-03-05 21:07:21 -08:00
2018-11-18 10:15:09 -08:00
2018-02-06 18:32:48 -08:00
2018-02-21 15:35:43 -08:00
2018-10-26 16:26:35 -07:00
2018-12-28 12:11:47 -08:00