linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* BUG: unable to handle kernel paging request in isolate_freepages_block
@ 2019-05-07  9:50 syzbot
  2019-05-09  9:57 ` Mel Gorman
  0 siblings, 1 reply; 3+ messages in thread
From: syzbot @ 2019-05-07  9:50 UTC (permalink / raw)
  To: akpm, aryabinin, cai, linux-kernel, linux-mm, mgorman, mhocko,
	syzkaller-bugs, vbabka

Hello,

syzbot found the following crash on:

HEAD commit:    baf76f0c slip: make slhc_free() silently accept an error p..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=16dbe6cca00000
kernel config:  https://syzkaller.appspot.com/x/.config?x=a42d110b47dd6b36
dashboard link: https://syzkaller.appspot.com/bug?extid=d84c80f9fe26a0f7a734
compiler:       gcc (GCC) 9.0.0 20181231 (experimental)

Unfortunately, I don't have any reproducer for this crash yet.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+d84c80f9fe26a0f7a734@syzkaller.appspotmail.com

BUG: unable to handle kernel paging request at ffffea0003348000
#PF error: [normal kernel read fault]
PGD 12c3f9067 P4D 12c3f9067 PUD 12c3f8067 PMD 0
Oops: 0000 [#1] PREEMPT SMP KASAN
CPU: 1 PID: 28916 Comm: syz-executor.2 Not tainted 5.1.0-rc6+ #89
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS  
Google 01/01/2011
RIP: 0010:constant_test_bit arch/x86/include/asm/bitops.h:314 [inline]
RIP: 0010:PageCompound include/linux/page-flags.h:186 [inline]
RIP: 0010:isolate_freepages_block+0x1c0/0xd40 mm/compaction.c:579
Code: 01 d8 ff 4d 85 ed 0f 84 ef 07 00 00 e8 29 00 d8 ff 4c 89 e0 83 85 38  
ff ff ff 01 48 c1 e8 03 42 80 3c 38 00 0f 85 31 0a 00 00 <4d> 8b 2c 24 31  
ff 49 c1 ed 10 41 83 e5 01 44 89 ee e8 3a 01 d8 ff
RSP: 0018:ffff88802b31eab8 EFLAGS: 00010246
RAX: 1ffffd4000669000 RBX: 00000000000cd200 RCX: ffffc9000a235000
RDX: 000000000001ca5e RSI: ffffffff81988cc7 RDI: 0000000000000001
RBP: ffff88802b31ebd8 R08: ffff88805af700c0 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffffea0003348000
R13: 0000000000000000 R14: ffff88802b31f030 R15: dffffc0000000000
FS:  00007f61648dc700(0000) GS:ffff8880ae900000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffea0003348000 CR3: 0000000037c64000 CR4: 00000000001426e0
Call Trace:
  fast_isolate_around mm/compaction.c:1243 [inline]
  fast_isolate_freepages mm/compaction.c:1418 [inline]
  isolate_freepages mm/compaction.c:1438 [inline]
  compaction_alloc+0x1aee/0x22e0 mm/compaction.c:1550
  unmap_and_move mm/migrate.c:1180 [inline]
  migrate_pages+0x484/0x2cd0 mm/migrate.c:1431
  compact_zone+0x1b4f/0x38f0 mm/compaction.c:2181
  compact_zone_order+0x1af/0x2a0 mm/compaction.c:2306
  try_to_compact_pages+0x268/0xaf0 mm/compaction.c:2358
  __alloc_pages_direct_compact+0x154/0x460 mm/page_alloc.c:3786
  __alloc_pages_slowpath+0xb14/0x28b0 mm/page_alloc.c:4425
  __alloc_pages_nodemask+0x602/0x8d0 mm/page_alloc.c:4633
  __alloc_pages include/linux/gfp.h:473 [inline]
  __alloc_pages_node include/linux/gfp.h:486 [inline]
  alloc_pages_vma+0x39a/0x540 mm/mempolicy.c:2088
  do_huge_pmd_anonymous_page+0x509/0x1730 mm/huge_memory.c:740
  create_huge_pmd mm/memory.c:3701 [inline]
  __handle_mm_fault+0x2d5e/0x3ec0 mm/memory.c:3905
  handle_mm_fault+0x43f/0xb30 mm/memory.c:3971
  faultin_page mm/gup.c:548 [inline]
  __get_user_pages+0x7b6/0x1a40 mm/gup.c:751
  __get_user_pages_locked mm/gup.c:927 [inline]
  get_user_pages_remote+0x21d/0x440 mm/gup.c:1119
  process_vm_rw_single_vec mm/process_vm_access.c:113 [inline]
  process_vm_rw_core.isra.0+0x464/0xb10 mm/process_vm_access.c:220
  process_vm_rw+0x21f/0x240 mm/process_vm_access.c:288
  __do_sys_process_vm_writev mm/process_vm_access.c:310 [inline]
  __se_sys_process_vm_writev mm/process_vm_access.c:305 [inline]
  __x64_sys_process_vm_writev+0xe3/0x1a0 mm/process_vm_access.c:305
  do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290
  entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x458da9
Code: ad b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7  
48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff  
ff 0f 83 7b b8 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007f61648dbc78 EFLAGS: 00000246 ORIG_RAX: 0000000000000137
RAX: ffffffffffffffda RBX: 0000000000000006 RCX: 0000000000458da9
RDX: 0000000000000001 RSI: 0000000020000000 RDI: 0000000000004a77
RBP: 000000000073bf00 R08: 0000000000000001 R09: 0000000000000000
R10: 0000000020000040 R11: 0000000000000246 R12: 00007f61648dc6d4
R13: 00000000004c5b1e R14: 00000000004d9e90 R15: 00000000ffffffff
Modules linked in:
CR2: ffffea0003348000
---[ end trace 50f8738754fa12f3 ]---
RIP: 0010:constant_test_bit arch/x86/include/asm/bitops.h:314 [inline]
RIP: 0010:PageCompound include/linux/page-flags.h:186 [inline]
RIP: 0010:isolate_freepages_block+0x1c0/0xd40 mm/compaction.c:579
Code: 01 d8 ff 4d 85 ed 0f 84 ef 07 00 00 e8 29 00 d8 ff 4c 89 e0 83 85 38  
ff ff ff 01 48 c1 e8 03 42 80 3c 38 00 0f 85 31 0a 00 00 <4d> 8b 2c 24 31  
ff 49 c1 ed 10 41 83 e5 01 44 89 ee e8 3a 01 d8 ff
RSP: 0018:ffff88802b31eab8 EFLAGS: 00010246
RAX: 1ffffd4000669000 RBX: 00000000000cd200 RCX: ffffc9000a235000
RDX: 000000000001ca5e RSI: ffffffff81988cc7 RDI: 0000000000000001
RBP: ffff88802b31ebd8 R08: ffff88805af700c0 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffffea0003348000
R13: 0000000000000000 R14: ffff88802b31f030 R15: dffffc0000000000
FS:  00007f61648dc700(0000) GS:ffff8880ae900000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffea0003348000 CR3: 0000000037c64000 CR4: 00000000001426e0


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: BUG: unable to handle kernel paging request in isolate_freepages_block
  2019-05-07  9:50 BUG: unable to handle kernel paging request in isolate_freepages_block syzbot
@ 2019-05-09  9:57 ` Mel Gorman
  2019-05-09 10:11   ` Dmitry Vyukov
  0 siblings, 1 reply; 3+ messages in thread
From: Mel Gorman @ 2019-05-09  9:57 UTC (permalink / raw)
  To: syzbot
  Cc: akpm, aryabinin, cai, linux-kernel, linux-mm, mhocko,
	syzkaller-bugs, vbabka

On Tue, May 07, 2019 at 02:50:05AM -0700, syzbot wrote:
> Hello,
> 
> syzbot found the following crash on:
> 
> HEAD commit:    baf76f0c slip: make slhc_free() silently accept an error p..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=16dbe6cca00000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=a42d110b47dd6b36
> dashboard link: https://syzkaller.appspot.com/bug?extid=d84c80f9fe26a0f7a734
> compiler:       gcc (GCC) 9.0.0 20181231 (experimental)
> 
> Unfortunately, I don't have any reproducer for this crash yet.
> 

How reproducible is it and can the following (compile tested only) patch
be tested please? I'm thinking it's a similar class of bug to 6b0868c820ff
("mm/compaction.c: correct zone boundary handling when resetting pageblock
skip hints")

diff --git a/mm/compaction.c b/mm/compaction.c
index 3319e0872d01..ae4d99d31b61 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1228,7 +1228,7 @@ fast_isolate_around(struct compact_control *cc, unsigned long pfn, unsigned long
 
 	/* Pageblock boundaries */
 	start_pfn = pageblock_start_pfn(pfn);
-	end_pfn = min(start_pfn + pageblock_nr_pages, zone_end_pfn(cc->zone));
+	end_pfn = min(start_pfn + pageblock_nr_pages, zone_end_pfn(cc->zone) - 1);
 
 	/* Scan before */
 	if (start_pfn != pfn) {
@@ -1239,7 +1239,7 @@ fast_isolate_around(struct compact_control *cc, unsigned long pfn, unsigned long
 
 	/* Scan after */
 	start_pfn = pfn + nr_isolated;
-	if (start_pfn != end_pfn)
+	if (start_pfn < end_pfn)
 		isolate_freepages_block(cc, &start_pfn, end_pfn, &cc->freepages, 1, false);
 
 	/* Skip this pageblock in the future as it's full or nearly full */


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: BUG: unable to handle kernel paging request in isolate_freepages_block
  2019-05-09  9:57 ` Mel Gorman
@ 2019-05-09 10:11   ` Dmitry Vyukov
  0 siblings, 0 replies; 3+ messages in thread
From: Dmitry Vyukov @ 2019-05-09 10:11 UTC (permalink / raw)
  To: Mel Gorman
  Cc: syzbot, Andrew Morton, Andrey Ryabinin, Qian Cai, LKML, Linux-MM,
	Michal Hocko, syzkaller-bugs, Vlastimil Babka

> On Tue, May 07, 2019 at 02:50:05AM -0700, syzbot wrote:
> > Hello,
> >
> > syzbot found the following crash on:
> >
> > HEAD commit:    baf76f0c slip: make slhc_free() silently accept an error p..
> > git tree:       upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=16dbe6cca00000
> > kernel config:  https://syzkaller.appspot.com/x/.config?x=a42d110b47dd6b36
> > dashboard link: https://syzkaller.appspot.com/bug?extid=d84c80f9fe26a0f7a734
> > compiler:       gcc (GCC) 9.0.0 20181231 (experimental)
> >
> > Unfortunately, I don't have any reproducer for this crash yet.
> >
>
> How reproducible is it and can the following (compile tested only) patch
> be tested please? I'm thinking it's a similar class of bug to 6b0868c820ff
> ("mm/compaction.c: correct zone boundary handling when resetting pageblock
> skip hints")

Hi Mel,

The info about reproducibility is always available on the dashboard:

> > dashboard link: https://syzkaller.appspot.com/bug?extid=d84c80f9fe26a0f7a734

So far it happened only 3 times which is not very frequent, 1 crash
every few days. syzbot did not come up with a reproducer so far.
If you think this should fix the bug, commit the patch, syzbot will
close the bug and then notify us again if the crash will happen again
after the patch reaches all tested trees.



> diff --git a/mm/compaction.c b/mm/compaction.c
> index 3319e0872d01..ae4d99d31b61 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -1228,7 +1228,7 @@ fast_isolate_around(struct compact_control *cc, unsigned long pfn, unsigned long
>
>         /* Pageblock boundaries */
>         start_pfn = pageblock_start_pfn(pfn);
> -       end_pfn = min(start_pfn + pageblock_nr_pages, zone_end_pfn(cc->zone));
> +       end_pfn = min(start_pfn + pageblock_nr_pages, zone_end_pfn(cc->zone) - 1);
>
>         /* Scan before */
>         if (start_pfn != pfn) {
> @@ -1239,7 +1239,7 @@ fast_isolate_around(struct compact_control *cc, unsigned long pfn, unsigned long
>
>         /* Scan after */
>         start_pfn = pfn + nr_isolated;
> -       if (start_pfn != end_pfn)
> +       if (start_pfn < end_pfn)
>                 isolate_freepages_block(cc, &start_pfn, end_pfn, &cc->freepages, 1, false);
>
>         /* Skip this pageblock in the future as it's full or nearly full */


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-05-09 10:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-07  9:50 BUG: unable to handle kernel paging request in isolate_freepages_block syzbot
2019-05-09  9:57 ` Mel Gorman
2019-05-09 10:11   ` Dmitry Vyukov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).